🛡️ Playbook de Mitigación DDoS

Servidor Objetivo: 10.0.0.11

1. Detección y Análisis Inicial

Indicadores de Ataque DDoS

  • Alto uso de ancho de banda
  • Degradación del rendimiento del servidor
  • Timeouts de conexión
  • Logs con patrones de tráfico anómalo
  • Aumento inusual de conexiones simultáneas

Comandos de Diagnóstico

# Verificar conexiones activas
netstat -an | grep :80 | wc -l

# Monitorear tráfico de red
iftop -i eth0

# Verificar uso de CPU y memoria
top
htop

# Revisar logs del sistema
tail -f /var/log/apache2/access.log
tail -f /var/log/nginx/access.log

2. Contención Inmediata

A. Rate Limiting

# Configurar iptables para limitar conexiones por IP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 20 -j DROP

# Limitar nuevas conexiones por segundo
iptables -A INPUT -p tcp --dport 80 -m recent --set --name HTTP
iptables -A INPUT -p tcp --dport 80 -m recent --update --seconds 10 --hitcount 20 --name HTTP -j DROP

B. Bloqueo de IPs Específicas

# Identificar IPs atacantes desde logs
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20

# Bloquear IPs específicas
iptables -A INPUT -s [IP_ATACANTE] -j DROP

# Bloquear rangos de IP si es necesario
iptables -A INPUT -s 192.168.1.0/24 -j DROP

3. Configuración del Servidor Web

Apache

# En /etc/apache2/apache2.conf
Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

# Limitar tamaño de request
LimitRequestBody 10485760
LimitRequestFields 100
LimitRequestFieldSize 1024
LimitRequestLine 4094

Nginx

# En /etc/nginx/nginx.conf
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    server {
        limit_req zone=one burst=5;
        limit_conn addr 10;

        client_body_timeout 12;
        client_header_timeout 12;
        send_timeout 10;
        client_max_body_size 10M;
    }
}

4. Monitoreo Continuo

Scripts de Monitoreo

#!/bin/bash
# monitor_connections.sh
while true; do
    echo "$(date): Conexiones activas: $(netstat -an | grep :80 | wc -l)"
    echo "$(date): Load average: $(uptime | awk -F'load average:' '{print $2}')"
    sleep 30
done

Alertas Automáticas

# Crear alerta si conexiones superan umbral
if [ $(netstat -an | grep :80 | wc -l) -gt 1000 ]; then
    echo "ALERTA DDoS: Más de 1000 conexiones activas" | mail -s "DDoS Alert" admin@empresa.com
fi

5. Escalamiento y Recursos Adicionales

CDN y Proxy Reverso

  • Configurar Cloudflare, AWS CloudFront o similar
  • Implementar proxy reverso con Nginx
  • Activar protección DDoS en el proveedor de CDN

Contactos de Emergencia

  • ISP/Proveedor de Hosting: [Número de contacto]
  • Equipo de Seguridad: [Contacto interno]
  • Proveedor CDN: [Soporte técnico]

6. Post-Incidente

Análisis Forense

# Guardar logs para análisis
cp /var/log/apache2/access.log /backup/ddos_incident_$(date +%Y%m%d).log
cp /var/log/syslog /backup/system_ddos_$(date +%Y%m%d).log

Documentación

  • Hora de inicio y fin del ataque
  • IPs de origen identificadas
  • Tipo de ataque (volumétrico, de protocolo, de aplicación)
  • Medidas tomadas y su efectividad
  • Impacto en servicios
  • Lecciones aprendidas

7. Prevención Futura

Hardening del Servidor

  • Actualizar sistema operativo y aplicaciones
  • Configurar firewall robusto
  • Implementar fail2ban
  • Configurar backup automático

Monitoreo Proactivo

  • Configurar alertas de tráfico anómalo
  • Implementar herramientas como Nagios o Zabbix
  • Establecer baselines de tráfico normal

Este playbook debe adaptarse según la infraestructura específica y mantenerse actualizado con las mejores prácticas de seguridad.