
Laboratorio de simulación y defensa de ataques HTTP/2 - Slowloris, Rapid Reset (CVE-2023-44487), ataques de bomba HPACK con 5 defensas en capas. Construido en Python puro con sockets crudos y la librería h2.
Un laboratorio de simulación de ataques y defensa HTTP/2 construido desde cero en Python puro.
Simula 3 ataques HTTP/2 reales contra un servidor vulnerable, y luego demuestra 5 capas de defensa que bloquean los 3 en un servidor reforzado.
| Ataque | Técnica | Impacto |
|---|---|---|
| Slowloris | Abrir stream, nunca enviar END_STREAM | Agotamiento de RAM |
| Rapid Reset | Inundación de RST_STREAM (CVE-2023-44487) | Agotamiento de CPU |
| HPACK Bomb | 300+ cabeceras por petición | Ataque de asignación de memoria |
| Defensa | Método |
|---|---|
| Vigilante de Slowloris | Un hilo en segundo plano elimina las conexiones inactivas |
| Bloqueo por Rapid Reset | IP bloqueada permanentemente tras 10 RSTs |
| Bloqueo de inundación de cabeceras | Restablecimiento del stream si las cabeceras superan 25 |
| Limitador de tasa | IP bloqueada tras 60 peticiones/min |
| Tope de streams | MAX_CONCURRENT_STREAMS = 20 |
Servidor básico → 0/3 bloqueados (0%) Servidor reforzado → 3/3 bloqueados (99%)
pip install h2
# Terminal 1
python3 basic_server.py
# Terminal 2
python3 hardened_server.py
# Terminal 3
python3 compare.py