Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
ABD Kamu müşterisiyseniz US Government müşterileri için Uç Nokta için Microsoft Defender'da listelenen URI'leri kullanın.
İpucu
Daha iyi performans için api.security.microsoft.com kullanmak yerine coğrafi konumunuza daha yakın bir sunucu kullanın:
- 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
Python kullanarak gelişmiş sorgular çalıştırma, bkz. Gelişmiş Tehdit Avcılığı API'si.
Bu bölümde python örneklerini paylaşarak bir belirteci alıp sorgu çalıştırmak için kullanacağız.
Önkoşul: Önce bir uygulama oluşturmanız gerekir.
Belirteci alma
- Aşağıdaki komutları çalıştırın:
İpucu
Bazı Uç Nokta için Microsoft Defender API'ler, eski kaynak https://api.securitycenter.microsoft.comiçin erişim belirteçleri verilmesini gerektirmeye devam eder. Belirteç hedef kitlesi API tarafından beklenen kaynakla eşleşmiyorsa, API uç noktası kullansa https://api.security.microsoft.combile istekler ile 403 Forbiddenbaşarısız olur.
import json
import urllib.request
import urllib.parse
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
url = "https://login.microsoftonline.com/%s/oauth2/token" % (tenantId)
resourceAppIdUri = 'https://api.securitycenter.microsoft.com'
body = {
'resource' : resourceAppIdUri,
'client_id' : appId,
'client_secret' : appSecret,
'grant_type' : 'client_credentials'
}
data = urllib.parse.urlencode(body).encode("utf-8")
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
jsonResponse = json.loads(response.read())
aadToken = jsonResponse["access_token"]
Konum:
-
tenantId: Sorguyu çalıştırmak istediğiniz kiracının kimliği (yani, sorgu bu kiracının verileri üzerinde çalıştırılır) -
appId: Microsoft Entra uygulamanızın kimliği (uygulamanın Uç Nokta için Microsoft Defender için 'Gelişmiş sorguları ç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:
query = 'DeviceRegistryEvents | limit 10' # Paste your own query here
url = "https://api.security.microsoft.com/api/advancedqueries/run"
headers = {
'Content-Type' : 'application/json',
'Accept' : 'application/json',
'Authorization' : "Bearer " + aadToken
}
data = json.dumps({ 'Query' : query }).encode("utf-8")
req = urllib.request.Request(url, data, headers)
response = urllib.request.urlopen(req)
jsonResponse = json.loads(response.read())
schema = jsonResponse["Schema"]
results = jsonResponse["Results"]
- schema, sorgunuzun sonuçlarının şemasını içerir
- sonuçlar sorgunuzun sonuçlarını içerir
Karmaşık sorgular
Karmaşık sorgular (veya çok satırlı sorgular) çalıştırmak istiyorsanız, sorgunuzu bir dosyaya kaydedin ve önceki örnekteki ilk satır yerine aşağıdaki komutu çalıştırın:
queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file
query = queryFile.read()
queryFile.close()
Sorgu sonuçlarıyla çalışın
Artık sorgu sonuçlarını kullanabilirsiniz.
Sonuçlar üzerinde yineleme yapmak için aşağıdaki komutu kullanın:
for result in results:
print(result) # Prints the whole result
print(result["EventTime"]) # Prints only the property 'EventTime' from the result
Sorgu sonuçlarını dosya file1.csv CSV biçiminde çıkarmak için aşağıdaki komutu kullanın:
import csv
outputFile = open("D:\\Temp\\file1.csv", 'w')
output = csv.writer(outputFile)
output.writerow(results[0].keys())
for result in results:
output.writerow(result.values())
outputFile.close()
Sorgunun sonuçlarını dosya file1.json JSON biçiminde çıkarmak için aşağıdaki komutu kullanın:
outputFile = open("D:\\Temp\\file1.json", 'w')
json.dump(results, outputFile)
outputFile.close()
İlgili makaleler
- api'leri Uç Nokta için Microsoft Defender
- Gelişmiş Tehdit Avcılığı API'si
- PowerShell ile Gelişmiş Av
İ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.