Scoprire il linguaggio delle query in Ricerca avanzataLearn the advanced hunting query language

Importante

Benvenuti in Microsoft 365 Defender, il nuovo nome per Microsoft Threat Protection.Welcome to Microsoft 365 Defender, the new name for Microsoft Threat Protection. Altre informazioni su questo e altri aggiornamenti sono disponibili qui.Read more about this and other updates here. A breve aggiorneremo i nomi nei prodotti e nei documentiWe'll be updating names in products and in the docs in the near future

Si applica a:Applies to:

  • Microsoft Threat ProtectionMicrosoft Threat Protection

Ricerca avanzata si basa sul linguaggio delle query in Esplora dati.Advanced hunting is based on the Kusto query language. È possibile utilizzare gli operatori e le istruzioni di Kusto per creare query che consentono di individuare le informazioni in uno schemaspecializzato.You can use Kusto operators and statements to construct queries that locate information in a specialized schema. Per comprendere meglio questi concetti, eseguire la prima query.To understand these concepts better, run your first query.

Provare la prima queryTry your first query

In Microsoft 365 Security Center, andare a caccia per eseguire la prima query.In Microsoft 365 security center, go to Hunting to run your first query. Usare l'esempio seguente:Use the following example:

// 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 in Advanced HuntingRun this query in advanced hunting

All'inizio della query è stato aggiunto un breve commento per descrivere il relativo contenuto.A short comment has been added to the beginning of the query to describe what it is for. Questo commento aiuta se in seguito si decide di salvare la query e condividerla con altri utenti dell'organizzazione.This comment helps if you later decide to save the query and share it with others in your organization.

// Finds PowerShell execution events that could involve a download

La query in genere inizia con un nome di tabella seguito da diversi elementi che iniziano con una pipe ( | ).The query itself will typically start with a table name followed by several elements that start with a pipe (|). In questo esempio viene avviata la creazione di un'Unione di due tabelle DeviceProcessEvents e DeviceNetworkEvents , quindi, vengono aggiunti gli elementi reindirizzati in base alle esigenze.In this example, we start by creating a union of two tables, DeviceProcessEvents and DeviceNetworkEvents, and add piped elements as needed.

union DeviceProcessEvents, DeviceNetworkEvents

Impostare l'intervallo di tempoSet the time range

Il primo elemento con pipe è un filtro temporale che ha come ambito i sette giorni precedenti.The first piped element is a time filter scoped to the previous seven days. La limitazione dell'intervallo di tempo consente di garantire la corretta esecuzione delle query, restituire risultati gestibili e non eseguire il timeout.Limiting the time range helps ensure that queries perform well, return manageable results, and don't time out.

| where Timestamp > ago(7d)

Controllare i processi specificiCheck specific processes

L'intervallo di tempo è subito seguito da una ricerca dei nomi dei file di processo che rappresentano l'applicazione PowerShell.The time range is immediately followed by a search for process file names representing the PowerShell application.

// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")

Ricerca di stringhe di comandi specificheSearch for specific command strings

Successivamente, la query Cerca stringhe nelle righe di comando che vengono in genere utilizzate per scaricare i file tramite PowerShell.Afterwards, the query looks for strings in command lines that are typically used to download files using PowerShell.

// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
    "DownloadFile",
    "DownloadData",
    "DownloadString",
    "WebRequest",
    "Shellcode",
    "http",
    "https")

Personalizzare le colonne dei risultati e la lunghezzaCustomize result columns and length

Ora che la query identifica chiaramente i dati che si desidera individuare, è possibile definire i risultati.Now that your query clearly identifies the data you want to locate, you can define what the results look like. project restituisce colonne specifiche e top limita il numero di risultati.project returns specific columns, and top limits the number of results. Questi operatori contribuiscono a garantire che i risultati siano ben formattati e ragionevolmente grandi e facili da elaborare.These operators help ensure the results are well-formatted and reasonably large and easy to process.

| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, 
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Selezionare Esegui query per visualizzare i risultati.Select Run query to see the results. Utilizzare l'icona Espandi nell'angolo superiore destro dell'editor di query per concentrarsi sulla query di caccia e sui risultati.Use the expand icon at the top right of the query editor to focus on your hunting query and the results.

Immagine del controllo Espandi nell'editor di query di ricerca avanzata

Suggerimento

È possibile visualizzare i risultati delle query come grafici e regolare rapidamente i filtri.You can view query results as charts and quickly adjust filters. Per ulteriori informazioni, vedere Utilizzo dei risultati delle queryFor guidance, read about working with query results

Informazioni sugli operatori di query comuniLearn common query operators

È sufficiente eseguire la prima query e avere un'idea generale dei relativi componenti.You've just run your first query and have a general idea of its components. È il momento di fare un po' di marcia indietro e imparare alcune nozioni di base.It's time to backtrack slightly and learn some basics. Il linguaggio delle query di Esplora dati usato in Ricerca avanzata supporta una serie di operatori, di seguito sono elencati i più comuni.The Kusto query language used by advanced hunting supports a range of operators, including the following common ones.

OperatoreOperator Descrizione e utilizzoDescription and usage
where Filtrare una tabella nel sottoinsieme di righe che soddisfano un predicato.Filter a table to the subset of rows that satisfy a predicate.
summarize Creare una tabella che aggrega il contenuto della tabella di input.Produce a table that aggregates the content of the input table.
join Unire le righe di due tabelle per creare una nuova tabella in base ai valori corrispondenti delle colonne specificate di ogni tabella.Merge the rows of two tables to form a new table by matching values of the specified column(s) from each table.
count Restituire il numero di record nel set di record di input.Return the number of records in the input record set.
top Restituire i primi N record ordinati in base alle colonne specificate.Return the first N records sorted by the specified columns.
limit Tornare al numero specificato di righe.Return up to the specified number of rows.
project Selezionare le colonne da includere, rinominare o rilasciare e inserire nuove colonne calcolate.Select the columns to include, rename or drop, and insert new computed columns.
extend Creare colonne calcolate e accodarle al set di risultati.Create calculated columns and append them to the result set.
makeset Restituire una matrice dinamica (JSON) del set di valori distinti che Expr accetta nel gruppo.Return a dynamic (JSON) array of the set of distinct values that Expr takes in the group.
find Trovare le righe che corrispondono a un predicato in un set di tabelle.Find rows that match a predicate across a set of tables.

Per vedere un esempio pratico di questi operatori, eseguirli nella sezione Introduzione in Ricerca avanzata.To see a live example of these operators, run them from the Get started section in advanced hunting.

Informazioni sui tipi di datiUnderstand data types

Advanced Hunting supporta i tipi di dati di Kusto, inclusi i seguenti tipi comuni:Advanced hunting supports Kusto data types, including the following common types:

Tipo di datiData type Descrizione e implicazioni delle queryDescription and query implications
datetime Informazioni sui dati e sull'ora che in genere rappresentano timestamp dell'evento.Data and time information typically representing event timestamps. Vedere formati DateTime supportatiSee supported datetime formats
string Stringa di caratteri in UTF-8 racchiusa tra virgolette singole ( ' ) o virgolette doppie ( " ).Character string in UTF-8 enclosed in single quotes (') or double quotes ("). Per saperne di più sulle stringheRead more about strings
bool Questo tipo di dati supporta true o false dichiara.This data type supports true or false states. Vedere i valori letterali e gli operatori supportatiSee supported literals and operators
int numero intero a 32 bit32-bit integer
long numero intero a 64 bit64-bit integer

Per ulteriori informazioni su questi tipi di dati, leggere informazioni sui tipi di dati scalari di Kusto.To learn more about these data types, read about Kusto scalar data types.

Ottenere assistenza nella scrittura delle queryGet help as you write queries

Trarre vantaggio dalle seguenti funzionalità per scrivere query più velocemente:Take advantage of the following functionality to write queries faster:

  • AutoSuggest: durante la scrittura di query, la ricerca avanzata fornisce suggerimenti da IntelliSense.Autosuggest—as you write queries, advanced hunting provides suggestions from IntelliSense.
  • Albero dello schema: una rappresentazione dello schema che include l'elenco delle tabelle e delle relative colonne viene fornita accanto all'area di lavoro.Schema tree—a schema representation that includes the list of tables and their columns is provided next to your working area. Per altre informazioni, passare il puntatore su un elemento.For more information, hover over an item. Fare doppio clic su un elemento per inserirlo nell'editor di query.Double-click an item to insert it to the query editor.
  • Riferimenti dello schema: riferimenti in-Portal con descrizioni di tabelle e colonne, nonché tipi di evento supportati ( ActionType valori) e query di esempioSchema reference—in-portal reference with table and column descriptions as well as supported event types (ActionType values) and sample queries

Utilizzo di più query nell'editorWork with multiple queries in the editor

È possibile utilizzare l'editor di query per sperimentare più query.You can use the query editor to experiment with multiple queries. Per utilizzare più query:To use multiple queries:

  • Separare ogni query con una linea vuota.Separate each query with an empty line.
  • Posizionare il cursore su qualsiasi parte di una query per selezionare la query prima di eseguirla.Place the cursor on any part of a query to select that query before running it. Verrà eseguita solo la query selezionata.This will run only the selected query. Per eseguire un'altra query, spostare il cursore di conseguenza e selezionare Esegui query.To run another query, move the cursor accordingly and select Run query.

Immagine dell'editor di query con più query

Usare query di esempioUse sample queries

La sezione Introduzione presenta alcune semplici query che impiegano operatori di uso comune.The Get started section provides a few simple queries using commonly used operators. Provare a eseguire queste query e apportare piccole modifiche.Try running these queries and making small modifications to them.

Immagine della finestra di Ricerca avanzata

Nota

Oltre agli esempi di query di base, è anche possibile accedere query condivise per specifici scenari di ricerca delle minacce.Apart from the basic query samples, you can also access shared queries for specific threat hunting scenarios. Esplorare le query condivise sul lato sinistro della pagina o l'archivio di query GitHub.Explore the shared queries on the left side of the page or the GitHub query repository.

Documentazione sulle queryAccess query language documentation

Per altre informazioni sul linguaggio delle query di Esplora dati e sugli operatori supportati, vedere Documentazione sul linguaggio delle query di Esplora dati.For more information on Kusto query language and supported operators, see Kusto query language documentation.