"الصيد المتقدم" باستخدام Python
ينطبق على:
هل تريد تجربة Defender لنقطة النهاية؟ التسجيل للحصول على إصدار تجريبي مجاني.
ملاحظة
إذا كنت أحد عملاء حكومة الولايات المتحدة، فالرجاء استخدام معرفات URI المدرجة في Microsoft Defender لنقطة النهاية لعملاء حكومة الولايات المتحدة.
تلميح
للحصول على أداء أفضل، يمكنك استخدام الخادم الأقرب إلى موقعك الجغرافي:
- 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
قم بتشغيل الاستعلامات المتقدمة باستخدام Python، راجع واجهة برمجة تطبيقات التتبع المتقدمة.
في هذا القسم، نشارك عينات Python لاسترداد رمز مميز واستخدامه لتشغيل استعلام.
المتطلبات الأساسية: تحتاج أولا إلى إنشاء تطبيق.
الحصول على الرمز المميز
- قم بتنفيذ الأوامر التالية:
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"]
حيث
- tenantId: معرف المستأجر الذي تريد تشغيل الاستعلام نيابة عنه (أي، يتم تشغيل الاستعلام على بيانات هذا المستأجر)
- appId: معرف تطبيق Microsoft Entra (يجب أن يكون لدى التطبيق إذن "تشغيل الاستعلامات المتقدمة" Microsoft Defender لنقطة النهاية)
- appSecret: سر تطبيق Microsoft Entra
تشغيل الاستعلام
قم بتشغيل الاستعلام التالي:
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
}
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"]
- يحتوي المخطط على مخطط نتائج الاستعلام الخاص بك
- تحتوي النتائج على نتائج الاستعلام الخاص بك
الاستعلامات المعقدة
إذا كنت تريد تشغيل استعلامات معقدة (أو استعلامات متعددة الأسطر)، فاحفظ الاستعلام في ملف، وبدلا من السطر الأول في النموذج أعلاه، قم بتشغيل الأمر أدناه:
queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file
query = queryFile.read()
queryFile.close()
استخدام نتائج الاستعلام
يمكنك الآن استخدام نتائج الاستعلام.
للتكرار عبر النتائج، استخدم الأمر التالي:
for result in results:
print(result) # Prints the whole result
print(result["EventTime"]) # Prints only the property 'EventTime' from the result
لإخراج نتائج الاستعلام بتنسيق CSV في ملف file1.csv استخدم الأمر التالي:
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()
لإخراج نتائج الاستعلام بتنسيق JSON في ملف file1.json استخدم الأمر التالي:
outputFile = open("D:\\Temp\\file1.json", 'w')
json.dump(results, outputFile)
outputFile.close()
موضوع ذو صلة
- واجهات برمجة التطبيقات Microsoft Defender لنقطة النهاية
- واجهة برمجة تطبيقات التتبع المتقدمة
- الصيد المتقدم باستخدام PowerShell
تلميح
هل تريد معرفة المزيد؟ Engage مع مجتمع أمان Microsoft في مجتمعنا التقني: Microsoft Defender لنقطة النهاية Tech Community.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ