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:

  1. Preservar: snapshot del disco/RAM antes de modificar nada.
  2. Adquirir: copia bit a bit (dd, FTK Imager).
  3. Analizar: sobre la copia, nunca sobre el original.
  4. 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):

  1. Pre-engagement (definir scope, contrato).
  2. Intelligence gathering (OSINT).
  3. Threat modeling.
  4. Vulnerability analysis.
  5. Exploitation.
  6. Post-exploitation (escalación, persistencia).
  7. 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/buscar usaba 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:

  1. Inmediatas:

    • Auditar todos los endpoints en busca de patrones similares.
    • Reactivar WAF con reglas afinadas.
  2. A 30 días:

    • Migrar todos los queries a ORM con prepared statements.
    • Agregar test de SQLi automatizado en CI con sqlmap.
  3. 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:

  1. Fundamentos y criptografía — la matemática que hace posible la seguridad.
  2. Autenticación y autorización — cómo identificar correctamente y controlar acceso.
  3. Vulnerabilidades web — los ataques más comunes y cómo prevenirlos.
  4. Seguridad de redes y sistemas — defensa en profundidad a nivel de infraestructura.
  5. 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?).


5.7 Para profundizar

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):

  1. Reconocimiento (cap. 1) — Nmap, dirb, descubrí endpoints, tecnologías, versiones.
  2. Explotación de 5 vulnerabilidades del OWASP Top 10 (cap. 3) — para cada una: CVE/categoría, request/payload, evidencia (screenshot), impacto.
  3. Recolección de IoCs (cap. 5) — IPs, hashes, patrones de URL del ataque.
  4. 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.
  5. 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.
  6. 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.