
Ferramenta para testar mitigações e exposição ao ataque DDoS Rapid Reset (CVE-2023-44487)
Rapid Reset Client é uma ferramenta para testar mitigações e exposição ao CVE-2023-44487 (vetor de ataque DDoS Rapid Reset). Ele implementa um cliente HTTP/2 mínimo que abre um único socket TCP, negocia TLS, ignora o certificado e troca quadros SETTINGS. O cliente então envia quadros HEADERS rápidos seguidos por quadros RST_STREAM. Ele monitora (mas não trata) quadros do servidor após a configuração inicial, exceto para enviar para a saída padrão. Essa funcionalidade pode ser facilmente removida do código fonte se for muito irritante.
Testado em go1.21.3 em 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: Número de requisições a enviar (padrão é 5)
url: URL do servidor (padrão é https://localhost:443)
wait: Tempo de espera em milissegundos entre iniciar workers (padrão é 0)
delay: Atraso em milissegundos entre enviar quadros HEADERS e RST_STREAM (padrão é 0)
concurrency: Número máximo de workers concorrentes (padrão é 0)
Envie 10 requisições HTTP/2 (quadros HEADERS e RST_STREAM) através de uma única conexão para https://example.com usando 5 workers, um atraso de 10 ms entre enviar HEADERS e RST_STREAM, e um tempo de espera de 100 ms entre cada invocação.
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - Pacote que expõe primitivas HTTP/2 de baixo nível
http2/hpack - Pacote de compressão de cabeçalho HTTP/2
Veja também a lista de contribuidores
Este projeto está licenciado sob a Licença Apache - veja o arquivo LICENSE para detalhes
Este trabalho é baseado na análise inicial do CVE-2023-44487 por Juho Snellman e Daniele Iamartino no Google.