Forespørg på data ved hjælp af Kusto-forespørgselssprog
- 5 minutter
Du kan bruge KQL (Kusto-forespørgselssprog) i Microsoft Sentinel til at søge efter og filtrere indsamlede data.
Kusto-forespørgselssprog
KQL giver dig mulighed for at oprette, gemme og køre interaktive analyser på indsamlede data. Microsoft Sentinel bruger KQL til at visualisere og analysere de vigtige data. Du kan bruge KQL til at oprette komplekse analyseforespørgsler, der indeholder nogle af følgende operatorer:
- Beregnede kolonner
- Join-funktioner
- Gruppér efter aggregater
Skrive og køre grundlæggende forespørgsler
En forespørgsel er en skrivebeskyttet anmodning, der behandler data og returnerer resultaterne af denne behandling uden at ændre dataene eller metadataene. På samme måde som SQL-forespørgsler bruger KQL-forespørgsler skemaobjekter, der er organiseret i et hierarki, f.eks. databaser, tabeller og kolonner. Et skema er en samling af tabeller, der er grupperet under logiske kategorier. Forespørgslerne består af sekvenser af forespørgselssætninger, der er afgrænset af et semikolon (;).
Når du opretter en forespørgsel, starter du med enten et tabelnavn eller en søgekommando. Følgende forespørgsel henter f.eks. alle poster fra Event tabellen:
Event
Du kan bruge pibetegnet (|) til at adskille kommandoer. Outputtet af den første kommando bliver input af den næste kommando. Du kan føje et vilkårligt antal kommandoer til en enkelt forespørgsel. Følgende forespørgsel henter posterne fra Event tabellen og søger derefter efter ordet error i en hvilken som helst egenskab:
Event
| search error
Du kan konstruere forespørgslen med tabel- og skalaroperatorer, som KQL kombinerer til flere tabeludtrykssætninger, som producerer resultaterne af forespørgslen.
source1 | operator1 | operator2
I følgende eksempel er AzureActivitykilden . Den første operator er where, som filtrerer poster fra baseret på det logiske udtryk. Den anden operatør er igen where:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
Log Analytics begrænser som standard forespørgsler til et tidsinterval på de seneste 24 timer. Hvis du vil angive et andet tidsinterval, kan du føje et eksplicit TimeGenerated filter til forespørgslen eller bruge kontrolelementet Time range . Følgende forespørgsel returnerer f.eks. data fra den foregående time:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)
Du kan kombinere dine forespørgsler med nogle af de mest almindeligt anvendte operatorer:
-
count. Returnerer antallet af rækker i tabellen. -
take. Returnerer op til det angivne antal rækker med data. -
project. Markerer et undersæt af kolonner. -
sort. Sorterer rækkerne i inputtabellen i rækkefølge efter en eller flere kolonner. -
top. Returnerer de første N-poster, der er sorteret efter de angivne kolonner. -
extend. Beregner afledte kolonner. -
summarize. Aggregerer grupper af rækker. -
render. Gengiver resultater som et grafisk output.
Hvis du vil kombinere poster fra to kilder (tabeller), kan du bruge operatoren join . Operatøren union kombinerer to eller flere borde til én.
Du kan finde flere oplysninger i Microsoft Log Analytics-selvstudiet , der bruger funktioner i Log Analytics til at oprette og køre en forespørgsel i stedet for at arbejde med selve forespørgslen.
Du kan også bruge Azure Data Explorer-selvstudiet til at få mere at vide om KQL.
Notat
Microsoft Sentinel Log Analytics understøtter ikke al den KQL-syntaks, der bruges i Azure Data Explorer.
Microsoft Sentinel-lager på GitHub
Du kan også bruge Microsoft Sentinel-lageret på GitHub til at søge efter specialiserede forespørgsler og projektmapper for at hjælpe med at sikre dit miljø og jage efter trusler. Følgende forespørgsel fra Microsoft Sentinel GitHub-lageret viser f.eks. mistænkelig delegering af tilladelser til brugerkonti.
let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress
Forespørgslen analyserer den IP-adresse, hvorfra administratoren giver andre brugere adgang til Azure-ressourcer. Hvis en handling ikke er fra en gyldig IP-adresse, signalerer forespørgslen mistænkelig aktivitet, som du kan undersøge yderligere.
Hvis du vil prøve nogle eksempler, kan du bruge demonstrationsmiljøet på Azure Portal.
Test din viden
Feedback
Var denne side nyttig?
No
Har du brug for hjælp til dette emne?
Vil du prøve at bruge Ask Learn til at tydeliggøre eller guide dig gennem dette emne?