Informazioni sul linguaggio di query di Ricerca avanzata

La ricerca avanzata si basa su Kusto query language. Puoi usare operatori e istruzioni Kusto per costruire query che localizzano informazioni in uno schema di caccia avanzato specializzato.

Guardare questo breve video per apprendere alcune utili nozioni di base sul linguaggio di query Kusto.

Per comprendere le nozioni di base del linguaggio di query Kusto nella ricerca avanzata, esegui 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 la query sospetta dei comandi di download di PowerShell nella ricerca avanzata

All'inizio della query è stato aggiunto un commento breve per descrivere lo scopo della query. Questo commento è utile se in un secondo momento decidi di salvare la query e condividerla con altri utenti della tua 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 nella pipeline è un filtro temporale limitato ai 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 orari Kusto sono in UTC indipendentemente dal fuso orario che hai specificato nelle impostazioni del fuso orario.

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 Usare i risultati delle query

Scopri gli 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 di query Kusto usato dalla ricerca avanzata supporta una gamma di operatori, tra cui i seguenti operatori 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. Guarda Unire tabelle in KQL per scoprire come fare.
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 in tempo reale di questi operatori, eseguili dal pannello Inizia nella pagina Advanced Hunting del portale Microsoft Defender.

Informazioni sui tipi di dati

La ricerca avanzata supporta i tipi di dati Kusto, tra cui i seguenti tipi comuni:

Tipo di dati Descrizione e implicazioni delle query
datetime Informazioni su data e ora che in genere rappresentano i timestamp degli eventi. Formati supportati di data e ora
string Stringa di caratteri in FORMATO UTF-8 racchiusa tra virgolette singole (') o doppie ("). Tipo di dati String
bool Questo tipo di dati supporta true o false gli stati. Valori letterali e operatori booleani supportati
int Intero a 32 bit
long Integer a 64 bit

Per saperne di più sui tipi di dati scalari di Kusto, vedi Tipi di dati scalari di 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 visualizzata accanto alla tua area di lavoro una rappresentazione dello schema che include l'elenco delle tabelle e delle relative colonne. Per altre informazioni, passare il puntatore su un elemento. Fare doppio clic su un elemento per inserirlo nell'editor di query.
  • Riferimento allo schema - riferimento nel portale con descrizioni delle tabelle e delle colonne, nonché tipi di evento supportati (valori ActionType) e query di esempio

Lavorare con 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 uno spazio di lavoro più efficiente, è inoltre possibile più schede all'interno della 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 le query di esempio nella sezione Introduzione 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 il repository di query di GitHub.

Documentazione sul linguaggio di query di Access

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 per cercare minacce usando più origini dati. È possibile spostare i flussi di lavoro di ricerca avanzata da Microsoft Defender per endpoint a Microsoft Defender seguendo i passaggi descritti in Eseguire la migrazione di query di ricerca avanzata da Microsoft Defender per endpoint.

Consiglio

Vuoi saperne di più? Interagisci con la community Microsoft Security nella nostra Tech Community: Microsoft Defender XDR Tech Community.