Erlernen der Abfragesprache für die erweiterte Suche
Die erweiterte Suche basiert auf der Kusto-Abfragesprache. Sie können Kusto-Operatoren und -Anweisungen verwenden, um Abfragen zu erstellen, die Informationen in einem spezialisierten Schema suchen.
Sehen Sie sich dieses kurze Video an, um einige praktische Grundlagen der Kusto-Abfragesprache zu erlernen.
Wenn Sie diese Konzepte besser verstehen möchten, führen Sie Ihre erste Abfrage aus.
Testen Ihrer ersten Abfrage
Wechseln Sie im Microsoft Defender-Portal zu Hunting, um Ihre erste Abfrage auszuführen. Verwenden Sie das folgende Beispiel:
// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Ausführen dieser Abfrage in der erweiterten Suche
Beschreiben der Abfrage und Angeben der zu durchsuchenden Tabellen
Am Anfang der Abfrage wurde ein kurzer Kommentar hinzugefügt, um zu beschreiben, wofür sie dient. Dieser Kommentar ist hilfreich, wenn Sie sich später entscheiden, Ihre Abfrage zu speichern und sie für andere in Ihrer Organisation freizugeben.
// Finds PowerShell execution events that could involve a download
Die Abfrage selbst beginnt in der Regel mit einem Tabellennamen, gefolgt von mehreren Elementen, die mit einer Pipe (|
) beginnen. In diesem Beispiel erstellen wir zunächst eine Vereinigung aus zwei Tabellen DeviceProcessEvents
und DeviceNetworkEvents
und fügen nach Bedarf pipedierte Elemente hinzu.
union DeviceProcessEvents, DeviceNetworkEvents
Festlegen des Zeitbereichs
Das erste weitergeleitete Element ist ein Zeitfilter, der auf die vorherigen sieben Tage festgelegt ist. Wenn Sie den Zeitabschnitt so eng wie möglich lassen, wird sichergestellt, dass Abfragen gut ausgeführt werden, überschaubare Ergebnisse zurückgeben werden und keine Zeitüberschreitungen auftreten.
| where Timestamp > ago(7d)
Hinweis
Kusto-Zeitfilter gelten unabhängig von der Zeitzone, die Sie in Ihren Einstellungen angegeben haben, in UTC.
Überprüfen bestimmter Prozesse
Auf den Zeitbereich folgt unmittelbar eine Suche nach Prozessdateinamen, die die PowerShell-Anwendung darstellen.
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Suchen nach bestimmten Befehlszeichenfolgen
Anschließend sucht die Abfrage nach Zeichenfolgen in Befehlszeilen, die normalerweise zum Herunterladen von Dateien mithilfe von PowerShell verwendet werden.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
Anpassen von Ergebnisspalten und -länge
Da die Abfrage nun die zu suchenden Daten eindeutig identifiziert, können Sie definieren, wie die Ergebnisse aussehen.
project
gibt bestimmte Spalten zurück und top
begrenzt die Anzahl der Ergebnisse. Diese Operatoren tragen dazu bei, dass die Ergebnisse gut formatiert und angemessen groß und einfach zu verarbeiten sind.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Wählen Sie Abfrage ausführen aus, um die Ergebnisse anzuzeigen.
Tipp
Sie können Abfrageergebnisse als Diagramme anzeigen und Filter schnell anpassen. Anleitungen finden Sie unter Arbeiten mit Abfrageergebnissen.
Informationen zu gängigen Abfrageoperatoren
Sie haben gerade Ihre erste Abfrage ausgeführt und haben eine allgemeine Vorstellung von deren Komponenten. Es ist an der Zeit, ein wenig nachzuverfolgen und einige Grundlagen zu erlernen. Die von der erweiterten Suche verwendete Kusto-Abfragesprache unterstützt eine Reihe von Operatoren, darunter die folgenden allgemeinen Operatoren.
Operator | Beschreibung und Verwendung |
---|---|
where |
Filtern einer Tabelle auf die Teilmenge von Zeilen, die einem Prädikat entsprechen. |
summarize |
Erstellen einer Tabelle, in der die Inhalte der Eingabetabelle gesammelt werden. |
join |
Zusammenführen der Zeilen von zwei Tabellen, um eine neue Tabelle zu erstellen, indem Werte der angegebenen Spalten aus jeder Tabelle zugeordnet werden. Weitere Informationen finden Sie unter Verknüpfen von Tabellen in KQL . |
count |
Zurückgeben der Anzahl von Datensätzen im Eingabedatensatz. |
top |
Zurückgeben der ersten n Einträge, sortiert anhand der angegebenen Spalten. |
limit |
Zurückkehren nach oben zur angegebenen Zeilenanzahl. |
project |
Auswählen der Spalten, um neue berechnete Spalten aufzunehmen, umzubenennen, zu löschen oder einzufügen. |
extend |
Erstellen von berechneten Spalten und Anfügen an das Resultset. |
makeset |
Zurückgeben eines dynamischen (JSON)-Arrays der Gruppe eindeutiger Werte, die der Ausdruck in der Gruppe verwendet. |
find |
Suchen von Zeilen, die mit einem Prädikat über eine Reihe von Tabellen hinweg übereinstimmen. |
Wenn Sie ein Beispiel für diese Operatoren sehen möchten, führen Sie diese im Abschnitt Erste Schritte in der erweiterten Suche aus.
Grundlegendes zu Datentypen
Die erweiterte Suche unterstützt Kusto-Datentypen, einschließlich der folgenden gängigen Typen:
Datentyp | Beschreibung und Auswirkungen der Abfrage |
---|---|
datetime |
Daten- und Zeitinformationen, die in der Regel Ereigniszeitstempel darstellen. Unterstützte datetime-Formate anzeigen |
string |
Zeichenfolge in UTF-8 in einfache Anführungszeichen (' ) oder doppelte Anführungszeichen (" ) eingeschlossen.
Weitere Informationen zu Zeichenfolgen |
bool |
Dieser Datentyp unterstützt die Zustände true oder false .
Unterstützte Literale und Operatoren anzeigen |
int |
32-Bit-Ganzzahl |
long |
64-Bit-Ganzzahl |
Weitere Informationen zu diesen Datentypen finden Sie unter Kusto-Skalardatentypen.
Hilfe beim Schreiben von Abfragen
Nutzen Sie die folgenden Funktionen, um Abfragen schneller zu schreiben:
- Vorschlagssuche : Beim Schreiben von Abfragen bietet die erweiterte Suche Vorschläge von IntelliSense.
- Schemastruktur : Eine Schemadarstellung, die die Liste der Tabellen und deren Spalten enthält, wird neben Ihrem Arbeitsbereich bereitgestellt. Wenn Sie weitere Informationen erhalten möchten, zeigen Sie mit dem Mauszeiger auf ein Element. Doppelklicken Sie auf ein Element, um es im Abfrage-Editor einzufügen.
-
Schemaverweis : Portalreferenz mit Tabellen- und Spaltenbeschreibungen sowie unterstützten Ereignistypen (
ActionType
Werten) und Beispielabfragen
Arbeiten mit mehreren Abfragen im Editor
Sie können den Abfrage-Editor verwenden, um mit mehreren Abfragen zu experimentieren. So verwenden Sie mehrere Abfragen:
Trennen Sie jede Abfrage durch eine leere Zeile.
Platzieren Sie den Cursor auf einem beliebigen Teil einer Abfrage, um diese Abfrage auszuwählen, bevor Sie sie ausführen. Dadurch wird nur die ausgewählte Abfrage ausgeführt. Um eine andere Abfrage auszuführen, bewegen Sie den Cursor entsprechend, und wählen Sie Abfrage ausführen aus.
Für einen effizienteren Arbeitsbereich können Sie auch mehrere Registerkarten auf derselben Hunting-Seite verwenden. Wählen Sie Neue Abfrage aus, um eine Registerkarte für Ihre neue Abfrage zu öffnen.
Sie können dann verschiedene Abfragen ausführen, ohne jemals eine neue Browserregisterkarte zu öffnen.
Hinweis
Die Verwendung mehrerer Browserregisterkarten mit erweiterter Suche kann dazu führen, dass Sie Ihre nicht gespeicherten Abfragen verlieren. Um dies zu verhindern, verwenden Sie das Registerkartenfeature in der erweiterten Suche anstelle separater Browserregisterkarten.
Verwenden von Beispielabfragen
Der Abschnitt Erste Schritte bietet einige einfache Abfragen mit häufig verwendeten Operatoren. Versuchen Sie, diese Abfragen auszuführen und kleine Änderungen daran vorzunehmen.
Hinweis
Abgesehen von den einfachen Abfragebeispielen können Sie auch auf freigegebene Abfragen für bestimmte Szenarien zur Bedrohungssuche zugreifen. Erkunden Sie die freigegebenen Abfragen auf der linken Seite oder im GitHub-Abfragerepository.
Zugreifen auf die Dokumentation zur Abfragesprache
Weitere Informationen zur Kusto-Abfragesprache und zu unterstützten Operatoren finden Sie unter Dokumentation zur Kusto-Abfragesprache.
Hinweis
Einige Tabellen in diesem Artikel sind in Microsoft Defender for Endpoint möglicherweise nicht verfügbar. Aktivieren Sie Microsoft Defender XDR, um mithilfe weiterer Datenquellen nach Bedrohungen zu suchen. Sie können Ihre Workflows für die erweiterte Suche von Microsoft Defender for Endpoint auf Microsoft Defender XDR verschieben, indem Sie die Schritte unter Migrieren von Abfragen für erweiterte Suche von Microsoft Defender for Endpoint ausführen.
Verwandte Themen
- Übersicht über die erweiterte Suche
- Arbeiten mit Abfrageergebnissen
- Verwenden freigegebener Abfragen
- Suche über Geräte, E-Mails, Apps und Identitäten hinweg
- Grundlegendes zum Schema
- Anwenden bewährter Methoden für Abfragen
Tipp
Möchten Sie mehr erfahren? Wenden Sie sich an die Microsoft Security-Community in unserer Tech Community: Microsoft Defender XDR Tech Community.