Access Log Forensics Skill
Ayuda con la forensia de registros de acceso, identifica ataques, cache busters y otros problemas.
Documentación
access-log-forensics
Una habilidad de Claude Code que realiza un triaje forense de registros de acceso de Apache/Nginx (formato de registro combinado) y produce un informe de incidente breve y respaldado por evidencia.
Instalación
Copia esta carpeta en uno de los directorios de habilidades de Claude Code:
# per-project
cp -r access-log-forensics .claude/skills/
# or globally, for all projects
cp -r access-log-forensics ~/.claude/skills/
Uso
Invócala explícitamente:
/access-log-forensics analyze /var/log/apache2/access.log
O simplemente pregunta de forma natural — Claude selecciona la habilidad automáticamente cuando la solicitud coincide con su descripción:
Can you check attack.log for signs of an attack?
Qué hace
- Ejecuta
scripts/redact.shprimero: las IPs de clientes se reemplazan con seudónimos estables (ip-042) antes de que cualquier contenido del registro entre en la conversación del LLM (minimización de datos GDPR). El mapeo seudónimo↔IP se escribe en<logfile>.ipmap.tsv(chmod 600) y permanece en tu máquina — resuelve un seudónimo localmente congrep -P '\tip-042$' <logfile>.ipmap.tsv. Todos los pasos posteriores operan solo sobre<logfile>.redacted. - Ejecuta
scripts/summarize.shpara estadísticas de referencia en una sola pasada (marco temporal, códigos de estado, IPs principales con conteos de errores/URLs, agentes de usuario, rutas, picos de req/min). - Analiza el registro en busca de firmas de ataques (SQLi, path traversal, sondeos de WordPress/Drupal, búsqueda de secretos, XSS, agentes de usuario de escáneres).
- Aplica heurísticas de comportamiento (inundaciones distribuidas, scraping, fuerza bruta, ataques intentados vs. exitosos).
- Escribe
forensics-report.md— limitado a una página / ~400 palabras, con un veredicto, hallazgos clave, IPs de origen notables y acciones priorizadas.
Notas GDPR
Orientación práctica, no asesoramiento legal — para procesamiento del sector público o de alto volumen, involucra a tu DPO.
Lo que es legítimo:
- Las direcciones IP en los registros de acceso son datos personales (TJUE C-582/14, Breyer), pero analizarlas para forensía de ataques está expresamente cubierto: el Considerando 49 del GDPR nombra la seguridad de redes y de la información como un interés legítimo (Art. 6(1)(f)). No necesitas consentimiento para investigar un DDoS, fuerza bruta, o intento de intrusión.
- Mantener registros por un período de retención limitado y definido con fines de seguridad es aceptable; también lo es bloquear o limitar la tasa de las IPs infractoras.
- Compartir registros seudonimizados (la salida
.redactedde esta habilidad) con un LLM es una medida sólida de minimización de datos (Art. 5(1)(c)): el análisis funciona de manera idéntica, y ninguna IP real sale de tu máquina.
Lo que requiere cuidado:
- Enviar registros crudos a un LLM en la nube convierte al proveedor en un encargado del tratamiento y, para procesamiento en EE. UU., en una transferencia a un tercer país (Capítulo V). Eso requiere un DPA y un mecanismo de transferencia (SCCs / Marco de Privacidad de Datos UE-EE. UU.) con el proveedor, registrado en tus registros de tratamiento — y ten en cuenta que los planes de chat de consumo y los términos comerciales/API difieren en el manejo de datos. Redactar primero (paso 0) evita la mayor parte de esto.
- El archivo de mapeo
.ipmap.tsvre-identifica cada seudónimo: trátalo como el registro crudo (acceso restringido, misma retención, nunca lo compartas ni lo subas). - Limitación de finalidad: los registros recopilados para seguridad no deben reutilizarse para perfiles de marketing/análisis sin una base legal separada.
Lo que no es legítimo:
- Publicar o compartir informes que contengan IPs de clientes reales más allá de quienes las necesiten (usa el informe seudonimizado; resuelve IPs solo donde la acción lo requiera, p. ej., un bloqueo de firewall o un informe de abuso al ISP).
- Mantener registros crudos indefinidamente "por si acaso" — establece y documenta un período de retención.
- Enriquecer las IPs de los registros con datos de terceros para identificar personas individuales (a diferencia de identificar infraestructura de ataque) — eso excede el propósito de seguridad.
Requisitos
Solo herramientas Unix estándar: bash, awk, grep, sort, uniq. El script también
puede ejecutarse de forma independiente sin Claude:
bash scripts/summarize.sh /path/to/access.log