Lär dig det avancerade frågespråket för jakt
Avancerad jakt baseras på Kusto-frågespråket. Du kan använda Kusto-operatorer och -instruktioner för att skapa frågor som hittar information i ett specialiserat schema.
Titta på den här korta videon för att lära dig några praktiska grunderna i Kusto-frågespråk.
Om du vill förstå dessa begrepp bättre kör du din första fråga.
Prova din första fråga
I Microsoft Defender-portalen går du till Jakt för att köra din första fråga. Använd följande exempel:
// 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
Kör den här frågan i avancerad jakt
Beskriv frågan och ange de tabeller som ska sökas
En kort kommentar har lagts till i början av frågan för att beskriva vad den är till för. Den här kommentaren hjälper dig om du senare bestämmer dig för att spara frågan och dela den med andra i din organisation.
// Finds PowerShell execution events that could involve a download
Själva frågan börjar vanligtvis med ett tabellnamn följt av flera element som börjar med ett pipe (|
). I det här exemplet börjar vi med att skapa en union med två tabeller och DeviceProcessEvents
DeviceNetworkEvents
, och lägger till pipade element efter behov.
union DeviceProcessEvents, DeviceNetworkEvents
Ange tidsintervallet
Det första piped-elementet är ett tidsfilter som är begränsat till de föregående sju dagarna. Genom att begränsa tidsintervallet ser du till att frågorna fungerar bra, returnerar hanterbara resultat och inte överskrider tidsgränsen.
| where Timestamp > ago(7d)
Obs!
Kusto-tidsfilter finns i UTC oavsett vilken tidszon du angav i inställningarna.
Kontrollera specifika processer
Tidsintervallet följs omedelbart av en sökning efter processfilnamn som representerar PowerShell-programmet.
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Sök efter specifika kommandosträngar
Efteråt letar frågan efter strängar i kommandorader som vanligtvis används för att ladda ned filer med Hjälp av PowerShell.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
Anpassa resultatkolumner och längd
Nu när frågan tydligt identifierar de data som du vill hitta kan du definiera hur resultatet ser ut.
project
returnerar specifika kolumner och top
begränsar antalet resultat. De här operatorerna hjälper till att säkerställa att resultaten är välformaterade och relativt stora och enkla att bearbeta.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Välj Kör fråga för att se resultatet.
Tips
Du kan visa frågeresultat som diagram och snabbt justera filter. Mer information finns i arbeta med frågeresultat
Lär dig vanliga frågeoperatorer
Du har precis kört din första fråga och har en allmän uppfattning om dess komponenter. Det är dags att backa lite och lära sig några grunder. Kusto-frågespråket som används av avancerad jakt stöder en rad operatorer, inklusive följande vanliga.
Operatör | Beskrivning och användning |
---|---|
where |
Filtrera en tabell till den delmängd av rader som uppfyller ett predikat. |
summarize |
Skapa en tabell som aggregerar innehållet i indatatabellen. |
join |
Sammanfoga raderna i två tabeller för att skapa en ny tabell genom att matcha värdena för de angivna kolumnerna från varje tabell. Titta på Ansluta tabeller i KQL för att lära dig hur. |
count |
Returnera antalet poster i indatapostuppsättningen. |
top |
Returnera de första N-posterna sorterade efter de angivna kolumnerna. |
limit |
Återgå till det angivna antalet rader. |
project |
Välj de kolumner som ska inkluderas, byt namn på eller släpp och infoga nya beräknade kolumner. |
extend |
Skapa beräknade kolumner och lägg till dem i resultatuppsättningen. |
makeset |
Returnera en dynamisk matris (JSON) med den uppsättning distinkta värden som Expr tar i gruppen. |
find |
Hitta rader som matchar ett predikat i en uppsättning tabeller. |
Om du vill se ett live-exempel på dessa operatorer kör du dem från avsnittet Kom igång i avancerad jakt.
Förstå datatyper
Avancerad jakt stöder Kusto-datatyper, inklusive följande vanliga typer:
Datatyp | Beskrivning och frågekonsekvenser |
---|---|
datetime |
Data och tidsinformation representerar vanligtvis händelsetidsstämplar. Se datetime-format som stöds |
string |
Teckensträng i UTF-8 omges av enkla citattecken (' ) eller dubbla citattecken (" ).
Läs mer om strängar |
bool |
Den här datatypen stöder true eller false tillstånd.
Se literaler och operatorer som stöds |
int |
32-bitars heltal |
long |
64-bitars heltal |
Om du vill veta mer om dessa datatyper kan du läsa mer om kusto-skalärdatatyper.
Få hjälp när du skriver frågor
Dra nytta av följande funktioner för att skriva frågor snabbare:
- Automatiska förslag – när du skriver frågor ger avancerad jakt förslag från IntelliSense.
- Schematräd – en schemarepresentation som innehåller listan över tabeller och deras kolumner finns bredvid ditt arbetsområde. Hovra över ett objekt om du vill ha mer information. Dubbelklicka på ett objekt för att infoga det i frågeredigeraren.
-
Schemareferens – referens i portalen med tabell- och kolumnbeskrivningar samt händelsetyper som stöds (
ActionType
värden) och exempelfrågor
Arbeta med flera frågor i redigeraren
Du kan använda frågeredigeraren för att experimentera med flera frågor. Så här använder du flera frågor:
Avgränsa varje fråga med en tom rad.
Placera markören på valfri del av en fråga för att välja frågan innan du kör den. Detta kör endast den valda frågan. Om du vill köra en annan fråga flyttar du markören därefter och väljer Kör fråga.
För en effektivare arbetsyta kan du också använda flera flikar på samma jaktsida. Välj Ny fråga för att öppna en flik för den nya frågan.
Du kan sedan köra olika frågor utan att behöva öppna en ny webbläsarflik.
Obs!
Om du använder flera webbläsarflikar med avancerad jakt kan du förlora dina frågor som inte har sparats. Om du vill förhindra detta använder du tabbfunktionen i avancerad jakt i stället för separata webbläsarflikar.
Använda exempelfrågor
Avsnittet Kom igång innehåller några enkla frågor med vanliga operatorer. Prova att köra dessa frågor och göra små ändringar i dem.
Obs!
Förutom de grundläggande frågeexemplen kan du även komma åt delade frågor för specifika hotjaktscenarier. Utforska delade frågor till vänster på sidan eller GitHub-frågelagringsplatsen.
Dokumentation om åtkomst till frågespråk
Mer information om Kusto-frågespråk och operatorer som stöds finns i dokumentationen för Kusto-frågespråk.
Obs!
Vissa tabeller i den här artikeln kanske inte är tillgängliga i Microsoft Defender för Endpoint. Aktivera Microsoft Defender XDR för att söka efter hot med hjälp av fler datakällor. Du kan flytta dina avancerade jaktarbetsflöden från Microsoft Defender för Endpoint till Microsoft Defender XDR genom att följa stegen i Migrera avancerade jaktfrågor från Microsoft Defender för Endpoint.
Relaterade ämnen
- Översikt över avancerad jakt
- Arbeta med frågeresultat
- Använda delade frågor
- Jaga över olika enheter, e-postmeddelanden, appar och identiteter
- Förstå schemat
- Använda metodtips för frågor
Tips
Vill du veta mer? Interagera med Microsofts säkerhetscommunity i vår Tech Community: Microsoft Defender XDR Tech Community.