Scoprire il linguaggio delle query in Ricerca avanzata
Articolo
Si applica a:
Microsoft Defender XDR, Microsoft Sentinel in the Microsoft Defender portal
Ricerca avanzata si basa sul linguaggio delle query in Esplora dati. È possibile usare operatori e istruzioni Kusto per costruire query che individuano informazioni in uno schema specializzato.
Guardare questo breve video per apprendere alcune utili nozioni di base sul linguaggio di query Kusto.
Per comprendere meglio questi concetti, eseguire la prima query.
Provare la prima query
Nel portale di Microsoft Defender passare a Ricerca per eseguire la prima query. Usare l'esempio seguente:
Kusto
// Finds PowerShell execution events that could involve a downloadunion 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
| top100by Timestamp
Descrivere la query e specificare le tabelle da cercare
Un breve commento è stato aggiunto all'inizio della query per descrivere a cosa serve. Questo commento può essere d’aiuto dr In un secondo momento si decide di salvare la query e condividerla con altri utenti dell'organizzazione.
Kusto
// Finds PowerShell execution events that could involve a download
La query stessa inizia in genere con un nome di tabella seguito da diversi elementi che iniziano con una pipe (|). In questo esempio si inizia creando un'unione di due tabelle, DeviceProcessEvents e DeviceNetworkEvents, e si aggiungono gli elementi con pipe in base alle esigenze.
Kusto
union DeviceProcessEvents, DeviceNetworkEvents
Impostare l'intervallo di tempo
Il primo elemento con pipe è un filtro temporale con ambito per i sette giorni precedenti. Il mantenimento dell'intervallo di tempo il più possibile ravvicinato assicura che le query vengano eseguite correttamente, restituiscano risultati gestibili e non si verifichino timeout.
Kusto
| where Timestamp > ago(7d)
Nota
I filtri ora Kusto sono in formato UTC indipendentemente dal fuso orario specificato nelle impostazioni.
Controllare processi specifici
L'intervallo di tempo è immediatamente seguito da una ricerca di nomi di file di processo che rappresentano l'applicazione PowerShell.
Kusto
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Cercare stringhe di comando specifiche
Successivamente, la query cerca le stringhe nelle righe di comando usate in genere per scaricare i file tramite PowerShell.
Personalizzare le colonne e la lunghezza dei risultati
Ora che la query identifica chiaramente i dati da individuare, è possibile definire come appaiono i risultati.
project restituisce colonne specifiche e top limita il numero di risultati. Questi operatori consentono di garantire che i risultati siano ben formattati e ragionevolmente grandi e facili da elaborare.
È stata appena eseguita la prima query e si ha un'idea generale dei relativi componenti. È il momento di fare un passo indietro e imparare alcune nozioni di base. Il linguaggio delle query di Esplora dati usato in Ricerca avanzata supporta una serie di operatori, di seguito sono elencati i più comuni.
Operatore
Descrizione e utilizzo
where
Filtrare una tabella nel sottoinsieme di righe che soddisfano un predicato.
summarize
Creare una tabella che aggrega il contenuto della tabella di input.
join
Unire le righe di due tabelle per creare una nuova tabella in base ai valori corrispondenti delle colonne specificate di ogni tabella. Per informazioni su come , vedere Join tables in KQL (Unione di tabelle in KQL ).
count
Restituire il numero di record nel set di record di input.
top
Restituire i primi N record ordinati in base alle colonne specificate.
limit
Tornare al numero specificato di righe.
project
Selezionare le colonne da includere, rinominare o rilasciare e inserire nuove colonne calcolate.
extend
Creare colonne calcolate e accodarle al set di risultati.
makeset
Restituire una matrice dinamica (JSON) del set di valori distinti che Expr accetta nel gruppo.
find
Trovare le righe che corrispondono a un predicato in un set di tabelle.
Per vedere un esempio pratico di questi operatori, eseguirli nella sezione Introduzione in Ricerca avanzata.
Informazioni sui tipi di dati
La ricerca avanzata supporta i tipi di dati Kusto, inclusi i tipi comuni seguenti:
Trarre vantaggio dalle seguenti funzionalità per scrivere query più velocemente:
Suggerimenti automatici : durante la scrittura di query, la ricerca avanzata fornisce suggerimenti da IntelliSense.
Albero dello schema: viene fornita una rappresentazione dello schema che include l'elenco delle tabelle e le relative colonne accanto all'area di lavoro. Per altre informazioni, passare il puntatore su un elemento. Fare doppio clic su un elemento per inserirlo nell'editor di query.
Informazioni di riferimento sullo schema : informazioni di riferimento nel portale con descrizioni di tabelle e colonne, nonché tipi di evento supportati (ActionType valori) e query di esempio
Usare più query nell'editor
È possibile usare l'editor di query per sperimentare più query. Per usare più query:
Separare ogni query con una riga vuota.
Posizionare il cursore su qualsiasi parte di una query per selezionarla prima di eseguirla. Verrà eseguita solo la query selezionata. Per eseguire un'altra query, spostare il cursore di conseguenza e selezionare Esegui query.
Per un'area di lavoro più efficiente, è anche possibile usare più schede nella stessa pagina di ricerca. Selezionare Nuova query per aprire una scheda per la nuova query.
È quindi possibile eseguire query diverse senza mai aprire una nuova scheda del browser.
Nota
L'uso di più schede del browser con ricerca avanzata potrebbe causare la perdita delle query non salvate. Per evitare che ciò accada, usare la funzionalità di tabulazioni all'interno della ricerca avanzata invece di schede del browser separate.
Usare query di esempio
La sezione Introduzione presenta alcune semplici query che impiegano operatori di uso comune. Provare a eseguire queste query e apportare piccole modifiche.
Nota
Oltre agli esempi di query di base, è anche possibile accedere query condivise per specifici scenari di ricerca delle minacce. Esplorare le query condivise sul lato sinistro della pagina o sul repository di query GitHub.