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.
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 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.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ❌ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. 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 |
| Application | ThreatHunting.Read.All | Nicht verfügbar. |
HTTP-Anforderung
POST /security/runHuntingQuery
Anforderungsheader
| Name | Beschreibung |
|---|---|
| Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über 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 Kusto-Abfragesprache (KQL). Weitere Informationen finden Sie unter KQL-Kurzübersicht. | |
| Zeitspanne | 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
TimestampWert. - 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"
}
]
}