Erweiterte Bedrohungssuche mit PowerShell
Gilt für:
Möchten Sie Microsoft Defender für Endpunkt ausprobieren? Registrieren Sie sich für eine kostenlose Testversion.
Hinweis
Wenn Sie ein US Government-Kunde sind, verwenden Sie die URIs, die unter Microsoft Defender für Endpunkt für US Government-Kunden aufgeführt sind.
Tipp
Um die Leistung zu verbessern, können Sie den Server näher an Ihrem geografischen Standort verwenden:
- us.api.security.microsoft.com
- eu.api.security.microsoft.com
- uk.api.security.microsoft.com
- au.api.security.microsoft.com
- swa.api.security.microsoft.com
- ina.api.security.microsoft.com
Führen Sie erweiterte Abfragen mithilfe von PowerShell aus. Weitere Informationen finden Sie unter Erweiterte Hunting-API.
In diesem Abschnitt werden PowerShell-Beispiele zum Abrufen eines Tokens und zum Ausführen einer Abfrage freigegeben.
Bevor Sie beginnen
Sie müssen zunächst eine App erstellen.
Vorbereitungsanweisungen
Öffnen Sie ein PowerShell-Fenster.
Wenn Ihre Richtlinie das Ausführen der PowerShell-Befehle nicht zulässt, können Sie den folgenden Befehl ausführen:
Set-ExecutionPolicy -ExecutionPolicy Bypass
Weitere Informationen finden Sie in der PowerShell-Dokumentation.
Token abrufen
- Führen Sie den folgenden Befehl aus:
$tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here
$appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here
$appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here
$resourceAppIdUri = 'https://api.securitycenter.microsoft.com'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/token"
$body = [Ordered] @{
resource = "$resourceAppIdUri"
client_id = "$appId"
client_secret = "$appSecret"
grant_type = 'client_credentials'
}
$response = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $body -ErrorAction Stop
$aadToken = $response.access_token
Dabei gilt:
- $tenantId: ID des Mandanten, in dessen Namen Sie die Abfrage ausführen möchten (d. a. die Abfrage wird für die Daten dieses Mandanten ausgeführt).
- $appId: ID Ihrer Microsoft Entra-App (die App muss über die Berechtigung "Erweiterte Abfragen ausführen" für Defender für Endpunkt verfügen)
- $appSecret: Geheimnis Ihrer Microsoft Entra-App
Abfrage ausführen
Führen Sie die folgende Abfrage aus:
$token = $aadToken
$query = 'DeviceRegistryEvents | limit 10' # Paste your own query here
$url = "https://api.securitycenter.microsoft.com/api/advancedqueries/run"
$headers = @{
'Content-Type' = 'application/json'
Accept = 'application/json'
Authorization = "Bearer $aadToken"
}
$body = ConvertTo-Json -InputObject @{ 'Query' = $query }
$webResponse = Invoke-WebRequest -Method Post -Uri $url -Headers $headers -Body $body -ErrorAction Stop
$response = $webResponse | ConvertFrom-Json
$results = $response.Results
$schema = $response.Schema
- $results die Ergebnisse Ihrer Abfrage enthalten
- $schema enthält das Schema der Ergebnisse Ihrer Abfrage.
Komplexe Abfragen
Wenn Sie komplexe Abfragen (oder mehrzeilige Abfragen) ausführen möchten, speichern Sie die Abfrage in einer Datei, und führen Sie anstelle der ersten Zeile im obigen Beispiel den folgenden Befehl aus:
$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file
Arbeiten mit Abfrageergebnissen
Sie können jetzt die Abfrageergebnisse verwenden.
Führen Sie den folgenden Befehl aus, um die Ergebnisse der Abfrage im CSV-Format in datei file1.csv auszugeben:
$results | ConvertTo-Csv -NoTypeInformation | Set-Content C:\file1.csv
Führen Sie den folgenden Befehl aus, um die Ergebnisse der Abfrage im JSON-Format in datei file1.json auszugeben:
$results | ConvertTo-Json | Set-Content file1.json
Verwandter Artikel
- Microsoft Defender für Endpunkt-APIs
- Api für die erweiterte Suche
- Erweiterte Bedrohungssuche mit Python
Tipp
Möchten Sie mehr erfahren? Wenden Sie sich an die Microsoft-Sicherheitscommunity in unserer Tech Community: Microsoft Defender for Endpoint Tech Community.