Recientemente, yo compartido en Twitter Cómo ejecutar una consulta para detectar si un usuario ha hecho clic en un vínculo en Outlook con Protección contra amenazas avanzada de Microsoft Defender (MDATP). Si no lo conoce, MDATP está disponible en su licencia de Microsoft 365 E5 y es una mejora del Windows Defender tradicional al que quizás esté acostumbrado.
¿Qué es Microsoft Defender Advanced Threat Protection?
Microsoft Microsoft Defender Advanced Threat Protection es una plataforma diseñada para ayudar a las redes empresariales a prevenir, detectar, investigar y responder a amenazas avanzadas. MDATP ofrece una gran variedad de endpoints que se pueden aprovechar tanto para la respuesta a incidentes como para la búsqueda de amenazas.
El oficial documentación Cuenta con varios puntos de conexión de API que puedes usar para obtener, crear y actualizar alertas e indicadores. Además, aquí tienes una breve lista de la información que puedes recuperar o de las acciones que puedes realizar con las API de protección contra amenazas avanzadas de Microsoft Defender:
- Obtenga todas las alertas relacionadas con un dominio, archivo, IP, máquina o usuario.
- Recuperar información sobre quién está conectado a una determinada máquina.
- Determinar si un dominio o IP ha sido visto en su organización.
Estas son solo algunas de las API interesantes disponibles, pero para mí, la más convincente (y de la que vamos a hablar) es caza avanzada.
Interactuar con la protección contra amenazas avanzada de Microsoft Defender
Escribí un nuevo paquete para Swimlane que envuelve todos los puntos finales de la API de Microsoft Defender ATP, pero para quienes no son clientes, me gustaría compartir con ustedes cómo pueden interactuar con las API de Microsoft Defender ATP usando ambos Núcleo de PowerShell y Pitón.
Para interactuar con las API de protección contra amenazas avanzadas de Microsoft Defender, debe tener lo siguiente:
- Licencia Microsoft 365 E5 o acceso a MDATP.
- Al menos un punto final debe tener MDATP instalado y en ejecución.
- La capacidad de crear una nueva aplicación en Azure Active Directory.
Primero, vamos a crear una nueva aplicación en Azure Active Directory. Puede crear una nueva aplicación en Azure AD en la sección Azure Active Directory y luego navegar a Registros de aplicaciones. Haga clic en el Nuevo registro y dale un nombre a tu aplicación. Luego haz clic en Registro.

Copia y guarda tu Id. de cliente y Identificación del inquilino en un lugar seguro (necesitaremos esta información en breve). A continuación, seleccione el Permisos de API sección y haga clic Agregar un permiso. Deberías tener una cuchilla nueva en el lado izquierdo.
Cuando esta nueva hoja esté abierta, seleccione la API que utiliza mi organización pestaña. Es posible que tengas que filtrar en la barra de búsqueda, pero deberías ver Windows Defender ATP Aparece como una opción. Si no es así, asegúrese de tener acceso a esta API antes de continuar.

Seleccione el Windows Defender ATP API y luego seleccione Permisos de la aplicación. Una vez que haya seleccionado el Permisos de aplicación, Se le presentará una lista de permisos. En este ejemplo, selecciono "todos" para tener acceso a todos los endpoints disponibles, pero utilice su criterio.
Una vez que haya seleccionado los permisos deseados, haga clic en Agregar permisos En la parte inferior y luego en la pantalla principal, deberá asegurarse de seleccionar el Consentimiento del Gran Administrador.

A continuación, vaya a la Certificados y secretos sección y crear una Nuevo secreto de cliente. Una vez creado esto, guárdelo con los otros secretos que guardamos anteriormente.
Ahora que tenemos nuestros secretos, podemos usar los dos archivos diferentes que he creado que demuestran cómo usar las API de MDATP para recuperar un Simbólico para la autenticación futura, así como para interactuar directamente con la API MDATP.
Núcleo de PowerShell
He proporcionado una ps1 Archivo que puede usar como referencia. Este archivo contiene dos funciones de PowerShell y, en la parte inferior, las llamamos según sea necesario:
- Obtener MDATPToken:Realiza una autenticación OAuth2 y recupera un token que usaremos en todas las llamadas posteriores a los puntos finales de la API MDATP.
- Invocar-MDATPQuery:Invoca un caza avanzada consulta al MDATP consultas avanzadas/ejecutar punto final.
Al utilizar estas dos funciones, podemos ejecutar consultas en nuestros puntos finales que tengan MDATP instalado.
Primero, obtengamos nuestro token:
$Token = Obtener-MDATPToken -ClientId 'NUESTRO_ID_DE_CLIENTE' -ClientSecret 'SECRETO_DE_CLIENTE' -TenantId 'ID_DE_INQUILINO''
A continuación, podemos definir una consulta simple:
$query = @" "RegistryEvents | límite 10" "@
O consultas más avanzadas como esta para comprobar si un usuario hizo clic en un enlace desde Outlook. Por suerte, Microsoft ha proporcionado un recurso INCREÍBLE de consultas de ejemplo para que usted lo use.
$query = @" let minTimeRange = ago(7d); let outlookLinks = MiscEvents | donde EventTime > minTimeRange y ActionType == "BrowserLaunchedToOpenUrl" y isnotempty(RemoteUrl) | donde InitiatingProcessFileName = ~ "outlook.exe" o InitiatingProcessFileName = ~ "runtimebroker.exe" | proyecto EventTime, MachineId, ComputerName, RemoteUrl, InitiatingProcessFileName, ParsedUrl=parse_url(RemoteUrl) | extender WasOutlookSafeLink=(tostring(ParsedUrl.Host) termina con "safelinks.protection.outlook.com") | proyecto EventTime, MachineId, ComputerName, WasOutlookSafeLink, InitiatingProcessFileName, OpenedLink=iff(WasOutlookSafeLink, url_decode(tostring(ParsedUrl["Query" Parámetros"]["url"])), RemoteUrl); let alertas = AlertEvents | resumir (FirstDetectedActivity, Título)=argmin(EventTime, Título) por AlertId, MachineId | donde FirstDetectedActivity > minTimeRange; alertas | unir kind=inner(outlookLinks) en MachineId | donde FirstDetectedActivity - EventTime entre (0min..3min) | resumir FirstDetectedActivity=min(FirstDetectedActivity), AlertTitles=makeset(Título) por OpenedLink, InitiatingProcessFileName, EventTime=bin(EventTime, 1tick), ComputerName, MachineId, WasOutlookSafeLink "@
Ahora que tenemos nuestro token y consulta, podemos ejecutar nuestra consulta usando el Invocar-MDATPQuery función:
Invocar-MDATPTQuery -Token $Token -Consulta $query
¡Eso es todo!
Pitón
Al igual que en nuestro ejemplo de PowerShell, he creado dos clases de Python que ayudarán con la autenticación y la ejecución de consultas avanzadas:
- Conector MDATP:Realiza una autenticación OAuth2 y recupera un token que usaremos en todas las llamadas posteriores a los puntos finales de la API MDATP.
- Consulta MDATP:Invoca un caza avanzada consulta al MDATP consultas avanzadas/ejecutar punto final.
Primero, cree un objeto MDATPConnector proporcionando sus secretos:
conector = MDATPConnector( __CLIENTE_ID__, __CLIENTE_SECRETO__, __INQUILINO_ID__ )
A continuación, para simplificar, ejecutemos esta consulta más pequeña:
consulta = ''' "RegistryEvents | límite 10" ''''
Ahora, necesitamos pasar nuestro objeto MDATPConnector y nuestra consulta a la clase MDATPQuery y luego ejecutar:
mdatp = MDATPQuery( conector, consulta ) print(mdatp.execute())
¡Eso es todo!
Espero que hayas disfrutado aprendiendo sobre la Protección contra amenazas avanzada de Microsoft Defender. ¡No te pierdas nuestro nuevo paquete que cubre... Consultas avanzadas y todos los demás puntos finales disponibles dentro de la API MDATP.
Solicitar una demostración
¡Programe una demostración en vivo de Swimlane Turbine con nuestros expertos! Descubra cómo nuestra plataforma de automatización de seguridad con IA puede ayudarle a resolver los problemas más complejos de toda su organización de seguridad.

