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

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 ActionType stö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.

Ett exempel på körning av flera frågor på sidan **Ny fråga** i Microsoft 365 Defender portalen

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.

Avsnittet **Komma igång** på sidan **Avancerad sökning** i Microsoft 365 Defender portalen

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.