Opi kehittynyt metsästyskyselykieli
Kehittynyt metsästys perustuu Kusto-kyselykieleen. Kusto-operaattoreiden ja -lausekkeiden avulla voit luoda kyselyjä, jotka paikantavat tietoa erikoisrakenteesta.
Katso tästä lyhyestä videosta kätevia Kusto-kyselyn kielen perusteita.
Jos haluat ymmärtää näitä käsitteitä paremmin, suorita ensimmäinen kyselysi.
Kokeile ensimmäistä kyselyä
Suorita ensimmäinen kyselysi Microsoft Defender portaalissa Metsästys-kohtaan. Käytä seuraavaa esimerkkiä:
// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Suorita tämä kysely kehittyneessä metsästyksessä
Kyselyn kuvaus ja etsittävän taulukon määrittäminen
Kyselyn alkuun on lisätty lyhyt kommentti, jossa kuvataan, mihin se on tarkoitettu. Tämä kommentti auttaa, jos päätät myöhemmin tallentaa kyselyn ja jakaa sen muiden kanssa organisaatiossasi.
// Finds PowerShell execution events that could involve a download
Itse kysely alkaa yleensä taulukon nimellä ja sen jälkeen useilla elementeillä, jotka alkavat putkella (|
). Tässä esimerkissä aloitamme luomalla kahden taulukon DeviceProcessEvents
DeviceNetworkEvents
ja , ja lisäämällä putkitetut elementit tarpeen mukaan.
union DeviceProcessEvents, DeviceNetworkEvents
Määritä aika-alue
Ensimmäinen piped-elementti on aikasuodatin, joka on suodatettu seitsemään edelliseen päivään. Aika-alueen rajoittaminen auttaa varmistamaan, että kyselyt toimivat hyvin, palauttamaan hallittavissa olevat tulokset aikakatkaisun sijaan.
| where Timestamp > ago(7d)
Huomautus
Kusto-aikasuodattimet ovat UTC-tilassa riippumatta asetuksissa määrittämästäsi aikavyöhykkeestä.
Tarkista tietyt prosessit
Aikaväliä seuraa heti PowerShell-sovellusta edustavien prosessitiedostojen nimien haku.
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Hae tiettyjä komentomerkkijonoja
Myöhemmin kysely etsii komentoriveillä merkkijonoja, joita käytetään yleensä tiedostojen lataamiseen PowerShellin avulla.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
Mukauta tulossarakkeita ja pituutta
Nyt kun kyselysi tunnistaa selvästi tiedot, jotka haluat paikantaa, voit määrittää, miltä tulokset näyttävät.
project
palauttaa tiettyjä sarakkeita ja top
rajoittaa tulosten määrää. Nämä operaattorit auttavat varmistamaan, että tulokset ovat hyvin muotoiltuja ja kohtuullisen suuria ja helppoja käsitellä.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Näet tulokset valitsemalla Suorita kysely .
Vihje
Voit tarkastella kyselyn tuloksia kaavioina ja säätää suodattimia nopeasti. Saat lisätietoja kyselytulosten käsittelemisestä.
Tutustu yleisiin kyselyoperaattoreihin
Olet juuri suorittanut ensimmäisen kyselyn ja sinulla on yleinen käsitys sen osista. On aika perääntyä hieman ja oppia perusasiat. Kehittyneen metsästyksen käyttämä Kusto-kyselykieli tukee useita operaattoreita, mukaan lukien seuraavat yleiset.
Operaattori | Kuvaus ja käyttö |
---|---|
where |
Suodata taulukko predikaatin täyttävien rivien alijoukkoon. |
summarize |
Luo taulukko, joka koostaa syötetaulukon sisällön. |
join |
Yhdistä kahden taulukon rivit ja muodosta uusi taulukko yhdistämällä määritettyjen sarakkeiden arvot kustakin taulukosta. Katso, miten voit liittää taulukoita KQL:ssä . |
count |
Palauta syötetietuejoukon tietueiden määrä. |
top |
Palauta ensimmäiset N tietuetta määritettyjen sarakkeiden mukaan lajiteltuina. |
limit |
Palaa määritettyyn määrään rivejä. |
project |
Valitse sisällytettävät sarakkeet, nimeä ne uudelleen tai pudota ne ja lisää uusia laskettuja sarakkeita. |
extend |
Luo laskettuja sarakkeita ja liitä ne tulosjoukkoon. |
makeset |
Palauta dynaaminen (JSON) matriisi erillisten arvojen joukosta, jotka lauseke ottaa ryhmässä. |
find |
Etsi rivejä, jotka vastaavat predikaattia taulukoiden välillä. |
Jos haluat nähdä esimerkin näistä operaattoreista, suorita ne kehittyneen metsästyksen Aloittaminen-osiosta .
Tutustu tietotyyppeihin
Kehittynyt metsästys tukee Kusto-tietotyyppejä, mukaan lukien seuraavat yleiset tyypit:
Tietotyyppi | Kuvauksen ja kyselyn vaikutukset |
---|---|
datetime |
Tiedot ja aikatiedot, jotka yleensä edustavat tapahtuman aikaleimaa. Näytä tuetut päivämäärä- ja aikamuodot |
string |
Merkkimerkkijono UTF-8:ssa puolilainausmerkeissä (' ) tai lainausmerkeissä (" ).
Lue lisää merkkijonoista |
bool |
Tämä tietotyyppi tukee true tai false tilaa.
Katso tuetut literaalit ja operaattorit |
int |
32-bittinen kokonaisluku |
long |
64-bittinen kokonaisluku |
Jos haluat lisätietoja näistä tietotyypeistä, lue kusto-skalaaritietotyypeistä.
Hanki apua, kun kirjoitat kyselyitä
Hyödynnä seuraavia toimintoja kyselyiden kirjoittamiseksi nopeammin:
- Autosuggest – kun kirjoitat kyselyitä, kehittynyt metsästys antaa ehdotuksia IntelliSense-kohteesta.
- Rakennepuu – rakenneesitys, joka sisältää taulukoiden luettelon ja niiden sarakkeet, annetaan työalueesi vieressä. Saat lisätietoja viemällä hiiren osoittimen kohteen päälle. Lisää kohde kyselyeditoriin kaksoisnapsauttamalla sitä.
-
Rakenneviittaus – portaalissa oleva viittaus, jossa on taulukon ja sarakkeen kuvaukset sekä tuetut tapahtumatyypit (
ActionType
arvot) ja esimerkkikyselyt
Useiden kyselyiden käsitteleminen editorissa
Kyselyeditorin avulla voit kokeilla useita kyselyitä. Useiden kyselyiden käyttäminen:
Erota kukin kysely tyhjällä rivillä.
Valitse kysely asettamalla kohdistin mihin tahansa kyselyn osaan ennen sen suorittamista. Tämä suorittaa vain valitun kyselyn. Jos haluat suorittaa toisen kyselyn, siirrä kohdistinta vastaavasti ja valitse Suorita kysely.
Tehokkaamman työtilan kohdalla voit käyttää samalla metsästyssivulla myös useita välilehtiä. Valitse Uusi kysely , jos haluat avata välilehden uudelle kyselylle.
Voit sitten suorittaa eri kyselyitä avaamatta uutta selainvälilehteä.
Huomautus
Useiden selainvälilehtien käyttäminen kehittyneen metsästyksen kanssa saattaa aiheuttaa tallentamattomien kyselyiden menettämisen. Jos haluat estää tämän, käytä lisämetsästyksessä olevaa sarkainominaisuutta erillisten selainvälilehtien sijaan.
Mallikyselyiden käyttäminen
Aloittaminen-osiossa on muutamia yksinkertaisia kyselyitä, jotka käyttävät usein käytettyjä operaattoreita. Kokeile suorittaa nämä kyselyt ja tehdä niihin pieniä muutoksia.
Huomautus
Peruskyselymallien lisäksi voit käyttää jaettuja kyselyitä tietyissä uhkien metsästysskenaarioita varten. Tutustu sivun vasemmalla puolella tai GitHub-kyselysäilössä oleviin jaettuihin kyselyihin.
Access-kyselykielen dokumentaatio
Lisätietoja Kuston kyselykielestä ja tuetuista operaattoreista on Kusto-kyselykielen ohjeissa.
Huomautus
Jotkin tämän artikkelin taulukot eivät ehkä ole käytettävissä Microsoft Defender for Endpoint. Ota Microsoft Defender XDR käyttöön uhkien etsimiseksi käyttämällä enemmän tietolähteitä. Voit siirtää kehittyneet metsästystyönkulut Microsoft Defender for Endpoint Microsoft Defender XDR noudattamalla kohdassa Kehittyneiden metsästyskyselyjen siirtäminen Microsoft Defender for Endpoint ohjeita.
Aiheeseen liittyvät artikkelit
- Tarkennetun etsinnän yleiskatsaus
- Kyselytulosten käsitteleminen
- Jaettujen kyselyjen käyttäminen
- Etsi eri laitteista, sähköposteista, sovelluksista ja identiteeteistä
- Rakenteen ymmärtäminen
- Käytä kyselyn parhaita käytäntöjä
Vihje
Haluatko tietää lisää? Ota yhteyttä Microsoft Security -yhteisöön Tech Community -yhteisössä: Microsoft Defender XDR Tech Community.