Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Kusto-Abfragesprache (Kusto Query Language, KQL) ist ein leistungsfähiges Tool für das Erkunden Ihrer Daten und Erkennen von Mustern, Ermitteln von Anomalien und Ausreißern, Erstellen statistischer Modelle und vieles mehr.
KQL ist eine einfache und dennoch leistungsstarke Sprache zum Abfragen strukturierter, halbstrukturierter und unstrukturierter Daten. Die Sprache ist ausdrucksstark, leicht zu lesen und zu verstehen, die Abfrageabsicht zu verstehen und für die Erstellungsumgebung optimiert. KQL ist optimal für die Abfrage von Telemetrie, Metriken und Protokollen mit umfassender Unterstützung für die Textsuche und Analyse, Zeitreihenoperatoren und -funktionen, Analyse und Aggregation, Geospatial, Vektorgleichheitssuchen und viele andere Sprachkonstrukte, die die optimale Sprache für die Datenanalyse bieten. Die Abfrage verwendet Schemaentitäten, die in einer Hierarchie ähnlich wie SQLs organisiert sind: Datenbanken, Tabellen und Spalten.
Wenn Sie über einen Hintergrund in Der Skripterstellung oder beim Arbeiten mit Datenbanken verfügen, sollte sich ein Großteil des Inhalts dieses Artikels vertraut fühlen. Falls nicht, ist dies kein Grund zur Sorge, da die intuitive Natur der Sprache Ihnen ermöglicht, schnell eigene Abfragen zu schreiben und den Nutzen für Ihre Organisation zu steigern.
Dieser Artikel enthält eine Erläuterung der Abfragesprache und bietet praktische Übungen, mit der Sie mit dem Schreiben von Abfragen beginnen können. Um auf die Abfrageumgebung zuzugreifen, verwenden Sie die Azure Data Explorer-Web-UI. Informationen zur Verwendung von KQL finden Sie im Lernprogramm: Lernen Sie allgemeine Operatorenkennen.
Dieser Artikel enthält eine Erläuterung der Abfragesprache und bietet praktische Übungen, mit der Sie mit dem Schreiben von Abfragen beginnen können. Verwenden Sie die KQL-Abfrageset-, um auf die Abfrageumgebung zuzugreifen. Informationen zur Verwendung von KQL finden Sie im Lernprogramm: Lernen Sie allgemeine Operatorenkennen.
KQL ist auch die Sprache, mit der Sie mit Daten in Microsoft Sentinel arbeiten und diese bearbeiten. Die Protokolle, die Sie in Ihren Arbeitsbereich einspeisen, sind nicht viel wert, wenn Sie sie nicht analysieren können und wenn Sie die wichtigen Informationen nicht extrahieren können, die in all diesen Daten verborgen sind. KQL verfügt nicht nur über die Leistungsfähigkeit und Flexibilität, diese Informationen zu erhalten, sondern auch die Einfachheit, die Ihnen bei den ersten Schritten hilft.
In diesem Artikel werden die Grundlagen von KQL vorgestellt, die einige der am häufigsten verwendeten Funktionen und Operatoren abdecken, die 75 bis 80 Prozent der Abfragen behandeln sollten, die Benutzer täglich schreiben. Wenn Sie mehr Tiefe benötigen oder erweiterte Abfragen ausführen möchten, können Sie die Erweiterte KQL für Microsoft Sentinel-Arbeitsmappe nutzen.
Warum KQL für Microsoft Sentinel?
Microsoft Sentinel baut auf dem Azure Monitor-Dienst auf und verwendet zum Speichern aller Daten die Log Analytics-Arbeitsbereiche von Azure Monitor. Zu diesen Daten gehören folgende:
- Daten, die mithilfe von Microsoft Sentinel-Datenconnectors aus externen Quellen in vordefinierten Tabellen erfasst werden
- Daten, die mithilfe von benutzerdefinierten Datenconnectors sowie einigen Typen von gebrauchsfertigen Connectors aus externen Quellen in benutzerdefinierten Tabellen erfasst werden
- Von Microsoft Azure Sentinel selbst erstellte Daten, die sich aus den von Sentinel erstellten und ausgeführten Analysen ergeben, z. B. Warnungen, Incidents und UEBA-bezogene (User Entity Behavior Analytics) Informationen
- Daten, die zur Unterstützung bei der Erkennung und Analyse in Microsoft Sentinel hochgeladen werden, z. B. Threat Intelligence-Feeds und Watchlists
KQL wurde als Teil des Azure Data Explorer-Diensts entwickelt und ist daher für die Suche durch Big-Data-Speicher in einer Cloudumgebung optimiert. Es wurde entwickelt, um Ihnen zu helfen, tief in Ihre Daten einzutauchen und ihre verborgenen Schätze zu erkunden.
KQL wird auch in Azure Monitor verwendet und unterstützt zusätzliche Azure Monitor-Features, mit denen Sie Daten in Log Analytics-Datenspeichern abrufen, visualisieren, analysieren und analysieren können. In Microsoft Sentinel verwenden Sie Tools, die auf KQL basieren, wenn Sie Daten visualisieren und analysieren und nach Bedrohungen suchen, ob in vorhandenen Regeln und Arbeitsmappen oder beim Erstellen eigener Regeln.
Da KQL Teil von fast allem ist, was Sie in Microsoft Sentinel tun, ist ein klares Verständnis dafür, wie es funktioniert, hilft Ihnen, dies mehr aus Ihrem SIEM herauszuholen.
Was ist eine Kusto-Abfrage?
Eine Kusto-Abfrage ist eine schreibgeschützte Anforderung zum Verarbeiten von Daten und Zurückgeben von Ergebnissen. Die Anforderung wird im Nur-Text-Format mit einem Datenflussmodell angegeben, das einfach zu lesen, zu erstellen und zu automatisieren ist. Kusto-Abfragen werden aus einer oder mehreren Abfrageanweisungen erstellt.
Eine Kusto-Abfrage schreibt keine Daten. Abfragen werden in Bezug auf Daten ausgeführt, die in einer SQL-ähnlichen Hierarchie von Datenbanken, Tabellen und Spalten organisiert sind.
Was ist eine Abfrage-Anweisung?
Es gibt drei Arten von Benutzerabfrageanweisungen :
- Eine tabellarische Ausdrucksanweisung
- Eine let-Anweisung
- Eine set-Anweisung
Alle Abfrageanweisungen werden durch ein ;
(Semikolon) getrennt und wirken sich nur auf die abfrage aus.
Anmerkung
Informationen zu Anwendungsabfrageanweisungen finden Sie unter Application-Abfrageanweisungen.
Die am häufigsten verwendete Abfrageausweisung ist ein tabellarischer Ausdruck Anweisung, was bedeutet, dass sowohl die Eingabe als auch die Ausgabe aus Tabellen oder tabellarischen Datasets besteht. Tabellarische Anweisungen enthalten null oder mehr Operatoren, von denen jede mit einer tabellarischen Eingabe beginnt und eine tabellarische Ausgabe zurückgibt. Operatoren werden von einem |
(Pipe) sequenziert. Datenflüsse oder werden von einem Operator an die nächste weitergeleitet. Die Daten werden bei jedem Schritt gefiltert oder bearbeitet und dann in den folgenden Schritt eingespeist.
Es ist wie ein Trichter, bei dem Sie mit einer gesamten Datentabelle beginnen. Jedes Mal, wenn die Daten einen anderen Operator durchlaufen, werden sie gefiltert, neu angeordnet oder zusammengefasst. Da die Weitergabe von Informationen von einem Operator an einen anderen sequenziell ist, ist die Reihenfolge des Abfrageoperators wichtig und kann sich sowohl auf Ergebnisse als auch auf die Leistung auswirken. Am Ende des Trichters verbleiben Sie mit einer optimierten Ausgabe.
Sehen wir uns eine Beispielabfrage an.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Zählen |
---|
28 |
Anmerkung
Bei KQL wird die Groß-/Kleinschreibung für alles beachtet – Tabellennamen, Tabellenspaltennamen, Operatoren, Funktionen usw.
Schlüsselwörter können als Bezeichner verwendet werden, indem sie in Klammern und Anführungszeichen gesetzt werden (['
und ']
oder ["
und "]
). Beispiel: ['where']
. Weitere Informationen finden Sie unter Benennungsregeln für Bezeichner
Diese Abfrage weist eine einzelne tabellarische Ausdrucksanweisung auf. Die Anweisung beginnt mit einem Verweis auf eine Tabelle namens StormEvents und enthält mehrere Operatoren, where
und count
, die jeweils durch eine Pfeife getrennt sind. Die Datenzeilen für die Quelltabelle werden nach dem Wert der Spalte StartTime gefiltert und dann nach dem Wert der Spalte Status gefiltert. In der letzten Zeile gibt die Abfrage eine Tabelle mit einer einzelnen Spalte und einer einzelnen Zeile zurück, die die Anzahl der verbleibenden Zeilen enthält.
Weitere Kusto-Abfragen finden Sie unter Lernprogramm: Schreiben von Kusto-Abfragen.
Verwaltungsbefehle
Im Gegensatz zu Kusto-Abfragen sind Verwaltungsbefehle Anforderungen an Kusto, Daten oder Metadaten zu verarbeiten oder zu ändern. Der folgende Verwaltungsbefehl erstellt beispielsweise eine neue Kusto-Tabelle mit zwei Spalten, Level
und Text
:
.create table Logs (Level:string, Text:string)
Verwaltungsbefehle verfügen über eine eigene Syntax, die nicht Teil der KQL-Syntax ist, obwohl die beiden Konzepte viele Konzepte aufweisen. Insbesondere werden Verwaltungsbefehle von Abfragen unterschieden, indem das erste Zeichen im Text des Befehls das Punktzeichen (.
) sein soll (das keine Abfrage starten kann).
Diese Unterscheidung verhindert viele Arten von Sicherheitsangriffen, einfach weil sie das Einbetten von Verwaltungsbefehlen in Abfragen verhindert.
Nicht alle Verwaltungsbefehle ändern Daten oder Metadaten. Die große Klasse von Befehlen, die mit .show
beginnen, werden zum Anzeigen von Metadaten oder Daten verwendet. Beispielsweise gibt der Befehl .show tables
eine Liste aller Tabellen in der aktuellen Datenbank zurück.
Weitere Informationen zu Verwaltungsbefehlen finden Sie Übersicht über Verwaltungsbefehle.
KQL in anderen Diensten
KQL wird von vielen anderen Microsoft-Diensten verwendet. Spezifische Informationen zur Verwendung von KQL in diesen Umgebungen finden Sie unter den folgenden Links:
- Protokollabfragen in Azure Monitor
- Grundlegendes zur Azure Resource Graph-Abfragesprache
- Proaktive Suche nach Bedrohungen mit erweiterter Suche in Microsoft Defender
- CMPivot-Abfragen