Abfragen von Daten mithilfe der Kusto-Abfragesprache
Sie können in Microsoft Sentinel mit der Kusto-Abfragesprache (KQL) die gesammelten Daten durchsuchen und filtern.
Kusto-Abfragesprache
KQL ermöglicht Ihnen das Erstellen, Speichern und Ausführen interaktiver Analysen gesammelter Daten. In Microsoft Sentinel wird zum Visualisieren und Analysieren der wichtigen Daten KQL verwendet. Sie können mit KQL komplexe analytische Abfragen erstellen, die einige der folgenden Operatoren beinhalten:
- Berechnete Spalten
- Joinfunktionen
- Gruppieren nach Aggregaten
Schreiben und Ausführen einfacher Abfragen
Eine Abfrage ist eine schreibgeschützte Anforderung, die Daten verarbeitet und die Ergebnisse dieser Verarbeitung zurückgibt, ohne die Daten oder Metadaten zu ändern. KQL-Abfragen verwenden wie SQL-Abfragen Schemaentitäten, die in hierarchisch organisiert sind, z. B. Datenbanken, Tabellen und Spalten. Das Schema ist eine Sammlung von Tabellen, die unter einer logischen Kategorie gruppiert sind. Die Abfragen bestehen aus Sequenzen von Abfrageanweisungen, die durch ein Semikolon (;) getrennt sind.
Wenn Sie eine Abfrage erstellen, beginnen Sie entweder mit einem Tabellennamen oder einem Suchbefehl. Beispielsweise ruft die folgende Abfrage alle Datensätze aus der Tabelle Event
ab:
Event
Sie können zum Trennen von Befehlen einen senkrechten Strich (|) verwenden. Die Ausgabe des ersten Befehls ist die Eingabe des nächsten Befehls. Sie können eine beliebige Anzahl von Befehlen zu einer einzelnen Abfrage hinzufügen. Die folgende Abfrage ruft die Datensätze aus der Tabelle Event
ab und sucht dann nach Datensätzen, die den Begriff error
in einer Eigenschaft enthalten:
Event
| search error
Sie können die Abfrage mit tabellarischen und skalaren Operatoren erstellen, aus denen von KQL mehrere tabellarische Ausdrucksanweisungen generiert werden, die die Ergebnisse der Abfrage erzeugen.
source1 | operator1 | operator2
Im folgenden Beispiel lautet die Quelle AzureActivity
. Der erste Operator ist where
, der Datensätze basierend auf dem logischen Ausdruck herausfiltert. Der zweite Operator ist erneut where
:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
Standardmäßig beschränkt Log Analytics Abfragen auf die letzten 24 Stunden. Wenn Sie einen anderen Zeitbereich festlegen möchten, können Sie der Abfrage den expliziten Filter TimeGenerated
hinzufügen oder das Steuerelement Time range
verwenden. Beispielsweise gibt die folgende Abfrage Daten aus der vorherigen Stunde zurück:
AzureActivity
| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)
Sie können Ihre Abfragen mit einigen der am häufigsten verwendeten Operatoren kombinieren:
count
. Gibt die Anzahl von Zeilen in der Tabelle zurück.take
. Gibt maximal die angegebene Anzahl von Zeilen zurück.project
. Wählt eine Teilmenge von Spalten aus.sort
. Sortiert die Zeilen der Eingabetabelle nach einer oder mehreren Spalten.top
. Gibt die ersten N Datensätze zurück, die nach den angegebenen Spalten sortiert sind.extend
. Berechnet abgeleitete Spalten.summarize
. Aggregiert Gruppen von Zeilen.render
. Gibt Ergebnisse als grafische Ausgabe wieder.
Um die Datensätze aus zwei Quellen (Tabellen) zu kombinieren, können Sie den join
-Operator verwenden. Der union
-Operator vereinigt zwei oder mehr Tabellen zu einer Tabelle.
Weitere Informationen finden Sie im Log Analytics-Tutorial von Microsoft, in dem Features von Log Analytics zum Erstellen und Ausführen einer Abfrage verwendet werden, anstatt mit der Abfrage selbst zu arbeiten.
Sie können sich auch im Azure Data Explorer-Tutorial mit KQL vertraut machen.
Hinweis
Microsoft Sentinel Log Analytics unterstützt nicht die gesamte KQL-Syntax, die in Azure Data Explorer verwendet wird.
Microsoft Sentinel-Repository auf GitHub
Sie können auch im Microsoft Sentinel-Repository auf GitHub nach speziellen Abfragen und Arbeitsmappen suchen, um Ihre Umgebung zu schützen und Bedrohungen zu ermitteln. Beispielsweise zeigt die folgende Abfrage aus dem Microsoft Sentinel-Repository auf GitHub die verdächtige Delegierung von Berechtigungen für Benutzerkonten an.
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
Die Abfrage analysiert die IP-Adresse, von der aus der Administrator anderen Benutzern Zugriff auf Azure-Ressourcen gewährt. Wenn ein Vorgang nicht von einer gültigen IP-Adresse aus erfolgt, wird durch die Abfrage auf verdächtige Aktivitäten hingewiesen, die Sie weiter untersuchen können.
Wenn Sie einige Beispiele ausprobieren möchten, verwenden Sie die Demonstrationsumgebung im Azure-Portal.