Aracılığıyla paylaş


Uç Nokta için Microsoft Defender API - Merhaba Dünya

Ş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

Basit bir PowerShell betiği kullanarak Uyarılar alma

Bu örnekten geçmek ne kadar sürer?

İki adımda yalnızca 5 dakika sürer:

  • Uygulama kaydı
  • Örnekleri kullanma: Yalnızca kısa bir PowerShell betiğinin kopyalanmasını/yapıştırılabilmesini gerektirir

Bağlanmak için izne ihtiyacım var mı?

Uygulama kayıt aşaması için Microsoft Entra kiracınızda Genel yönetici bir rolünüz olmalıdır.

1. Adım: Microsoft Entra ID'da uygulama İçerik Oluşturucu

  1. Genel yönetici kullanıcınızla Azure'da oturum açın.

  2. Microsoft Entra ID>Uygulama kayıtları>Yeni kayıt'a gidin.

    Microsoft Entra yönetim merkezi Yönet bölmesinin altındaki Uygulama kayıtları seçeneği

  3. Kayıt formunda, uygulamanız için bir ad seçin ve Kaydet'e tıklayın.

  4. Uygulamanızın Uç Nokta için Defender'a erişmesine ve 'Tüm uyarıları okuma' izni atamasına izin verin:

    • Uygulama sayfanızda API İzinleriKuruluşumun kullandığı>izin> API'leri >ekle'ye tıklayın WindowsDefenderATP türüne tıklayın ve WindowsDefenderATP'ye tıklayın.

      Not

      WindowsDefenderATP özgün listede görünmez. Görünmesini sağlamak için metin kutusuna adını yazmaya başlamanız gerekir.

      Microsoft Entra yönetim merkezi Yönet bölmesinin altındaki API izinleri seçeneği

    • Uygulama izinleri>Uyarısı.Okuma'yı seçin.Tümü>İzin ekle'ye tıklayın.

      API izinleri isteme sayfasındaki izin türü ve ayarlar bölmeleri

      Önemli

      İlgili izinleri seçmeniz gerekir. 'Tüm Uyarıları Oku' yalnızca bir örnektir!

      Örneğin:

  5. İzin ver'e tıklayın.

    Not

    her izin eklediğinizde, yeni iznin geçerli olması için Onay ver'e tıklamanız gerekir.

    Microsoft Entra yönetim merkezi izin izni ver seçeneği

  6. Uygulamaya gizli dizi ekleyin.

    Sertifikalar & gizli diziler'e tıklayın, gizli diziye açıklama ekleyin ve Ekle'ye tıklayın.

    Önemli

    Ekle'ye tıkladıktan sonra oluşturulan gizli dizi değerini kopyalayın. Gittikten sonra geri alamazsınız!

    Microsoft Entra yönetim merkezi Yönet bölmesindeki Sertifikalar & gizli dizileri menü öğesi

  7. Uygulama kimliğinizi ve kiracı kimliğinizi not edin.

    Uygulama sayfanızda Genel Bakış'a gidin ve aşağıdakileri kopyalayın:

    Microsoft Entra yönetim merkezi Genel Bakış menü öğesinin altındaki uygulama ayrıntıları bölmesi

Bitti! Bir uygulamayı başarıyla kaydettiniz!

2. Adım: Uygulamayı kullanarak bir belirteç alın ve API'ye erişmek için bu belirteci kullanın.

  • Aşağıdaki betiği PowerShell ISE'ye veya bir metin düzenleyicisine kopyalayın ve Get-Token.ps1olarak kaydedin.

  • Bu betiği çalıştırmak bir belirteç oluşturur ve Latest-token.txtadı altında çalışma klasörüne kaydeder.

    # That code gets the App Context Token and save it to a file named "Latest-token.txt" under the current directory
    # Paste below your Tenant ID, App ID and App Secret (App key).
    
    $tenantId = '' ### Paste your tenant ID here
    $appId = '' ### Paste your Application ID here
    $appSecret = '' ### Paste your Application secret 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
    $token = $authResponse.access_token
    Out-File -FilePath "./Latest-token.txt" -InputObject $token
    return $token
    
  • Sanity Denetimi:

    • Betiği çalıştırın.
    • Tarayıcınızda adresine gidin: https://jwt.ms/.
    • Belirteci kopyalayın (Latest-token.txt dosyasının içeriği).
    • Üstteki kutuya yapıştırın.
    • "Roller" bölümünü arayın. Alert.Read.All rolünü bulun.

    jwt.ms için Kod Çözme Belirteci bölmesi

Uyarıları alalım!

  • Aşağıdaki betik, API'ye erişmek için Get-Token.ps1 kullanır ve son 48 saatlik Uyarıları alır.

  • Bu betiği, Get-Token.ps1önceki betiği kaydettiğiniz klasöre kaydedin.

  • Betik, betiklerle aynı klasörde yer alan verileri içeren iki dosya (json ve csv) oluşturur.

    # Returns Alerts created in the past 48 hours.
    
    $token = ./Get-Token.ps1       #run the script Get-Token.ps1  - make sure you are running this script from the same folder of Get-Token.ps1
    
    # Get Alert from the last 48 hours. Make sure you have alerts in that time frame.
    $dateTime = (Get-Date).ToUniversalTime().AddHours(-48).ToString("o")
    
    # The URL contains the type of query and the time filter we create above
    # Read more about [other query options and filters](get-alerts.md).
    $url = "https://api.securitycenter.microsoft.com/api/alerts?`$filter=alertCreationTime ge $dateTime"
    
    # Set the WebRequest headers
    $headers = @{
        'Content-Type' = 'application/json'
        Accept = 'application/json'
        Authorization = "Bearer $token"
    }
    
    # Send the webrequest and get the results.
    $response = Invoke-WebRequest -Method Get -Uri $url -Headers $headers -ErrorAction Stop
    
    # Extract the alerts from the results.
    $alerts =  ($response | ConvertFrom-Json).value | ConvertTo-Json
    
    # Get string with the execution time. We concatenate that string to the output file to avoid overwrite the file
    $dateTimeForFileName = Get-Date -Format o | foreach {$_ -replace ":", "."}
    
    # Save the result as json and as csv
    $outputJsonPath = "./Latest Alerts $dateTimeForFileName.json"
    $outputCsvPath = "./Latest Alerts $dateTimeForFileName.csv"
    
    Out-File -FilePath $outputJsonPath -InputObject $alerts
    ($alerts | ConvertFrom-Json) | Export-CSV $outputCsvPath -NoTypeInformation
    

Hepsi bu kadar! Başarılı bir şekilde:

  • Oluşturulan ve kaydedilen ve uygulama
  • Bu uygulamaya uyarıları okuma izni verildi
  • API'yi bağlama
  • Son 48 saat içinde oluşturulan uyarıları döndürmek için PowerShell betiği kullanıldı

İ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.