Sicherheit: runHuntingQuery
Namespace: microsoft.graph.security
Wichtig
Die APIs unter der /beta
Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Fragen Sie einen angegebenen Satz von Ereignis-, Aktivitäts- oder Entitätsdaten ab, die von Microsoft 365 Defender unterstützt werden, um proaktiv nach bestimmten Bedrohungen in Ihrer Umgebung zu suchen.
Diese Methode ist für die erweiterte Suche in Microsoft 365 Defender vorgesehen. Diese Methode enthält eine Abfrage in der Kusto-Abfragesprache (KQL). Sie gibt eine Datentabelle im schema der erweiterten Suche und eine Sequenz von Operatoren mit Pipelines an, um diese Daten zu filtern oder zu durchsuchen und die Abfrageausgabe auf bestimmte Weise zu formatieren.
Erfahren Sie mehr über die Suche nach Bedrohungen auf Geräten, E-Mails, Apps und Identitäten. Erfahren Sie mehr über KQL.
Informationen zur Verwendung der erweiterten Suche im Microsoft 365 Defender-Portal finden Sie unter Proaktives Suchen nach Bedrohungen mit erweiterter Suche in Microsoft 365 Defender.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
Globaler Dienst | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ❌ |
Berechtigungen
Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
Berechtigungstyp | Berechtigungen mit den geringsten Berechtigungen | Berechtigungen mit höheren Berechtigungen |
---|---|---|
Delegiert (Geschäfts-, Schul- oder Unikonto) | ThreatHunting.Read.All | Nicht verfügbar. |
Delegiert (persönliches Microsoft-Konto) | Nicht unterstützt | Nicht unterstützt |
Anwendung | ThreatHunting.Read.All | Nicht verfügbar. |
HTTP-Anforderung
POST /security/runHuntingQuery
Anforderungsheader
Name | Beschreibung |
---|---|
Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Content-Type | application/json. Erforderlich. |
Hinweis
Wenn Sie in Ihrer Abfrage Nicht-ANSI-Zeichen verwenden, z. B. zum Abfragen von E-Mail-Betreffs mit falsch formatierten oder aussehenden Zeichen, verwenden Sie application/json; charset=utf-8
für den Content-Type-Header.
Anforderungstext
Geben Sie im Anforderungstext ein JSON-Objekt für den Query
Parameter an, und schließen Sie optional einen Parameter ein Timespan
.
Parameter | Typ | Beschreibung | Beispiel |
---|---|---|---|
Abfrage | Zeichenfolge | Erforderlich. Die Huntingabfrage in der Kusto-Abfragesprache (KQL). Weitere Informationen finden Sie unter KQL-Kurzübersicht. | |
Timespan | Zeichenfolge | Optional. Das Zeitintervall zum Abfragen von Daten im ISO 8601-Format. Der Standardwert ist 30 Tage, d. h., wenn kein startTime-Wert angegeben ist, wird die Abfrage in 30 Tagen zurückschauen. Wenn sowohl in der Abfrage als auch im startTime-Parameter ein Zeitfilter angegeben ist, wird die kürzere Zeitspanne angewendet. Wenn die Abfrage beispielsweise über einen Filter für die letzten 7 Tage verfügt und die startTime 10 Tage zurückliegt, sieht die Abfrage nur sieben Tage zurück. |
Die folgenden Beispiele zeigen die möglichen Formate für den Timepsan
Parameter:
- Datum/Datum: "2024-02-01T08:00:00Z/2024-02-15T08:00:00Z" - Start- und Enddatum.
- Duration/endDate: "P30D/2024-02-15T08:00:00Z" – Ein Zeitraum vor dem Enddatum.
- Start/Dauer: "2024-02-01T08:00:00Z/P30D" - Startdatum und Dauer.
- ISO8601 Dauer: "P30D" – Dauer ab jetzt rückwärts.
- Einzelnes Datum/Uhrzeit: "2024-02-01T08:00:00Z" – Startzeit, wobei die Endzeit standardmäßig auf die aktuelle Uhrzeit festgelegt ist.
Antwort
Wenn die Aktion erfolgreich verläuft, werden der 200 OK
Antwortcode und huntingQueryResults im Antworttext zurückgegeben.
Beispiele
Beispiel 1: Abfrage mit Standardzeitbereich
Anforderung
Im folgenden Beispiel wird eine KQL-Abfrage und folgendes angegeben:
- Untersucht die Tabelle DeviceProcessEvents im schema der erweiterten Suche.
- Filtert nach der Bedingung, dass der powershell.exe Prozess das Ereignis initiiert.
- Gibt die Ausgabe von drei Spalten aus derselben Tabelle für jede Zeile an:
Timestamp
,FileName
,InitiatingProcessFileName
. - Sortiert die Ausgabe nach dem
Timestamp
Wert. - Beschränkt die Ausgabe auf zwei Datensätze (zwei Zeilen).
POST https://graph.microsoft.com/beta/security/runHuntingQuery
{
"Query": "DeviceProcessEvents | where InitiatingProcessFileName =~ \"powershell.exe\" | project Timestamp, FileName, InitiatingProcessFileName | order by Timestamp desc | limit 2"
}
Antwort
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.security.huntingQueryResults",
"schema": [
{
"name": "Timestamp",
"type": "DateTime"
},
{
"name": "FileName",
"type": "String"
},
{
"name": "InitiatingProcessFileName",
"type": "String"
}
],
"results": [
{
"Timestamp": "2024-03-26T09:39:50.7688641Z",
"FileName": "cmd.exe",
"InitiatingProcessFileName": "powershell.exe"
},
{
"Timestamp": "2024-03-26T09:39:49.4353788Z",
"FileName": "cmd.exe",
"InitiatingProcessFileName": "powershell.exe"
}
]
}
Beispiel 2: Abfrage mit optionalem angegebenen timespan-Parameter
Anforderung
In diesem Beispiel wird eine KQL-Abfrage angegeben und die Tabelle deviceProcessEvents im erweiterten Huntingschema vor 60 Tagen untersucht.
POST https://graph.microsoft.com/beta/security/runHuntingQuery
{
"Query": "DeviceProcessEvents",
"Timespan": "P90D"
}
Antwort
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 200 OK
Content-type: application/json
{
"schema": [
{
"Name": "Timestamp",
"Type": "DateTime"
},
{
"Name": "FileName",
"Type": "String"
},
{
"Name": "InitiatingProcessFileName",
"Type": "String"
}
],
"results": [
{
"Timestamp": "2020-08-30T06:38:35.7664356Z",
"FileName": "conhost.exe",
"InitiatingProcessFileName": "powershell.exe"
},
{
"Timestamp": "2020-08-30T06:38:30.5163363Z",
"FileName": "conhost.exe",
"InitiatingProcessFileName": "powershell.exe"
}
]
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für