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

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.

    Esempio di esecuzione di più query nella pagina **Nuova query** nel portale di Microsoft Defender

    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.

    Aprire una nuova scheda selezionando Crea nuovo nella ricerca avanzata nel portale di Microsoft Defender

    È quindi possibile eseguire query diverse senza mai aprire una nuova scheda del browser.

    Eseguire query diverse senza mai uscire dalla pagina ricerca avanzata nel portale di Microsoft Defender

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.

La sezione **Introduzione** nella pagina **Ricerca avanzata** nel portale di Microsoft Defender

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.

Consiglio

Per saperne di più, Visitare la community di Microsoft Security nella Tech Community: Tech Community di Microsoft Defender XDR.