
Strumento per testare mitigazioni ed esposizione all'attacco DDoS Rapid Reset (CVE-2023-44487)
Rapid Reset Client è uno strumento per testare le mitigazioni e l'esposizione a CVE-2023-44487 (vettore di attacco DDoS Rapid Reset). Implementa un client HTTP/2 minimale che apre un singolo socket TCP, negozia TLS, ignora il certificato e scambia frame SETTINGS. Il client invia quindi rapidi frame HEADERS seguiti da frame RST_STREAM. Monitora (ma non gestisce) i frame del server dopo la configurazione iniziale, tranne che per inviarli a stdout. Questa funzionalità può essere facilmente rimossa dal sorgente se risulta troppo fastidiosa.
Testato su go1.21.3 su arm64.
git clone https://github.com/secengjeff/rapidresetclient.git
cd rapidresetclient
go get golang.org/x/net/http2
go get golang.org/x/net/http2/hpack
go build -o rapidresetclient
requests: Numero di richieste da inviare (default 5)
url: URL del server (default https://localhost:443)
wait: Tempo di attesa in millisecondi tra l'avvio dei worker (default 0)
delay: Ritardo in millisecondi tra l'invio dei frame HEADERS e RST_STREAM (default 0)
concurrency: Numero massimo di worker simultanei (default 0)
Invia 10 richieste HTTP/2 (frame HEADERS e RST_STREAM) su una singola connessione a https://example.com utilizzando 5 worker, un ritardo di 10 ms tra l'invio dei frame HEADERS e RST_STREAM e un tempo di attesa di 100 ms tra ogni invocazione.
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - Pacchetto che espone primitive HTTP/2 di basso livello
http2/hpack - Pacchetto di compressione delle intestazioni HTTP/2
Vedi anche la lista dei contributori
Questo progetto è concesso in licenza secondo i termini della Apache License - consulta il file LICENSE per i dettagli
Questo lavoro si basa sull'analisi iniziale di CVE-2023-44487 di Juho Snellman e Daniele Iamartino di Google.