Hanfodion KQL Pob Dadansoddwr SOC Ddylai Eu Gwybod
Dysgwch y gystrawen KQL craidd a'r patrymau ymholiad y mae dadansoddwyr SOC yn eu defnyddio bob dydd yn Microsoft Sentinel a Defender i hela bygythiadau yn gyflymach.
Kusto Query Language (KQL) yw asgwrn cefn helfa bygythiadau a thriagedu rhybuddion yn Microsoft Sentinel a Microsoft Defender. Os ydych chi'n gweithio mewn SOC, mae rugl KQL yn gwahaniaethu dadansoddwyr a all ateb "beth ddigwyddodd yma?" yn gyflym oddi wrth y rhai sydd wedi'u gludo yn clicio drwy ddashbordiau. Nid yw hwn yn gyfeiriadur iaith llawn — mae'n y is-set ymarferol a ddefnyddir yn gyson ar shifft.
Pam Mae KQL yn Bwysig yn y SOC
Mae KQL yn ddarllen-yn-unig ac wedi'i optimeiddio ar gyfer ymholi setiau data log enfawr yn gyflym. Mae Sentinel, Defender for Endpoint, Azure Monitor, a Log Analytics i gyd yn siarad ag ef. Unwaith y'ch bod chi'n ei adnabod, gallwch chi newid rhwng cynhyrchion gyda'r un model meddwl: dewiswch fwrdd, hidlwch ef i lawr, siapiwch yr allbwn. Pob ymchwiliad — triagedu pysgota, helfa symudiad ochrol, tiwnio ffug-positif — yn dechrau gydag ymholiad.
Y Pibell Yw Popeth
Mae ymholiadau KQL wedi'u hadeiladu fel pibell. Rydych chi'n dechrau gyda thwrdd ac yn pasio data drwy nifer o weithredwyr, pob un yn hidlo, yn trawsnewid, neu'n grynhoi'r canlyniad blaenorol:
SecurityEvent
| where EventID == 4625
| where TimeGenerated > ago(24h)
| summarize FailedLogons = count() by Account, Computer
| sort by FailedLogons desc
Darllenw chi ef o'r top i'r gwaelod fel brawddeg: dechrau gyda logiau SecurityEvent, cadw dim ond methu logonau (4625), cyfyngu i'r diwrnod diwethaf, cyfrif methiannau fesul cyfrif/cyfrifiadur, yna didoli. Mae'r ddarllenolrwydd llinol honno yn gryfder mwyaf KQL dros SQL ar gyfer helfa ad hoc.
Gweithredwyr Craidd i'w Cofio
- where — eich hidl cynradd. Ei ddefnyddio'n gynnar a'n aml i dorri cyfaint data cyn gweithredoedd costus.
- project — dewiswch a ailenwch golofnau penodol, gan daflu'r sŵn nad oes ei angen yn yr allbwn.
- extend — ychwanegu colofnau a gyfrifir heb ollwng rhai presennol, defnyddiol ar gyfer dosrannu llinynnau neu flagio amodau.
- summarize — crynhoi data gyda
count(),sum(),dcount(), neumake_set(), bron yn wastad yn cyd-fynd âby. - join — cysylltu ar draws tafelli, ee, cysylltu logiau mewn-arwyddo gyda sefydliad dyfais i leoli logonau dyfais anrheolaethol.
- render — gwneud canlyniadau i weledydd fel timechart neu barchart yn uniongyrchol yn yr golygydd ymholiad, handy ar gyfer gweld ponciau.
Hidlo Amser Done yn Iawn
Hidlwch ar TimeGenerated (neu golofn timestamp cyfatebol y bwrdd) cyn gynted ag y bo modd yn y bibell. Mae injans KQL yn optimeiddio'n drwm o gwmpas hidlwyr ystod amser, a rhoi | where TimeGenerated > ago(7d) ger y top yn lle'r gwaelod all fod yn y gwahaniaeth rhwng ymholiad a ddychwelodd mewn eiliadau yn erbyn un sy'n cilio ar denantiwr prysur.```kql SigninLogs | where TimeGenerated > ago(1h) | where ResultType != "0" | where UserPrincipalName has "@yourdomain.com"
## Paru Llinynnau: has vs contains vs ==
Camgymeriad cyffredin yw rhagosod `contains` ar gyfer popeth. Mae `has` yn paru termau cyflawn ac yn defnyddio mynegai tymor, gan ei wneud yn sylweddol gyflymach ar dafelli mawr. Defnyddiwch `contains` dim ond pan fydd angen paru isddanneddog arna ar gyfer geiriau (fel darn parhaus parhaus), a defnyddiwch `==` ar gyfer cynparu union ar feysydd strwythuredig fel EventID neu IPAddress. Gall yr arfer sengl hwn wella'n amlwg ar helfa ar draws tafelli traffig uchel fel `DeviceNetworkEvents` neu `CommonSecurityLog`.```kql
DeviceProcessEvents
| where ProcessCommandLine has "powershell"
| where ProcessCommandLine has_any ("-enc", "-EncodedCommand")
Adeiladu Rhesymeg Canfod All-ddefnyddio
Un waith y bydd ymholiad yn profi'n ddefnyddiol, lapio'i fel ffwythiant gyda let, neu ei gadw fel Rheol Dadansoddiad Sentinel gydag aildrosglwyddo wedi'i drefnu. Rhamodrwyo trothwyon (fel cyfrif methu logon) fel bod yr un rhesymeg yn graddio ar draws denantiaid neu'n cael ei diwnio heb ailysgrifennu o'r dechrau. Dyma sut y mae ymholiadau helfa un-tro yn datblygu i ganfyddiadau sefyll sy'n tudalen y SOC yn awtomatig.
Pitfalls Cyffredin
- Anghofio hidlwyr
TimeGenerated, gan achosi sganiau bwrdd llawn araf, costus. - Defnyddio
summarizecynwhere, sy'n gorfodi'r injin i grynhoi data heb ei hidlo. - Enwau colofnau anegluro wrth uno tafelli — bob amser gwiriwch sgema â
getschemayn gyntaf. - Gordefnyddio
contains, sy'n hepgor manteision mynegai ac yn arafu helfeydd ar raddfa fawr.
Mae KQL yn gwobrwyo dadansoddwyr sy'n meddwl mewn pibellau yn hytrach na is-ymholiadau nythog. Dechreuuwch pob ymchwiliad gyda ffenestr amser cul a bwrdd penodol, yna ehangwch dim ond os oes angen.
Os rhoddodd hyn sylfaen solet i chi, archwiliewch y segmentau Blue Team a Digital Forensics ar Korra Studio am fwy o daith ymholiad SOC ymarferol ac ymarferion adeiladu canfod.
Cynhyrchwyd yr erthygl hon gyda chymorth AI a'i gyhoeddi i'r gronfa wybodaeth Korra Studio.
Dyma un nodyn o'r gronfa wybodaeth Korra Studio — mae'r platfform yn paru pob pwnc ag 1-i-1 mentora.
Dechrau am ddimarrow_forward