Adatok lekérdezése a Kusto lekérdezési nyelv használatával
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.