Scoprire il linguaggio delle query in Ricerca avanzata
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:
// 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
Eseguire questa query nella ricerca avanzata
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.
// 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.
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.
| 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.
// 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.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
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.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Selezionare Esegui query per visualizzare i risultati.
Consiglio
È possibile visualizzare i risultati delle query come grafici e regolare rapidamente i filtri. Per indicazioni, vedere l'articolo sull'uso dei risultati delle query
Informazioni sugli operatori di query comuni
È 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:
Tipo di dati | Descrizione e implicazioni delle query |
---|---|
datetime |
Informazioni sui dati e sull'ora che rappresentano in genere timestamp dell'evento. Vedere i formati datetime supportati |
string |
Stringa di caratteri in FORMATO UTF-8 racchiusa tra virgolette singole (' ) o doppie (" ).
Altre informazioni sulle stringhe |
bool |
Questo tipo di dati supporta true o false gli stati.
Vedere valori letterali e operatori supportati |
int |
Intero a 32 bit |
long |
Intero a 64 bit |
Per altre informazioni su questi tipi di dati, vedere Tipi di dati scalari Kusto.
Ottenere assistenza nella scrittura delle query
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.
Documentazione sulle query
Per altre informazioni sul linguaggio delle query di Esplora dati e sugli operatori supportati, vedere Documentazione sul linguaggio delle query di Esplora dati.
Nota
Alcune tabelle di questo articolo potrebbero non essere disponibili in Microsoft Defender per endpoint. Attivare Microsoft Defender XDR per cercare le minacce usando più origini dati. È possibile spostare i flussi di lavoro di ricerca avanzati da Microsoft Defender per endpoint a Microsoft Defender XDR seguendo la procedura descritta in Eseguire la migrazione di query di ricerca avanzate da Microsoft Defender per endpoint.
Argomenti correlati
- Panoramica della rilevazione avanzata
- Usare i risultati delle query
- Utilizzare le query condivise
- Cercare tra dispositivi, posta elettronica, app e identità
- Comprendere lo schema
- Applicare le procedure consigliate per le query
Consiglio
Per saperne di più, Visitare la community di Microsoft Security nella Tech Community: Tech Community di Microsoft Defender XDR.