Aracılığıyla paylaş


PowerShell ile Gelişmiş Av

Şunlar için geçerlidir:

Uç Nokta için Microsoft Defender'ı deneyimlemek ister misiniz? Ücretsiz deneme için kaydolun.

Not

ABD Kamu müşterisiyseniz lütfen US Government müşterileri için Uç Nokta için Microsoft Defender'de listelenen URI'leri kullanın.

İpucu

Daha iyi performans için coğrafi konumunuza daha yakın olan sunucuyu kullanabilirsiniz:

  • 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

PowerShell kullanarak gelişmiş sorgular çalıştırın. Daha fazla bilgi için bkz . Gelişmiş Tehdit Avcılığı API'si.

Bu bölümde, bir belirteci almak için PowerShell örneklerini paylaşacağız ve bunu kullanarak sorgu çalıştıracağız.

Başlamadan önce

Önce bir uygulama oluşturmanız gerekir.

Hazırlık yönergeleri

  • Bir PowerShell penceresi açın.

  • İlkeniz PowerShell komutlarını çalıştırmanıza izin vermiyorsa aşağıdaki komutu çalıştırabilirsiniz:

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    

Daha fazla bilgi için bkz. PowerShell belgeleri.

Belirteci alma

  • Aşağıdakileri çalıştırın:
$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

Nerede

  • $tenantId: Sorguyu çalıştırmak istediğiniz kiracının kimliği (yani, sorgu bu kiracının verilerinde çalıştırılır)
  • $appId: Microsoft Entra uygulamanızın kimliği (uygulamanın Uç Nokta için Defender'da 'Gelişmiş sorgu çalıştırma' izni olmalıdır)
  • $appSecret: Microsoft Entra uygulamanızın gizli dizisi

Sorguyu çalıştırma

Aşağıdaki sorguyu çalıştırın:

$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 sorgunuzun sonuçlarını içerir
  • $schema sorgunuzun sonuçlarının şemasını içerir

Karmaşık sorgular

Karmaşık sorgular (veya çok satırlı sorgular) çalıştırmak istiyorsanız, sorgunuzu bir dosyaya kaydedin ve yukarıdaki örnekteki ilk satır yerine aşağıdaki komutu çalıştırın:

$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file

Sorgu sonuçlarıyla çalışın

Artık sorgu sonuçlarını kullanabilirsiniz.

Sorgunun sonuçlarını dosya file1.csv CSV biçiminde çıkarmak için aşağıdaki komutu çalıştırın:

$results | ConvertTo-Csv -NoTypeInformation | Set-Content C:\file1.csv

Sorgunun sonuçlarını dosya file1.json JSON biçiminde çıkarmak için aşağıdaki komutu çalıştırın:

$results | ConvertTo-Json | Set-Content file1.json

İlgili makale

İpucu

Daha fazla bilgi edinmek mi istiyorsunuz? Teknoloji Topluluğumuzdaki Microsoft Güvenlik topluluğuyla Engage: Uç Nokta için Microsoft Defender Teknoloji Topluluğu.