Búsqueda avanzada de amenazas con Python
Se aplica a:
¿Quiere experimentar Microsoft Defender para punto de conexión? Regístrese para obtener una prueba gratuita.
Nota:
Si es un cliente del Gobierno de EE. UU., use los URI que aparecen en Microsoft Defender para punto de conexión para clientes del Gobierno de EE. UU.
Sugerencia
Para mejorar el rendimiento, puede usar el servidor más cercano a la ubicación geográfica:
- 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
Ejecute consultas avanzadas con Python, consulte Advanced Hunting API( API de búsqueda avanzada).
En esta sección, compartimos ejemplos de Python para recuperar un token y usarlo para ejecutar una consulta.
Requisito previo: primero debe crear una aplicación.
Obtener token
- Ejecute los comandos siguientes:
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"]
Dónde
- tenantId: identificador del inquilino en nombre del que desea ejecutar la consulta (es decir, la consulta se ejecuta en los datos de este inquilino).
- appId: identificador de la aplicación Microsoft Entra (la aplicación debe tener el permiso "Ejecutar consultas avanzadas" para Microsoft Defender para punto de conexión)
- appSecret: secreto de la aplicación Microsoft Entra
Ejecutar consulta
Ejecute la consulta siguiente:
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"]
- schema contiene el esquema de los resultados de la consulta
- los resultados contienen los resultados de la consulta
Consultas complejas
Si desea ejecutar consultas complejas (o consultas multilínea), guarde la consulta en un archivo y, en lugar de la primera línea del ejemplo anterior, ejecute el siguiente comando:
queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file
query = queryFile.read()
queryFile.close()
Trabajar con resultados de consulta
Ahora puede usar los resultados de la consulta.
Para recorrer en iteración los resultados, use el siguiente comando:
for result in results:
print(result) # Prints the whole result
print(result["EventTime"]) # Prints only the property 'EventTime' from the result
Para generar los resultados de la consulta en formato CSV en el archivo file1.csv use el siguiente comando:
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()
Para generar los resultados de la consulta en formato JSON en el archivo file1.json use el siguiente comando:
outputFile = open("D:\\Temp\\file1.json", 'w')
json.dump(results, outputFile)
outputFile.close()
Tema relacionado
- API de Microsoft Defender para punto de conexión
- API de búsqueda avanzada
- Búsqueda avanzada de amenazas con PowerShell
Sugerencia
¿Desea obtener más información? Interactúe con la comunidad de seguridad de Microsoft en nuestra comunidad tecnológica: Microsoft Defender para punto de conexión Tech Community.