Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Zaawansowane możliwości wyszukiwania zagrożeń nie są uwzględniane w Microsoft Defender dla Firm.
Uwaga
Jeśli jesteś klientem rządowym USA, użyj identyfikatorów URI wymienionych w Ochrona punktu końcowego w usłudze Microsoft Defender dla klientów rządowych USA.
Porada
Aby uzyskać lepszą wydajność, zamiast korzystać z api.security.microsoft.com, użyj 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
- aea.api.security.microsoft.com
Pełny scenariusz z użyciem wielu interfejsów API z Ochrona punktu końcowego w usłudze Microsoft Defender.
W tej sekcji udostępnimy przykłady programu PowerShell:
- Pobieranie tokenu.
- Użyj tokenu, aby pobrać najnowsze alerty w Ochrona punktu końcowego w usłudze Microsoft Defender.
- W przypadku każdego alertu, jeśli alert ma średni lub wysoki priorytet i jest nadal w toku, sprawdź, ile razy urządzenie połączyło się z podejrzanym adresem URL.
Wymagania wstępne: 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, używając swoich informacji w następujący sposób:
-
$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. -
$suspiciousUrl: adres URL.
Porada
Niektóre interfejsy API Ochrona punktu końcowego w usłudze Microsoft Defender nadal wymagają tokenów dostępu wystawionych dla starszego zasobuhttps://api.securitycenter.microsoft.com. Jeśli odbiorcy tokenów nie są zgodni z zasobem oczekiwanym przez interfejs API, żądania kończą się niepowodzeniem z programem 403 Forbidden, nawet jeśli punkt końcowy interfejsu API używa polecenia https://api.security.microsoft.com. Użyj https://api.securitycenter.microsoft.com jako zasobu lub zakresu podczas uzyskiwania tokenów.
$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
$suspiciousUrl = 'www.suspiciousUrl.com' # Paste your own URL here
$resourceAppIdUri = 'https://api.securitycenter.microsoft.com'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/token"
$authBody = [Ordered] @{
resource = "$resourceAppIdUri"
client_id = "$appId"
client_secret = "$appSecret"
grant_type = 'client_credentials'
}
$authResponse = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $authBody -ErrorAction Stop
$aadToken = $authResponse.access_token
#Get latest alert
$alertUrl = "https://api.security.microsoft.com/api/alerts?`$top=10"
$headers = @{
'Content-Type' = 'application/json'
Accept = 'application/json'
Authorization = "Bearer $aadToken"
}
$alertResponse = Invoke-WebRequest -Method Get -Uri $alertUrl -Headers $headers -ErrorAction Stop
$alerts = ($alertResponse | ConvertFrom-Json).value
$machinesToInvestigate = New-Object System.Collections.ArrayList
Foreach($alert in $alerts)
{
#echo $alert.id $alert.machineId $alert.severity $alert.status
$isSevereAlert = $alert.severity -in 'Medium', 'High'
$isOpenAlert = $alert.status -in 'InProgress', 'New'
if($isOpenAlert -and $isSevereAlert)
{
if (-not $machinesToInvestigate.Contains($alert.machineId))
{
$machinesToInvestigate.Add($alert.machineId) > $null
}
}
}
$commaSeparatedMachines = '"{0}"' -f ($machinesToInvestigate -join '","')
$query = "NetworkCommunicationEvents
| where MachineId in ($commaSeparatedMachines)
| where RemoteUrl == `"$suspiciousUrl`"
| summarize ConnectionsCount = count() by MachineId"
$queryUrl = "https://api.security.microsoft.com/api/advancedqueries/run"
$queryBody = ConvertTo-Json -InputObject @{ 'Query' = $query }
$queryResponse = Invoke-WebRequest -Method Post -Uri $queryUrl -Headers $headers -Body $queryBody -ErrorAction Stop
$response = ($queryResponse | ConvertFrom-Json).Results
$response
Zobacz też
- interfejsy API Ochrona punktu końcowego w usłudze Microsoft Defender
- Zaawansowany interfejs API wyszukiwania zagrożeń
- Zaawansowane wyszukiwanie zagrożeń przy użyciu języka Python
Porada
Chcesz dowiedzieć się więcej? Zaangażuj się w społeczność rozwiązań zabezpieczających firmy Microsoft w naszej społeczności technicznej Społeczność techniczna usługi Ochrona punktu końcowego w usłudze Microsoft Defender.