Respuesta a incidentes y forense
"No es cuestión de SI tu sistema será atacado, sino CUÁNDO. Lo que diferencia a las empresas es qué tan bien responden cuando pasa."
Qué vas a aprender en este capítulo
Hasta ahora cubrimos prevención. Pero las brechas ocurren incluso en sistemas bien diseñados. Este capítulo cubre qué hacer cuando algo malo pasa: detección, contención, erradicación, recuperación, y aprendizaje. Termina con una visión del campo de la ciberseguridad como carrera profesional.
5.1 El ciclo NIST de respuesta a incidentes
📐 Fundamento
NIST SP 800-61 define 6 fases del ciclo de incidentes:
┌─────────────────────────────┐
│ ▼
[Preparación] → [Detección] → [Contención] → [Erradicación] → [Recuperación] → [Lecciones aprendidas]
│
▲────────────────────────────────────────────────────────────────────────────────┘
1. Preparación (antes del incidente):
- Plan de respuesta a incidentes documentado.
- Equipo CSIRT (Computer Security Incident Response Team) entrenado.
- Herramientas instaladas y probadas (forense, comunicación segura).
- Contactos de proveedores, autoridades, asesores legales.
- Tabletop exercises: simular incidentes en mesa redonda.
2. Detección y análisis:
¿Cómo sabés que hubo un incidente?
- Alertas de SIEM (Security Information and Event Management).
- Reportes de usuarios o clientes.
- Detección por terceros (banco, proveedor de seguridad).
- Anomalías en métricas (tráfico inusual, latencia).
Triaje:
- ¿Es un falso positivo o real?
- Severidad: ¿alta, media, baja?
- Alcance: ¿cuántos sistemas afectados?
3. Contención:
Detener el daño sin destruir evidencia.
- Corto plazo: aislar sistemas comprometidos (desconectar de la red).
- Largo plazo: parches, cambios de credenciales, segmentación.
4. Erradicación:
Eliminar la causa raíz: malware, accesos no autorizados, vulnerabilidades.
- Reinstalar desde cero (no "limpiar" — los rootkits modernos son difíciles de detectar).
- Cambiar todas las credenciales potencialmente comprometidas.
- Aplicar parches faltantes.
5. Recuperación:
Restaurar operaciones normales:
- Restaurar desde backups verificados (asegurarse de que no estén infectados).
- Monitoreo intensivo durante semanas para detectar persistencia.
- Comunicación con stakeholders.
6. Lecciones aprendidas:
Postmortem dentro de las 2 semanas:
- ¿Qué pasó?
- ¿Cómo lo detectamos?
- ¿Cuánto tardamos en contenerlo?
- ¿Qué pudimos hacer mejor?
- Cambios concretos para prevenir reincidencia.
5.2 SIEM y monitoreo de seguridad
💡 Intuición
Cada servidor, firewall, app y BD genera logs. Sin un sistema centralizado, nadie los lee — y los ataques pasan desapercibidos.
Un SIEM (Security Information and Event Management) recolecta logs de toda la infraestructura, los correlaciona, y alerta sobre patrones sospechosos.
📐 Fundamento
Qué loggear (mínimo):
- Autenticación: éxitos y fallos, con IP y user agent.
- Autorización: accesos denegados, escalación de privilegios.
- Cambios: configuración, usuarios, permisos.
- Errores 4xx/5xx en endpoints sensibles.
- Operaciones críticas: pagos, eliminación de datos, exportación masiva.
Qué NO loggear nunca:
- Contraseñas (ni siquiera intentos fallidos con la contraseña).
- Tokens completos (loggear solo prefijo o hash).
- Números de tarjeta, CVV.
- Datos personales sensibles innecesariamente (GDPR, LGPD).
Ejemplo de log estructurado (JSON):
import logging
import json
from pythonjsonlogger import jsonlogger
logger = logging.getLogger('seguridad')
handler = logging.StreamHandler()
handler.setFormatter(jsonlogger.JsonFormatter())
logger.addHandler(handler)
logger.warning("Intento de login fallido", extra={
'evento': 'AUTH_FAIL',
'usuario': email,
'ip': request.remote_addr,
'user_agent': request.user_agent.string,
'timestamp': datetime.utcnow().isoformat()
})
Stack ELK (Elasticsearch + Logstash + Kibana) o equivalentes:
[Apps] → [Filebeat] → [Logstash] → [Elasticsearch] → [Kibana]
↑
[Alertmanager / SIEM]
Reglas de detección:
SI 5 logins fallidos del mismo usuario en 5 minutos
→ ALERTA: posible brute-force
SI un usuario accede desde IPs en 2 países diferentes en 1 hora
→ ALERTA: cuenta posiblemente comprometida
SI hay > 100 requests a /api/admin/* desde la misma IP en 10s
→ ALERTA: posible scan o ataque
SI un endpoint que normalmente devuelve 200 empieza a devolver 500
en > 10% de requests
→ ALERTA: posible ataque o falla
SOAR (Security Orchestration, Automation and Response): automatizar la respuesta a alertas (ej: bloquear IP automáticamente, deshabilitar usuario).
5.3 Análisis forense básico
📐 Fundamento
Cadena de custodia: la evidencia debe ser inalterable y rastreable. En investigaciones legales, la cadena rota = evidencia inadmisible.
Pasos del análisis forense:
- Preservar: snapshot del disco/RAM antes de modificar nada.
- Adquirir: copia bit a bit (
dd, FTK Imager). - Analizar: sobre la copia, nunca sobre el original.
- Documentar: cada paso, hora, hash de los archivos.
Herramientas:
- Autopsy / Sleuth Kit — análisis de discos.
- Volatility — análisis de memoria RAM.
- Wireshark — análisis de capturas de red.
- YARA — pattern matching para identificar malware.
Comandos útiles para investigación inicial:
# Procesos sospechosos
ps auxf | grep -v -E "kernel|systemd"
top -c
# Conexiones de red activas
ss -tunap
netstat -anp
# Usuarios logueados
who
last
# Archivos modificados recientemente
find / -mtime -1 -type f 2>/dev/null
# Archivos con SUID inusuales
find / -perm -4000 -type f 2>/dev/null
# Logs sospechosos
journalctl --since "1 hour ago" | grep -iE "fail|error|deny"
grep "Failed password" /var/log/auth.log
# Hash de archivo (para verificar integridad o reportar a VirusTotal)
sha256sum archivo_sospechoso
# Buscar texto específico en archivos
grep -r "atacante" /var/www/
# Capturar tráfico para análisis
tcpdump -i eth0 -w captura.pcap
Indicators of Compromise (IoC):
- Hashes de malware conocido.
- IPs maliciosas (publicadas por ThreatIntel feeds).
- Dominios de C2 (Command & Control).
- Patrones de URLs sospechosas.
# Verificar hash de archivo en VirusTotal
import requests
API_KEY = os.environ['VT_API_KEY']
hash_archivo = "abc123..."
response = requests.get(
f"https://www.virustotal.com/api/v3/files/{hash_archivo}",
headers={'x-apikey': API_KEY}
)
data = response.json()
print(f"Detectado por: {data['data']['attributes']['last_analysis_stats']['malicious']} engines")
5.4 Red Team, Blue Team y Purple Team
📐 Fundamento
Red Team (atacantes éticos):
- Simulan ataques reales para evaluar defensas.
- Pentesting (Penetration Testing): alcance limitado, busca vulnerabilidades específicas.
- Red team engagement: alcance amplio, simula APT (Advanced Persistent Threat) durante semanas/meses.
Metodología (PTES):
- Pre-engagement (definir scope, contrato).
- Intelligence gathering (OSINT).
- Threat modeling.
- Vulnerability analysis.
- Exploitation.
- Post-exploitation (escalación, persistencia).
- Reporting.
Herramientas:
| Categoría | Herramientas |
|---|---|
| Reconocimiento | nmap, masscan, theharvester |
| Web | Burp Suite, OWASP ZAP, sqlmap |
| Exploitation | Metasploit, Cobalt Strike |
| Password | Hashcat, John the Ripper, hydra |
| Post-exploitation | Mimikatz, BloodHound, Empire |
Blue Team (defensores):
- Monitoreo (SOC — Security Operations Center).
- Detección y respuesta.
- Hardening, patching, mejora continua.
- Threat hunting (búsqueda proactiva de amenazas).
Purple Team: colaboración entre Red y Blue. El Red ataca, el Blue defiende, comparten conocimiento para mejorar ambos.
Career paths en ciberseguridad:
- SOC Analyst — Tier 1 (triaje), Tier 2 (investigación), Tier 3 (incident response).
- Pentester / Red Teamer — atacante ético.
- Security Engineer — diseño e implementación de controles.
- Security Architect — diseño de sistemas seguros desde cero.
- CISO (Chief Information Security Officer) — liderazgo ejecutivo.
- DFIR (Digital Forensics & Incident Response) — especialista en respuesta.
- AppSec — seguridad de aplicaciones.
- Cloud Security — específico de AWS/GCP/Azure.
Certificaciones populares:
| Nivel | Certificación |
|---|---|
| Entry | CompTIA Security+, CySA+ |
| Mid | OSCP (Offensive Security), CEH |
| Senior | OSCE, OSEP, GIAC |
| Management | CISSP, CISM |
| Cloud | AWS Security Specialty, Azure SC-100 |
🛠️ En la práctica
Postmortem ejemplo: La Esquina Cloud — incidente del 15 de marzo 2026
Resumen: Filtración de 12,500 emails de clientes a través de SQL injection en endpoint de búsqueda.
Timeline:
- 14:32: Atacante explota SQLi en
/api/buscar?q= - 14:35: Comienza extracción de datos via UNION SELECT
- 14:48: Atacante obtiene base completa de emails
- 16:20: SOC detecta anomalía: 1,200 requests inusuales desde una IP
- 16:23: IP bloqueada, alerta enviada al equipo
- 16:45: Investigación confirma SQLi exitosa
- 17:30: Endpoint vulnerable parchado (uso de prepared statements)
- 18:00: Notificación a usuarios afectados
- 18:30: Cambio forzado de contraseñas
Causa raíz:
- Endpoint
/api/buscarusaba concatenación de strings en SQL (legacy code de 2023). - No estaba cubierto por las pruebas automáticas de seguridad.
- WAF tenía la regla de SQLi desactivada por falsos positivos en otro endpoint.
Acciones correctivas:
-
Inmediatas:
- Auditar todos los endpoints en busca de patrones similares.
- Reactivar WAF con reglas afinadas.
-
A 30 días:
- Migrar todos los queries a ORM con prepared statements.
- Agregar test de SQLi automatizado en CI con sqlmap.
-
A 90 días:
- Pentesting trimestral con empresa externa.
- Programa de bug bounty.
- Capacitación obligatoria en secure coding para desarrolladores.
Cómo lo detectamos: alerta de SIEM por volumen anómalo de requests. Tiempo de detección: 1h 48min. Objetivo: < 30 min.
Lecciones:
- "Legacy code que funciona" no es excusa para no auditarlo.
- Falsos positivos en WAF deben investigarse, no desactivar la regla.
- La detección debe ser más rápida — invertir en mejor SIEM.
5.5 Cierre del libro
Este libro cubrió el panorama completo de la seguridad informática moderna:
- Fundamentos y criptografía — la matemática que hace posible la seguridad.
- Autenticación y autorización — cómo identificar correctamente y controlar acceso.
- Vulnerabilidades web — los ataques más comunes y cómo prevenirlos.
- Seguridad de redes y sistemas — defensa en profundidad a nivel de infraestructura.
- Respuesta a incidentes — qué hacer cuando algo falla.
La seguridad no es un destino — es un proceso continuo. Las amenazas evolucionan, las defensas también deben hacerlo. La mejor inversión es construir un equipo y una cultura que entienda y priorice la seguridad desde el diseño.
5.6 Ejercicios
✏️ Ejercicio 5.1 — Diseño de plan de respuesta
Diseñá un plan de respuesta a incidentes para La Esquina Cloud. Incluí:
a. Roles del equipo CSIRT (al menos 4). b. Definición de severidades (P1-P4) con tiempos de respuesta. c. Canal de comunicación durante el incidente. d. Plan de comunicación pública (¿cuándo y cómo notificar a clientes?).
Solución
a. Roles del CSIRT:
| Rol | Responsabilidad |
|---|---|
| Incident Commander | Coordina la respuesta, toma decisiones críticas |
| Tech Lead | Lidera investigación técnica y mitigación |
| Communications Lead | Maneja comunicación interna y externa |
| Legal Counsel | Asesora sobre obligaciones legales (notificación a autoridades) |
| Customer Support Lead | Maneja consultas de clientes |
b. Severidades:
| Nivel | Definición | Respuesta |
|---|---|---|
| P1 (Crítico) | Brecha activa, datos sensibles comprometidos, sistema caído | Equipo se reúne en < 15 min, 24/7 |
| P2 (Alto) | Vulnerabilidad explotable detectada, no confirmada brecha | < 1 hora, horario laboral extendido |
| P3 (Medio) | Vulnerabilidad detectada sin explotación inmediata | < 1 día laboral |
| P4 (Bajo) | Hallazgo en auditoría, sin riesgo inmediato | < 1 semana |
c. Canal de comunicación:
- Canal Slack
#incident-responsepara coordinación técnica. - Sala de Zoom dedicada (Conf Bridge) siempre abierta durante P1/P2.
- Documento Google Doc compartido con timeline en vivo.
d. Comunicación pública:
- 0-24h: preparar comunicado interno; sin comunicación pública (estamos investigando).
- 24-72h: si hay confirmación de brecha de datos personales:
- Notificación a autoridades (en El Salvador: Defensoría del Consumidor).
- Email a usuarios afectados explicando: qué pasó, qué datos, qué hacer (cambiar contraseña, monitorear cuenta).
- Página dedicada en el sitio con detalles y FAQ.
- Post-incidente: publicar postmortem público (sin detalles que ayuden a futuros atacantes).
Principios:
- Honestidad: explicar qué pasó sin minimizar.
- Acción: dar pasos concretos al usuario afectado.
- Empatía: reconocer el daño causado.
- Cumplimiento: notificar a autoridades dentro de plazos legales (GDPR: 72h).
5.7 Para profundizar
- NIST SP 800-61 — Computer Security Incident Handling Guide.
- SANS Institute — cursos y certificaciones de ciberseguridad.
- Try Hack Me, Hack The Box, PortSwigger Academy — práctica hands-on.
- OWASP Project — comunidad de seguridad de aplicaciones.
5.X Mini-proyecto integrador
🏗️ Proyecto final — Auditoría completa de una app vulnerable
Alcance: atacar y defender una app deliberadamente vulnerable, documentando como un equipo Purple (Red + Blue) profesional.
Setup: corré localmente DVWA (Damn Vulnerable Web App) o OWASP Juice Shop en Docker. Ambas son legales, gratuitas y diseñadas para esto.
Entregables (PDF de 8-10 páginas, formato de informe pentest):
- Reconocimiento (cap. 1) — Nmap, dirb, descubrí endpoints, tecnologías, versiones.
- Explotación de 5 vulnerabilidades del OWASP Top 10 (cap. 3) — para cada una: CVE/categoría, request/payload, evidencia (screenshot), impacto.
- Recolección de IoCs (cap. 5) — IPs, hashes, patrones de URL del ataque.
- Defensa (cap. 1, 2, 4) — configurá un WAF (ModSecurity), un IDS (Suricata) o reglas de firewall que bloqueen tus propios ataques. Repetí los exploits y verificá que se detectan.
- Plan de respuesta a incidente (cap. 5) — escribí un runbook de 1 página: qué hacés en los primeros 60 minutos si detectás el patrón en producción.
- Postmortem blameless — simulación de uno: causa raíz, lecciones, action items con dueño y fecha.
Criterio de éxito: un compañero puede ejecutar tu PoC siguiendo el reporte y reproducir cada hallazgo.
Tiempo estimado: 3 semanas. Es portafolio fuerte para roles de seguridad — más concreto que cualquier certificado.
Definiciones nuevas: respuesta a incidentes, NIST 800-61, CSIRT, SOC, SIEM, SOAR, IoC (Indicator of Compromise), análisis forense, cadena de custodia, Red Team, Blue Team, Purple Team, pentesting, OSCP, CISSP, postmortem, threat hunting, APT.