Usare l'operatore summarize

Completato

L'operatore count con le relative varianti crea una nuova colonna con il risultato calcolato per i campi specificati.

La prima istruzione riportata di seguito restituisce una colonna che rappresenta un elenco univoco dei valori della colonna Activity.

La seconda istruzione restituisce il numero di righe di SecurityEvent in cui EventID è uguale a 4688 e il numero è raggruppato in base a Process e Computer. A causa della clausola by, il set di risultati contiene tre colonne: Process, Computer e Count.

Eseguire ogni query separatamente per visualizzare i risultati.

SecurityEvent | summarize by Activity

SecurityEvent
| where EventID == "4688"
| summarize count() by Process, Computer

L'esempio riportato di seguito è un elenco parziale delle funzioni di aggregazione semplici più comuni usate con l'operatore summarize.

Funzione Descrizione
count(), countif() Restituisce un conteggio dei record per gruppo di riepilogo
dcount(), dcountif() Restituisce una stima del numero di valori distinti accettati da un'espressione scalare nel gruppo di riepilogo.
avg(), avgif() Calcola la media di Expr all'interno del gruppo.
max(), maxif() Restituisce il valore massimo nel gruppo.
min(), minif() Restituisce il valore minimo nel gruppo.
percentile() Restituisce una stima per il percentile specificato con classificazione più prossima della popolazione definita da Expr. L'accuratezza dipende dalla densità della popolazione nell'area del percentile.
stdev(), stdevif() Calcola la deviazione standard di Expr all'interno del gruppo, considerando il gruppo come campione.
sum(), sumif() Calcola la somma di Expr all'interno del gruppo.
variance(), varianceif() Calcola la varianza di Expr all'interno del gruppo, considerando il gruppo come campione.

Esempio di funzione count

Una colonna di una funzione di aggregazione può essere denominata in modo esplicito includendo "fieldname=" prima della funzione di aggregazione.

L'istruzione KQL restituisce tre colonne: "cnt", "AccountType" e "Computer". Il nome del campo "cnt" sostituisce il nome predefinito "count_".

SecurityEvent
| where TimeGenerated > ago(1h)
| where EventID == 4624
| summarize cnt=count() by AccountType, Computer

Esempio di funzione <dcount>

L'esempio seguente restituisce il numero di indirizzi IP univoci.

SecurityEvent
| summarize dcount(IpAddress)

Analisi di un esempio reale

L'istruzione seguente è una regola per rilevare gli errori di password non valida tra più applicazioni per lo stesso account.

L'operatore where per ResultDescription filtra il set di risultati per i risultati che includono "Password non valida". Successivamente, l'istruzione "summarize" produce un conteggio distinto di nomi di applicazione e un gruppo in base all'utente e all'indirizzo IP. Infine, viene eseguita una verifica in base a una variabile creata (soglia) per vedere se il numero supera la quantità consentita.

let timeframe = 30d;
let threshold = 1;
SigninLogs
| where TimeGenerated >= ago(timeframe)
| where ResultDescription has "Invalid password"
| summarize applicationCount = dcount(AppDisplayName) by UserPrincipalName, IPAddress
| where applicationCount >= threshold