/
/

Cómo automatizar la respuesta a amenazas con Acceso condicional, Graph y PowerShell

por Team Ninja
How to Automate Threat Response with Conditional Access, Graph, and PowerShell blog banner image

Resumen instantáneo

Este post ofrece una lista completa de comandos CMD básicos y una inmersión profunda en los comandos de Windows, con más de 70 comandos cmd esenciales tanto para principiantes como para usuarios avanzados. Explica comandos prácticos del símbolo del sistema para la gestión de archivos, la navegación por directorios, la solución de problemas de red, las operaciones de disco y la automatización con ejemplos reales para mejorar la productividad. Tanto si estás aprendiendo los comandos básicos de cmd como si ya dominas las herramientas avanzadas de la CLI de Windows, esta guía te ayudará a utilizar el Símbolo del sistema de forma más eficaz.

Responder manualmente a las amenazas basadas en la identidad hace perder tiempo y puede aumentar tu exposición al riesgo. Es posible que estés filtrando datos sensibles y poniendo en peligro a tu organización. Una forma de reforzar la protección es integrar el Acceso condicional (CA) de Microsoft con activadores de la Graph API y automatización con PowerShell, lo que da como resultado una respuesta automatizada a amenazas.

Así, los MSP (proveedores de servicios gestionados) pueden contener y mitigar amenazas sin depender de plataformas SIEM (gestión de eventos e información de seguridad), que resultan costosas.

Automatizar la respuesta a amenazas con Acceso condicional, Microsoft Graph y PowerShell

Hay varias formas de automatizar la respuesta a amenazas. Puedes configurar políticas de Acceso condicional, usar Microsoft Graph, crear un script de PowerShell, registrar los eventos de respuesta en el Registro y aplicar un comportamiento de cuarentena mediante GPO.

📌 Requisitos previos:

  • Azure AD Premium P2 para Identity Protection y Acceso condicional
  • Microsoft Defender for Endpoint o una fuente equivalente de señales basadas en riesgo
  • Permisos de la API de Microsoft Graph
  • PowerShell 7+ con el módulo Microsoft.Graph instalado

📌 Estrategias de implementación recomendadas:

Haz clic para elegir un método

💻
Ideal para usuarios individuales
💻💻💻
Ideal para empresas
Método 1: configurar políticas de Acceso condicional para la respuesta a amenazas✓
Método 2: usar Microsoft Graph para activar acciones de política en tiempo real✓
Método 3: automatizar la corrección con PowerShell✓
Método 4: registrar los eventos de respuesta a amenazas en el Registro✓
Método 5: usar GPO para aplicar la cuarentena en dispositivos de riesgo✓

Método 1: configurar políticas de Acceso condicional para la respuesta a amenazas

El primer paso es configurar las políticas de Acceso condicional.

📌 Caso de uso: administradores de TI que crean reglas de Acceso condicional para bloquear o verificar automáticamente los inicios de sesión de riesgo

Crea políticas de Acceso condicional en Entra ID a partir de señales de amenaza:

  • Respuesta basada en el riesgo del usuario:
    • Señal: UserRiskLevel = High
    • Acción: bloquear el acceso o exigir el restablecimiento de la contraseña
  • Respuesta basada en el riesgo del dispositivo:
    • Señal: DeviceRiskLevel = High (desde Defender)
    • Acción: exigir un dispositivo conforme o bloquear el acceso

Ejemplo de expresión de filtro de política:

(device.deviceOwnership -eq «Company») and (device.riskLevel -eq «High»)

Asigna las políticas a los roles más expuestos, como administradores y directivos.

⚠️ Advertencia: las reglas restrictivas pueden dejar fuera a administradores y a otros usuarios legítimos. (Más información en: Aspectos a tener en cuenta)

Método 2: usar Microsoft Graph para activar acciones de política en tiempo real

Puedes recurrir a Microsoft Graph para activar acciones de política en tiempo real.

📌 Caso de uso: administradores de TI que crean un script para consultar los usuarios de riesgo y deshabilitar sus cuentas en tiempo real

  1. Pulsa Win, escribe PowerShell y haz clic en Ejecutar como administrador.
  2. Copia y pega los siguientes scripts en la consola y pulsa Intro:
Connect-MgGraph -Scopes "User.ReadWrite.All", «IdentityRiskEvent.Read.All»

$riskyUsers = Get-MgRiskyUser | Where-Object { $_.RiskLevel -eq "high" -and $_.RiskState -eq "atRisk" }

foreach ($user in $riskyUsers) {

Update-MgUser -UserId $user.Id -AccountEnabled:$false

Write-Output «Disabled account: $($user.UserPrincipalName)»

}

💡 Consejo: registra la acción y, si quieres, avisa a un administrador o abre un ticket de PSA para dar visibilidad a los equipos de seguridad.

Método 3: automatizar la corrección con PowerShell

Con PowerShell puedes convertir las detecciones de riesgo en acciones repetibles y auditables.

📌 Caso de uso: administradores de TI que automatizan la recuperación de cuentas forzando el restablecimiento de contraseñas, invalidando tokens y poniendo dispositivos en cuarentena tras detecciones de alto riesgo

Por ejemplo, puedes restablecer la MFA (autenticación multifactor) y forzar un cambio de contraseña con PowerShell.

  1. Pulsa Win, escribe PowerShell y haz clic en Ejecutar como administrador.
  2. Copia y pega los siguientes scripts en la consola y pulsa Intro:
Connect-MgGraph -Scopes "User.ReadWrite.All", «IdentityRiskyUser.ReadWrite.All», «Device.ReadWrite.All»

$riskyUsers = Get-MgRiskyUser | Where-Object { $_.RiskLevel -eq "high" -and $_.RiskState -eq "atRisk" }

foreach ($user in $riskyUsers) {

try {

# Invalidate all active sessions

Invoke-MgInvalidateUserRefreshToken -UserId $user.Id

# Force password reset on next sign-in (requires a temporary password)

$tempPassword = "TempP@ssw0rd!" # Replace with a secure generator if needed

Update-MgUser -UserId $user.Id -PasswordProfile @{

Password = $tempPassword

ForceChangePasswordNextSignIn = $true

}

# Quarantine associated device(s) if extension attribute exists

$devices = Get-MgUserRegisteredDevice -UserId $user.Id

foreach ($device in $devices) {

try {

Update-MgDevice -DeviceId $device.Id -AdditionalProperties @{

«extensionAttribute1» = «Quarantined»

}

} catch {

Write-Warning «Failed to update device $($device.Id)»

}

}

Write-Output «Remediated: $($user.UserPrincipalName)»

} catch {

Write-Warning «Failed to remediate user $($user.UserPrincipalName)»

}

}

  • Poner un dispositivo en cuarentena por etiqueta o filtro de política:
Update-MgDevice -DeviceId $device.Id -AdditionalProperties @{ «extensionAttribute1» = «Quarantined» }

💡 Consejo: puedes combinar estos scripts con tareas de RMM o lanzarlos mediante alertas por correo electrónico y Logic Apps.

⚠️ Advertencia: antes de aplicar el cambio de configuración en varios endpoints, conviene probarlo primero en un equipo local. (Más información en: Aspectos a tener en cuenta)

Método 4: registrar los eventos de respuesta a amenazas en el Registro

Este método guarda en el registro los eventos de respuesta locales de los dispositivos que no están cubiertos por Microsoft Defender ni Intune.

📌 Caso de uso: administradores de TI que registran la actividad de respuesta a amenazas en el registro de Windows para mantener un rastro de auditoría local

  1. Pulsa Win, escribe PowerShell y haz clic en Ejecutar como administrador.
  2. Copia y pega los siguientes scripts en la consola y pulsa Intro:
New-Item -Path "HKLM:\SOFTWARE\Org\ThreatResponse" -Force

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ThreatResponse" `

-Name "LastResponse" -Value "$(Get-Date) - Quarantine enforced"

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ThreatResponse" `

-Name "QuarantineState" -Value "True"

También puedes comprobar el contenido de la clave del registro copiando y pegando el siguiente comando:

reg query HKLM\SOFTWARE\Org\ThreatResponse

⚠️ Advertencia: editar el registro puede tener consecuencias imprevistas. Hazlo con precaución y crea una copia de seguridad del registro antes de realizar cambios. (Más información en: Aspectos a tener en cuenta)

Método 5: usar GPO para aplicar la cuarentena en dispositivos de riesgo

Puedes usar GPO para aplicar restricciones cuando las claves locales del registro indiquen cuarentena.

📌 Caso de uso: administradores de TI que aplican la cuarentena del endpoint deshabilitando el acceso a internet y las aplicaciones cuando el registro indica un estado de cuarentena

📌 Requisito previo: acceso a GPO para las políticas de cuarentena local

  1. Pulsa Win + R, escribe gpmc.msc y pulsa Intro.
  2. Ve a la siguiente ruta:
    • Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas de restricción de software

En este ejemplo, puedes restringir el acceso a unidades de red asignadas o bloquear los navegadores de internet.

También puedes comprobar un indicador de cuarentena en el registro y actuar sobre el endpoint. Para ello, ejecuta el siguiente script en PowerShell:

Script logic (triggered by key):

if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Org\ThreatResponse" -Name "QuarantineState") -eq "True") {

Stop-Process -Name "chrome" -Force

Disable-NetAdapter -Name "Wi-Fi" -Confirm:$false

}

⚠️ Aspectos a tener en cuenta

RiesgosPosibles consecuenciasCómo revertirlo
Las reglas restrictivas pueden bloquear a usuarios legítimosLos administradores pueden quedarse sin acceso.Deshabilita o elimina la política en Entra ID.
No probar en un equipo localImplementar un script sin probar puede provocar fallos en los dispositivos por problemas como la incompatibilidad de claves del registro.Aplica los cambios que quieras en un equipo local y comprueba si la configuración da el resultado previsto.
Editar el Registro sin copia de seguridadEditar el registro de forma incorrecta puede corromperlo, así que conviene crear una copia de seguridad antes.Exporta la clave del registro antes de los cambios en Archivo > Exportar.

Otras consideraciones

Para crear protecciones de identidad resistentes, las organizaciones deben centrarse en una segmentación precisa, rutas de escalado claras, visibilidad multicliente y una validación cuidadosa de las señales de amenaza.

Filtros de alcance

Evita aplicar políticas de CA a usuarios que no estén en riesgo, ya que pueden causar interrupciones. Por ejemplo, podrías dejar sin acceso por error a administradores o cuentas de servicio si impones una política de bloqueo estricta. Para evitarlo, puedes usar grupos, atributos o unidades administrativas y dirigir las políticas de CA solo a los grupos de alto riesgo.

Rutas de escalado

Sin un proceso de escalado, algunas señales pueden pasar desapercibidas, o las alertas críticas pueden bloquear a los usuarios sin que haya corrección. Puedes implementar una integración con la gestión de tickets para el seguimiento y la investigación. Esto consiste en derivar los inicios de sesión de alto riesgo y los intentos de acceso bloqueados, o incorporar directamente las detecciones de riesgo de Identity Protection a un sistema de gestión de tickets.

Alertas entre tenants

La falta de visibilidad entre entornos complica a los MSP la gestión de varios tenants. Valora usar bucles de la Graph API o Logic Apps para mejorar la monitorización entre tenants:

  • Bucles de la Graph API: consulta Microsoft Graph en cada tenant gestionado para recopilar datos de alertas e inicios de sesión.
  • Logic Apps: automatiza la recopilación y el reenvío de alertas a un SIEM centralizado.

Validación de las señales de amenaza

CA puede aplicar políticas a partir de señales de Microsoft Defender, Entra ID e Identity Protection. Aun así, siguen produciéndose falsos positivos, y actuar solo con esas señales puede provocar bloqueos innecesarios. Una forma de evitarlos es exigir más de una señal de riesgo antes de activar un bloqueo.

Solución de problemas habituales

Estos son los problemas más habituales al automatizar la respuesta a amenazas y cómo resolverlos.

Errores de Graph

Si te aparecen errores de Graph, lo ideal es confirmar los permisos de los tokens delegados y de aplicación. Descodifica ambos tokens y busca patrones. Los códigos 401 apuntan a problemas con el token, mientras que los 403 indican permisos insuficientes.

Retrasos en la aplicación de políticas

Las actualizaciones hechas mediante Graph pueden tardar unos minutos en aplicarse, así que conviene confirmarlo con los registros de inicio de sesión. También es recomendable auditar los registros y verificar que el cambio en Graph se ha completado.

La GPO no se activa

Si la GPO no se activa, revisa la frecuencia de actualización de la política y el contexto en el que se ejecuta el script. También puedes forzar una actualización ejecutando gpupdate /force.

Servicios de NinjaOne que facilitan la respuesta automatizada a amenazas

Con NinjaOne, los MSP pueden escalar sus flujos de respuesta en entornos híbridos y no nativos de Microsoft. Los servicios de NinjaOne facilitan la respuesta automatizada a amenazas al:

  • Implementar scripts para aislar o etiquetar dispositivos comprometidos
  • Monitorizar claves del registro e indicadores de riesgo para activar la corrección
  • Etiquetar endpoints para la asignación de políticas
  • Activar alertas y automatización de flujos de trabajo según los resultados de los scripts
  • Generar informes multicliente sobre eventos de respuesta a amenazas, acciones ejecutadas y endpoints afectados

Reduce el tiempo de permanencia del atacante automatizando la respuesta a amenazas

Automatizar la respuesta a amenazas con el Acceso condicional de Microsoft, la Graph API y PowerShell ayuda a los MSP a contener los riesgos sin herramientas SIEM costosas. También puedes usar herramientas como NinjaOne para reforzar la automatización: implementa scripts, monitoriza endpoints y simplifica la visibilidad y los informes entre tenants.

Temas relacionados:

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?