Security Scanner Detection
ID de alerta: scanner_detection
MITRE ATT&CK: T1595 – Active Scanning · T1046 – Network Service Scanning
Severidad / Criticidad
Sección titulada «Severidad / Criticidad»| Nivel | Condición |
|---|---|
| Baja | Herramientas de información (WhatWeb, curl, wget) |
| Media | Directory bruteforcers (Gobuster, DirBuster), detectores de WAF |
| Alta | Vulnerability scanners (Nikto, WPScan, Nessus, Acunetix) |
| Crítica | Herramientas de inyección/explotación automatizada (SQLMap, Metasploit) |
¿Por qué se considera maliciosa?
Sección titulada «¿Por qué se considera maliciosa?»- Reconocimiento automatizado: primera fase de un ataque dirigido.
- Descubrimiento de vulnerabilidades: mapeo masivo de vectores explotables.
- Preparación de ataque: inventario y priorización de objetivos.
- Explotación automática posible: scanner + vulnerabilidad = compromiso inminente.
¿Cuándo salta la alerta?
Sección titulada «¿Cuándo salta la alerta?»- Detección por User-Agent coincidente con >50 patrones conocidos.
- Análisis comportamental: ráfagas de 404s, requests secuenciales a paths comunes.
- Severidad aumentada si se observan intentos de login, peticiones maliciosas o payloads.
- Cooldown: 5 minutos por IP/tool.
- Respuesta crítica automática para herramientas catalogadas como explotadoras (SQLMap, Metasploit).
Indicadores Técnicos (IOCs)
Sección titulada «Indicadores Técnicos (IOCs)»| Tipo | Ejemplo |
|---|---|
user_agent | sqlmap/1.5.2#stable |
user_agent | Mozilla/5.0 (compatible; Nmap Scripting Engine) |
user_agent | WPScan vX.Y.Z |
user_agent | Nikto/X.Y.Z |
behavior | Múltiples 404 en <1 segundo contra paths comunes |
behavior | Patrones de enumeración: /wp-admin/, /wp-login.php, .env, /backup/, wp-content/plugins/ |
Falsos positivos comunes
Sección titulada «Falsos positivos comunes»- Crawlers SEO legítimos y motores de búsqueda.
- Herramientas de monitorización/uptime.
- Servicios de seguridad contratados o pentests autorizados.
- Desarrolladores usando
curl/wgeto herramientas de diagnóstico.
!!! tip "" Verificar siempre IP origen, contexto (horario, ASN) y autorización antes de bloquear.
Pasos de investigación
Sección titulada «Pasos de investigación»-
Analizar User-Agent y frecuencia:
Ventana de terminal grep -iE "nikto|sqlmap|wpscan|nmap" access.log -
Listar paths probados y contar 404s:
Ventana de terminal awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -nr -
Medir alcance: duración del escaneo, requests totales, tamaños y patrones.
-
Correlacionar con WAF/IDS: reglas disparadas, bloqueos previos.
-
Para herramientas críticas, asumir intento de explotación activa y escalar a respuesta urgente.
Mitigaciones recomendadas
Sección titulada «Mitigaciones recomendadas»=== “Inmediatas”
!!! danger "" - Bloquear IPs que combinan User-Agent sospechoso con comportamiento de scanning. - Aplicar rate limiting agresivo y tarpit para orígenes persistentes. - Investigar urgentemente si la herramienta es SQLMap/Metasploit. - Deploy de honeypots o endpoints falsos para recopilar TTPs del atacante.=== “Preventivas”
!!! tip "" Filtrar User-Agents conocidos a nivel de servidor web (Nginx):
```nginx if ($http_user_agent ~* (nikto|sqlmap|wpscan|nmap|acunetix)) { return 403; } ```
- Implementar tarpit/slowdown para scanners persistentes. - Respuestas falsas para paths de administración en capas no autorizadas. - WAF/CloudFlare con reglas anti-scanner y rate limiting global. - Fail2ban con jails basados en patrones de scanning y 404 flood.Referencias
Sección titulada «Referencias»- MITRE ATT&CK T1595 / T1046
- SANS — Detecting Scanners and Reconnaissance
- SecLists — common User-Agents and scan signatures