Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Note
Jika Anda adalah pelanggan Pemerintah AS, gunakan URI yang tercantum dalam Microsoft Defender untuk Titik Akhir untuk pelanggan Pemerintah AS.
Tip
Untuk performa yang lebih baik, alih-alih menggunakan api.security.microsoft.com, gunakan server yang lebih dekat dengan geolokasi Anda:
- 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
Jalankan kueri tingkat lanjut menggunakan Python, lihat Advanced Hunting API.
Di bagian ini, kami berbagi sampel Python untuk mengambil token dan menggunakannya untuk menjalankan kueri.
Prasyarat: Anda harus terlebih dahulu membuat aplikasi.
Dapatkan token
- Jalankan perintah berikut:
Tip
Beberapa API Microsoft Defender untuk Titik Akhir masih memerlukan token akses yang dikeluarkan untuk sumber daya lama https://api.securitycenter.microsoft.com. Jika audiens token tidak cocok dengan sumber daya yang diharapkan oleh API, permintaan gagal dengan 403 Forbidden, bahkan jika titik akhir API menggunakan https://api.security.microsoft.com. Gunakan https://api.securitycenter.microsoft.com sebagai sumber daya atau cakupan saat memperoleh token.
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"]
Where:
-
tenantId: ID penyewa atas nama yang ingin Anda jalankan kuerinya (yaitu, kueri dijalankan pada data penyewa ini) -
appId: ID aplikasi Microsoft Entra Anda (aplikasi harus memiliki izin 'Jalankan kueri tingkat lanjut' untuk Microsoft Defender untuk Titik Akhir) -
appSecret: Rahasia aplikasi Microsoft Entra Anda
Jalankan Kueri
Jalankan kueri berikut:
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"]
- skema berisi skema hasil kueri Anda
- hasil berisi hasil kueri Anda
Kueri kompleks
Jika Anda ingin menjalankan kueri kompleks (atau kueri multibaris), simpan kueri Anda dalam file dan, alih-alih baris pertama dalam contoh sebelumnya, jalankan perintah berikut:
queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file
query = queryFile.read()
queryFile.close()
Bekerja dengan hasil kueri
Sekarang Anda bisa menggunakan hasil kueri.
Untuk melakukan iterasi atas hasil, gunakan perintah berikut:
for result in results:
print(result) # Prints the whole result
print(result["EventTime"]) # Prints only the property 'EventTime' from the result
Untuk menghasilkan hasil kueri dalam format CSV dalam file file1.csv, gunakan perintah berikut:
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()
Untuk menghasilkan hasil kueri dalam format JSON dalam file file1.json, gunakan perintah berikut:
outputFile = open("D:\\Temp\\file1.json", 'w')
json.dump(results, outputFile)
outputFile.close()
Artikel terkait
- API Microsoft Defender untuk Titik Akhir
- API Perburuan Tingkat Lanjut
- Perburuan Tingkat Lanjut menggunakan PowerShell
Tip
Apakah Anda ingin mempelajari lebih lanjut? Libatkan dengan komunitas Microsoft Security di Komunitas Teknologi kami: Microsoft Defender untuk Titik Akhir Tech Community.