Detección de nuevas amenazas mediante Microsoft Sentinel con Azure Web Application Firewall

Las aplicaciones web se enfrentan a ataques malintencionados frecuentes que aprovechan vulnerabilidades conocidas, como los ataques de inyección de código y punto punto barra. Estos ataques son difíciles de evitar en el código de la aplicación, ya que requieren mantenimiento constante, aplicación de revisiones y supervisión en varios niveles de la arquitectura de la aplicación. Una solución de firewall de aplicaciones web (WAF) puede proporcionar una seguridad más rápida y centralizada mediante la aplicación de revisiones a una vulnerabilidad conocida para todas las aplicaciones web, en lugar de proteger cada una individualmente. Azure Web Application Firewall es un servicio nativo en la nube que protege las aplicaciones web frente a técnicas comunes de piratería web. Se puede implementar rápidamente para obtener visibilidad completa del tráfico de la aplicación web y bloquear ataques web malintencionados.

Al integrar Azure WAF con Microsoft Sentinel (una solución SIEM nativa en la nube), puede automatizar la detección y respuesta a amenazas, incidentes o alertas y ahorrar tiempo y esfuerzo al actualizar la directiva WAF. En este artículo, se muestra cómo crear reglas o detecciones analíticas en Microsoft Sentinel para ataques como la inyección de código.

Consultas de detección de ataques de aplicaciones web

El repositorio de GitHub de Azure Network Security contiene las siguientes consultas pregeneradas que puede usar para crear reglas analíticas en Microsoft Sentinel. Estas reglas analíticas ayudan con la detección y respuesta automatizadas de incidentes, como los ataques inyección de código, punto punto barra y basados en detectores.

  • Ataques de inyección de código (Application Gateway y WAF de Front Door)

    Un ataque por inyección de código es un tipo de ciberataque que implica insertar código malintencionado en una aplicación. Después de esto, la aplicación interpreta o ejecuta el código, lo que afecta al rendimiento y la función de la aplicación.

  • Ataques punto punto barra (Application Gateway y WAF de Front Door)

    Un ataque punto punto barra es un tipo de ciberataque que implica manipular las rutas de acceso de archivo de una aplicación para acceder a archivos y directorios que se almacenan fuera de la carpeta raíz web. El atacante puede usar secuencias de caracteres especiales, como …/ o …\, para subir la jerarquía de directorios y acceder a datos confidenciales, como archivos de configuración, código fuente o archivos del sistema.

  • Ataques basados en detectores (WAF de Application Gateway)

    Un ataque web basado en detectores es un tipo de ciberataque que implica el uso de un detector de vulnerabilidades web para encontrar y aprovecharse de las vulnerabilidades de seguridad en las aplicaciones web. Un analizador de vulnerabilidades web es una herramienta que examina automáticamente las aplicaciones web para detectar vulnerabilidades comunes, como la inyección de código SQL, XSS, CSRF y ataques punto punto barra. El atacante puede usar el detector para identificar los objetivos vulnerables e iniciar ataques para ponerlos en peligro.

Configuración de reglas analíticas en Sentinel para ataques de aplicaciones web

Se requieren los siguientes requisitos previos para configurar reglas analíticas:

Siga estos pasos para configurar una regla analítica en Sentinel.

  1. Vaya a Microsoft Sentinel y seleccione la pestaña Análisis. Seleccione Crear y, a continuación, seleccione Regla de consulta programada. Screenshot showing creating a scheduled query rule.

    Las tácticas y técnicas que se proporcionan aquí son informativas y se obtienen de la knowledge base de ataques MITRE. Esta es una knowledge base que presenta tácticas y técnicas de adversarios basadas en observaciones reales.

  2. Puede usar el Asistente para reglas de análisis para establecer un nivel de gravedad para este incidente. Dado que se trata de ataques importantes, se selecciona Gravedad alta.

    Screenshot showing the analytics rule wizard.

  3. En la página Establecer lógica de regla, escriba la siguiente consulta de inserción de código precompilada: puede encontrar esta consulta en el repositorio de GitHub de Azure Network Security. Del mismo modo, puede usar cualquier otra consulta que esté disponible en el repositorio para crear reglas analíticas y detectar patrones de ataque respectivos.

     let Threshold = 3; 
    
     AzureDiagnostics
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Matched"
     | where Message has "Injection" or Message has "File Inclusion"
     | where ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or ruleGroup_s ==    "REQUEST-931-APPLICATION-ATTACK-RFI" or ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or    ruleGroup_s == "REQUEST-933-APPLICATION-ATTACK-PHP" or ruleGroup_s ==    "REQUEST-942-APPLICATION-ATTACK-SQLI" or ruleGroup_s == "REQUEST-921-PROTOCOL-ATTACK" or ruleGroup_s    == "REQUEST-941-APPLICATION-ATTACK-XSS"
     | project transactionId_g, hostname_s, requestUri_s, TimeGenerated, clientIp_s, Message,    details_message_s, details_data_s
     | join kind = inner(
    
     AzureDiagnostics
    
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Blocked") on transactionId_g
     | extend Uri = strcat(hostname_s,requestUri_s)
     | summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), TransactionID = make_set   (transactionId_g,100), Message = make_set(Message,100), Detail_Message = make_set(details_message_s,   100), Detail_Data = make_set(details_data_s,100), Total_TransactionId = dcount(transactionId_g) by    clientIp_s, Uri, action_s
     | where Total_TransactionId >= Threshold
    

    Screenshot showing the rule query.

    Nota:

    Es importante asegurarse de que los registros de WAF ya estén en el área de trabajo de Log Analytics antes de crear esta regla analítica. De lo contrario, Sentinel no reconocerá algunas de las columnas de la consulta y tendrá que agregar entradas adicionales como | extend action_s = column_ifexists(“action_s”, “”), transactionId_g = column_ifexists(“transactionId_g”, “”) para cada columna que produce un error. Esta entrada crea los nombres de columna manualmente y les asigna valores nulos. Para omitir este paso, envíe primero los registros de WAF al área de trabajo.

  4. En la página Configuración de incidentes, habilite Crear incidentes a partir de las alertas desencadenadas por esta regla de análisis. La agrupación de alertas se puede configurar según sea necesario.

  5. De manera opcional, también puede agregar cualquier respuesta automatizada al incidente si es necesario. Consulte Detección y respuesta automatizadas de Azure WAF con Microsoft Sentinel para obtener información más detallada sobre la configuración de respuesta automatizada.

  6. Por último, seleccione Guardar en la pestaña Revisar y crear.

Esta regla analítica permite a Sentinel crear un incidente basado en los registros de WAF que registran los ataques por inyección de código. Azure WAF bloquea estos ataques de forma predeterminada, pero la creación de incidentes proporciona más compatibilidad para que el analista de seguridad responda ante amenazas futuras.

Puede configurar reglas analíticas en Sentinel para varios ataques de aplicaciones web mediante las consultas de detección pregeneradas disponibles en el repositorio de GitHub de Azure Network Security. Estas consultas se agregarán directamente a las plantillas de detección de Sentinel. Una vez agregadas, estas consultas estarán disponibles directamente en la sección Plantillas de reglas analíticas de Sentinel.

Pasos siguientes