Dotazy na data pomocí jazyka Kusto (KQL)

Dokončeno

Ke vyhledávání a filtrování shromážděných dat můžete použít dotazovací jazyk Kusto (KQL) v Microsoft Sentinelu.

Kusto Query Language

KQL poskytuje možnost vytvářet, ukládat a spouštět interaktivní analýzy shromážděných dat. Microsoft Sentinel používá KQL k vizualizaci a analýze důležitých dat. Pomocí KQL můžete vytvářet složité analytické dotazy, které obsahují některé z následujících operátorů:

  • Počítané sloupce
  • Funkce Join
  • Seskupení podle agregací

Zápis a spouštění základních dotazů

Dotaz je požadavek jen pro čtení, který zpracovává data a vrací výsledky tohoto zpracování beze změny dat nebo metadat. Podobně jako dotazy SQL, používají dotazy KQL entity schématu, které jsou uspořádány v hierarchii, jako jsou databáze, tabulky a sloupce. Schéma je kolekce tabulek seskupených do logických kategorií. Dotazy se skládají ze sekvencí příkazů dotazu, které se oddělují středníkem (;).

Při vytváření dotazu začínáte názvem tabulky nebo vyhledávacím příkazem. Například následující dotaz načte všechny záznamy z Event tabulky:

Event

K oddělení příkazů můžete použít znak svislé čáry (|). Výstup prvního příkazu se stává vstupem dalšího příkazu. Do jednoho dotazu můžete přidat libovolný počet příkazů. Následující dotaz načte záznamy z Event tabulky a pak je vyhledá error v libovolné vlastnosti:

Event

| search error

Dotaz můžete sestavit pomocí tabulkových a skalárních operátorů, které KQL zkombinuje do více tabulkových příkazů výrazu, čímž vzniknou výsledky dotazu.

source1 | operator1 | operator2

V následujícím příkladu je AzureActivityzdrojem . Prvním operátorem je where, který filtruje záznamy na základě logického výrazu. Druhý operátor je znovu where:

AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'

Ve výchozím nastavení Log Analytics omezuje dotazy na časový rozsah posledních 24 hodin. Pokud chcete nastavit jiný časový rozsah, můžete do dotazu přidat explicitní TimeGenerated filtr nebo použít Time range ovládací prvek. Následující například dotaz vrátí data z předchozí hodiny:


AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)

Dotazy můžete kombinovat s některými z nejčastěji používaných operátorů:

  • count. Vrátí počet řádků v tabulce.
  • take. Vrátí maximálně zadaný počet řádků dat.
  • project. Vybere podmnožinu sloupců.
  • sort. Seřadí řádky vstupní tabulky v pořadí podle jednoho nebo více sloupců.
  • top. Vrátí prvních N záznamů seřazených podle zadaných sloupců.
  • extend. Vypočítá odvozené sloupce.
  • summarize. Agreguje skupiny řádků.
  • render. Vykreslí výsledky do grafického výstupu.

Ke kombinování záznamů ze dvou zdrojů (tabulek) můžete použít join operátor. Operátor union kombinuje dvě nebo více tabulek do jedné.

Další informace najdete v kurzu Log Analytics, který k sestavení a spuštění dotazu využívá funkce služby Log Analytics namísto práce s samotným dotazem.

K získání informací o KQL můžete použít také kurz Azure Data Explorer.

Poznámka:

Microsoft Sentinel Log Analytics nepodporuje všechny syntaxe KQL, která se používá v Azure Data Exploreru.

Úložiště Microsoft Sentinel na GitHubu

Úložiště Microsoft Sentinel na GitHubu můžete také použít k vyhledání specializovaných dotazů a sešitů, které vám pomůžou zabezpečit vaše prostředí a vyhledávat hrozby. Například následující dotaz z úložiště GitHub služby Microsoft Sentinel zobrazuje podezřelé delegování oprávnění k uživatelským účtům.

let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress

Dotaz zanalyzuje IP adresu, ze které správce uděluje přístup dalším uživatelům k prostředkům Azure. Pokud operace není z platné IP adresy, dotaz signalizuje podezřelou aktivitu, kterou můžete dále prozkoumat.

Pokud chcete vyzkoušet některé příklady, použijte ukázkové prostředí na webu Azure Portal.

Prověřte si své znalosti

1.

Který z následujících nástrojů může správce použít k dotazování dat v Microsoft Sentinelu?

2.

Který z následujících znaků může správce použít k oddělení příkazů v dotazu?