Análisis de Registros de Servidor Web para Detección de Intrusos
Cuándo Usarlo
- Al investigar incidentes de seguridad que requieran analizar registros de servidor web para detectar intrusiones
- Al construir reglas de detección o consultas de caza de amenazas para este dominio
- Cuando los analistas de SOC necesiten procedimientos estructurados para este tipo de análisis
- Al validar la cobertura de monitoreo de seguridad para técnicas de ataque relacionadas
Prerrequisitos
- Familiaridad con conceptos y herramientas de operaciones de seguridad
- Acceso a un entorno de prueba o laboratorio para ejecución segura
- Python 3.8+ con las dependencias requeridas instaladas
- Autorización apropiada para cualquier actividad de prueba
Instrucciones
- Instalar dependencias:
pip install geoip2 user-agents
- Recopilar registros de acceso del servidor web en Combined Log Format (Apache) o formato predeterminado de Nginx.
- Analizar cada entrada de registro extrayendo: IP, marca de tiempo, método, URI, código de estado, tamaño de respuesta, user-agent, referer.
- Aplicar reglas de detección:
- Inyección SQL:
UNION SELECT, OR 1=1, ' OR ', patrones de codificación hexadecimal
- LFI/Path traversal:
../, /etc/passwd, /proc/self, php://filter
- XSS:
<script>, javascript:, onerror=, onload=
- Firmas de escáner: nikto, sqlmap, dirbuster, gobuster, wfuzz en user-agents
- Fuerza bruta: >50 solicitudes POST a endpoints de inicio de sesión desde la misma IP en 5 minutos
- Enriquecer con datos GeoIP y generar un informe de hallazgos priorizados.
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
Ejemplos
Detectar SQLi en URI
192.168.1.100 - - [15/Ene/2024:10:30:45 +0000] "GET /products?id=1' UNION SELECT username,password FROM users-- HTTP/1.1" 200 4532
Detección de User-Agent de Escáner
Nikito/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0