Adatok lekérdezése a Kusto lekérdezési nyelv használatával

Befejeződött

A Microsoft Sentinel Kusto lekérdezésnyelv (KQL) használatával kereshet és szűrhet összegyűjtött adatokat.

Kusto Query Language

A KQL lehetővé teszi interaktív elemzések létrehozását, tárolását és futtatását az összegyűjtött adatokon. A Microsoft Sentinel a KQL használatával vizualizálja és elemzi a fontos adatokat. A KQL használatával összetett elemzői lekérdezéseket hozhat létre, amelyek a következő operátorokat tartalmazhatják:

  • Számított oszlopok
  • Függvények egyesítése
  • Csoportosítás összesítések alapján

Alapszintű lekérdezések írása és futtatása

A lekérdezések csak olvasható kérések, amelyek adatokat dolgoznak fel, és az adatok vagy metaadatok módosítása nélkül adják vissza a feldolgozás eredményeit. Az SQL-lekérdezésekhez hasonlóan a KQL-lekérdezések hierarchiába rendezett sémaentitásokat használnak, például adatbázisokat, táblákat és oszlopokat. A sémák logikai kategóriákba csoportosított táblák gyűjteményei. A lekérdezések pontosvesszővel (;) tagolt lekérdezési utasítások sorozataiból állnak.

Amikor létrehoz egy lekérdezést, egy táblanévvel vagy keresési paranccsal kezdődik. A következő lekérdezés például az összes rekordot lekéri a Event táblából:

Event

A függőleges vonás (|) karakterrel választhatja el egymástól a parancsokat. Az első parancs kimenete a következő parancs bemenetévé válik. Egy lekérdezéshez tetszőleges számú parancs adható. Az alábbi lekérdezés lekéri a rekordokat a Event táblából, majd megkeresi őket a kifejezésre error bármely tulajdonságban:

Event

| search error

A lekérdezést táblázatos és skaláris operátorokkal hozhatja létre, amelyeket a KQL több táblázatoskifejezés-utasításban ötvöz, így létrehozva a lekérdezés eredményeit.

source1 | operator1 | operator2

A következő példában a forrás a következő AzureActivity. Az első operátor az where, amely a logikai kifejezés alapján szűri ki a rekordokat. A második operátor ismét where:

AzureActivity

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

A Log Analytics alapértelmezés szerint az elmúlt 24 órára korlátozza a lekérdezések időtartományát. Ha másik időtartományt szeretne beállítani, explicit szűrőt TimeGenerated adhat hozzá a lekérdezéshez, vagy használhatja a vezérlőt Time range . A következő lekérdezés például az előző óra adatait adja vissza:


AzureActivity

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

A lekérdezéseket ötvözheti a leggyakrabban használt operátorok némelyikével:

  • count. A tábla sorainak számát adja vissza.
  • take. Az adatsorokból legfeljebb a megadott számút adja vissza.
  • project. Oszlopok részhalmazát választja ki.
  • sort. Egy vagy több oszlop alapján rendezi a bemeneti tábla sorait.
  • top. Az első N rekordot adja vissza a megadott oszlopok alapján rendezve.
  • extend. Származtatott oszlopokat számít.
  • summarize. Sorok csoportjait összesíti.
  • render. Grafikus kimenetként rendereli az eredményeket.

Két forrás (tábla) rekordjainak kombinálásához használhatja az operátort join . Az union operátor két vagy több táblát egyesít egybe.

További információt a Microsoft Log Analytics oktatóanyagában talál, amely a Log Analytics funkcióival készít és futtat lekérdezéseket ahelyett, hogy magát a lekérdezést használná.

Az Azure Data Explorer oktatóanyagából is megismerheti a KQL használatát.

Megjegyzés:

A Microsoft Sentinel Log Analytics nem támogatja az Azure Data Explorerben használt összes KQL-szintaxist.

Microsoft Sentinel-adattár a GitHubon

A GitHubOn található Microsoft Sentinel-adattár segítségével speciális lekérdezéseket és munkafüzeteket is kereshet a környezet védelméhez és a fenyegetések kereséséhez. A Microsoft Sentinel GitHub-adattár következő lekérdezése például a felhasználói fiókokra vonatkozó engedélyek gyanús delegálását jeleníti meg.

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

A lekérdezés elemzi azt az IP-címet, amelyről a rendszergazda hozzáférést nyújt más felhasználóknak az Azure-erőforrásokhoz. Ha egy művelet nem érvényes IP-címről származik, a lekérdezés gyanús tevékenységet jelez, amelyet tovább vizsgálhat.

Ha ki szeretne próbálni néhány példát, használja az Azure Portalon lévő bemutatókörnyezetet.

Tesztelje tudását

1.

Az alábbi eszközök közül melyikkel kérdezheti le a rendszergazda az adatokat a Microsoft Sentinelben?

2.

Melyiket használja az alábbi karakterek közül a rendszergazda a lekérdezés parancsainak elválasztásához?