Zaawansowane wyszukiwanie zagrożeń przy użyciu programu PowerShell
Dotyczy:
Chcesz poznać usługę ochrony punktu końcowego w usłudze Microsoft Defender? Utwórz konto, aby skorzystać z bezpłatnej wersji próbnej.
Uwaga
Jeśli jesteś klientem rządowym USA, użyj identyfikatorów URI wymienionych w usłudze Microsoft Defender for Endpoint dla klientów rządowych USA.
Porada
Aby uzyskać lepszą wydajność, możesz użyć serwera bliżej lokalizacji geograficznej:
- 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
Uruchamianie zaawansowanych zapytań przy użyciu programu PowerShell. Aby uzyskać więcej informacji, zobacz Advanced Hunting API (Zaawansowany interfejs API wyszukiwania zagrożeń).
W tej sekcji udostępniamy przykłady programu PowerShell w celu pobrania tokenu i użycia go do uruchomienia zapytania.
Przed rozpoczęciem
Najpierw musisz utworzyć aplikację.
Instrukcje przygotowywania
Otwórz okno programu PowerShell.
Jeśli zasady nie zezwalają na uruchamianie poleceń programu PowerShell, możesz uruchomić następujące polecenie:
Set-ExecutionPolicy -ExecutionPolicy Bypass
Aby uzyskać więcej informacji, zobacz dokumentację programu PowerShell.
Uzyskiwanie tokenu
- Uruchom następujące polecenie:
$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
Gdzie
- $tenantId: identyfikator dzierżawy, w imieniu której chcesz uruchomić zapytanie (tj. zapytanie jest uruchamiane na danych tej dzierżawy)
- $appId: identyfikator aplikacji Microsoft Entra (aplikacja musi mieć uprawnienie "Uruchom zaawansowane zapytania" do usługi Defender for Endpoint)
- $appSecret: wpis tajny aplikacji Microsoft Entra
Uruchamianie zapytania
Uruchom następujące zapytanie:
$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 zawierać wyniki zapytania
- $schema zawiera schemat wyników zapytania
Złożone zapytania
Jeśli chcesz uruchamiać złożone zapytania (lub zapytania wielowierszowe), zapisz zapytanie w pliku i zamiast pierwszego wiersza w powyższym przykładzie uruchom następujące polecenie:
$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file
Praca z wynikami zapytań
Teraz możesz użyć wyników zapytania.
Aby wyświetlić wyniki zapytania w formacie CSV w pliku file1.csv, uruchom następujące polecenie:
$results | ConvertTo-Csv -NoTypeInformation | Set-Content C:\file1.csv
Aby wyświetlić wyniki zapytania w formacie JSON w pliku file1.json, uruchom następujące polecenie:
$results | ConvertTo-Json | Set-Content file1.json
Powiązany artykuł
- Interfejsy API usługi Microsoft Defender dla punktów końcowych
- Zaawansowany interfejs API wyszukiwania zagrożeń
- Zaawansowane wyszukiwanie zagrożeń przy użyciu języka Python
Porada
Chcesz dowiedzieć się więcej? Skontaktuj się ze społecznością zabezpieczeń firmy Microsoft w naszej społeczności technicznej: Microsoft Defender for Endpoint Tech Community.