Lär dig språket för avancerad fråga om sökning
Viktigt
Den förbättrade Microsoft 365 Defender-portalen är nu tillgänglig. Med den här nya upplevelsen kommer Defender för Endpoint, Defender för Office 365, 365 Microsoft 365 Defender och annat till Microsoft Defender for Cloud Apps. Läs om de senaste.
Gäller för:
- Microsoft 365 Defender
- Microsoft Defender för Endpoint
Avancerad sökning är baserad på språket i Kusto-frågan. Du kan använda kustooperatorer och -uttryck till att skapa frågor som söker efter information i ett särskilt schema.
Titta på den här korta videon och lär dig grunderna i kustofrågans språk.
För att förstå begreppen bättre bör du köra din första fråga.
Prova den första frågan
Gå till Microsoft 365 Defender i Sök-portalen för att köra den första frågan. 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 för avancerad sökning
Beskriv frågan och ange vilka tabeller som ska sökas
En kort kommentar har lagts till i början av frågan för att beskriva vad den används till. 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 organisationen.
// 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 en pipe | (). I det här exemplet börjar vi med att skapa en union av två tabeller och , och DeviceProcessEvents DeviceNetworkEvents lägger till rörelement efter behov.
union DeviceProcessEvents, DeviceNetworkEvents
Ange tidsperiod
Det första pipade elementet är ett tidsfilter som är inderat i de föregående sju dagarna. Genom att begränsa tidsperioden ser du till att frågorna fungerar bra, returnerar hanterbara resultat och inte time out.
| where Timestamp > ago(7d)
Kontrollera specifika processer
Tidsperioden 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öka efter specifika kommandosträngar
Därefter söker frågan efter strängar i kommandorader som vanligtvis används för att ladda ned filer med 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 du vill hitta kan du definiera hur resultatet ska se ut. project returnerar specifika kolumner top och begränsar antalet resultat. De här operatorerna hjälper till att säkerställa att resultatet är väl formaterat och ganska stort och lätt 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 kör bara den första frågan och har en övergripande uppfattning om dess komponenter. Det är dags att gå tillbaka lite och lära dig grunderna. Frågespråket Kusto som används av avancerad sökning har stöd för ett antal operatorer, bland annat följande vanliga.
| Operator | Beskrivning och användning |
|---|---|
where |
Filtrera en tabell till den delmängd rader som uppfyller ett predikat. |
summarize |
Skapa en tabell som aggregerar innehållet i indatatabellen. |
join |
Slå samman raderna i två tabeller för att skapa en ny tabell genom att matcha värden för de angivna kolumnerna från varje tabell. |
count |
Returnera antalet poster i uppsättningen med indataposter. |
top |
Returnera de första N-posterna som sorteras efter de angivna kolumnerna. |
limit |
Returnera upp till det angivna antalet rader. |
project |
Markera de kolumner som du vill ta med, 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 (JSON) matris med uppsättningen distinkta värden som Uttr 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 Komma igång vid avancerad sökning.
Förstå datatyper
Avancerad sökning stöder Kusto-datatyper, bland annat följande vanliga typer:
| Datatyp | Beskrivning och frågekonsekvenser |
|---|---|
datetime |
Data och tidsinformation representerar vanligtvis tidsstämplar för händelser. Visa datumtidsformat som stöds |
string |
Teckensträng i UTF-8 inom enkla citattecken ( ' ) eller dubbla citattecken ( " ). Läs mer om strängar |
bool |
Den här datatypen stöder true eller false tillstånd. Visa literaler och operatorer som stöds |
int |
32-bitars heltal |
long |
64-bitars heltal |
Mer information om dessa datatyper finns i Kusto skalära datatyper.
Få hjälp medan 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 får du förslag från IntelliSense om avancerad sökning.
- Schematräd– en schemarepresentation som innehåller listan med tabeller och deras kolumner visas 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 (värden) och exempelfrågor som
ActionTypestöds
Arbeta med flera frågor i redigeraren
Du kan använda frågeredigeraren när du experimenterar 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å någon del av en fråga för att markera frågan innan du kör den. Då körs endast den markerade frågan. Om du vill köra en annan fråga flyttar du markören därefter och väljer Kör fråga.
Använda exempelfrågor
I avsnittet Komma igång finns några enkla frågor som används med vanliga operatorer. Prova att köra dessa frågor och göra små ändringar i dem.
Anteckning
Förutom de grundläggande frågeexempelen kan du också komma åt delade frågor för specifika fall av hot efter hot. Utforska de delade frågorna till vänster på sidan eller lagringsplatsen GitHub frågan.
Dokumentation om frågespråk i Access
Mer information om Kusto-frågespråk och operatorer som stöds finns i Kusto-frågespråks dokumentation.
Anteckning
Vissa tabeller i den här artikeln kanske inte är tillgängliga i Microsoft Defender för Endpoint. Aktivera Microsoft 365 Defender för att leta efter hot med hjälp av fler datakällor. Du kan flytta dina avancerade arbetsflöden för sökning från Microsoft Defender för Endpoint till Microsoft 365 Defender genom att följa stegen i Migrera avancerade sökfrågor från Microsoft Defender för Slutpunkt.