Analisando Logs de Servidor Web para Intrusão
Quando Usar
- Ao investigar incidentes de segurança que exigem análise de logs de servidor web para intrusão
- Ao construir regras de detecção ou consultas de caça a ameaças para este domínio
- Quando analistas SOC precisam de procedimentos estruturados para este tipo de análise
- Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas
Pré-requisitos
- Familiaridade com conceitos e ferramentas de operações de segurança
- Acesso a um ambiente de teste ou laboratório para execução segura
- Python 3.8+ com dependências necessárias instaladas
- Autorização apropriada para quaisquer atividades de teste
Instruções
- Instalar dependências:
pip install geoip2 user-agents
- Coletar logs de acesso do servidor web no Formato de Log Combinado (Apache) ou formato padrão do Nginx.
- Analisar cada entrada de log extraindo: IP, timestamp, método, URI, código de status, tamanho da resposta, user-agent, referer.
- Aplicar regras de detecção:
- Injeção SQL:
UNION SELECT, OR 1=1, ' OR ', padrões de codificação hexadecimal
- LFI/Path traversal:
../, /etc/passwd, /proc/self, php://filter
- XSS:
<script>, javascript:, onerror=, onload=
- Assinaturas de scanners: user-agents nikto, sqlmap, dirbuster, gobuster, wfuzz
- Força bruta: >50 requisições POST para endpoints de login do mesmo IP em 5 minutos
- Enriquecer com dados GeoIP e gerar um relatório de achados priorizados.
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
Exemplos
Detectar SQLi na URI
192.168.1.100 - - [15/Jan/2024:10:30:45 +0000] "GET /products?id=1' UNION SELECT username,password FROM users-- HTTP/1.1" 200 4532
Detecção de User-Agent de Scanner
Nikto/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0