
Rapid Reset DDoS(CVE-2023-44487)に対する緩和策と曝露をテストするためのツール
Rapid Reset Client は、CVE-2023-44487(Rapid Reset DDoS 攻撃ベクトル)に対する緩和策と露出をテストするためのツールです。単一の TCP ソケットを開き、TLS をネゴシエートし、証明書を無視して、SETTINGS フレームを交換する最小限の HTTP/2 クライアントを実装しています。その後、クライアントは rapid な HEADERS フレームとそれに続く RST_STREAM フレームを送信します。初期セットアップ後のサーバーフレームについては、stdout に送信する以外は監視するだけで(処理はしません)。この機能が煩わしい場合は、ソースから簡単に削除できます。
go1.21.3 を 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: 送信するリクエスト数(デフォルトは 5)
url: サーバーの URL(デフォルトは https://localhost:443)
wait: ワーカーを開始する間隔の待機時間(ミリ秒)(デフォルトは 0)
delay: HEADERS フレームと RST_STREAM フレームの送信間の遅延(ミリ秒)(デフォルトは 0)
concurrency: 同時実行ワーカーの最大数(デフォルトは 0)
5 つのワーカーを使用し、HEADERS フレームと RST_STREAM フレームの送信間に 10 ミリ秒の遅延を設定し、各呼び出し間の待機時間を 100 ミリ秒として、単一の接続で https://example.com に 10 件の HTTP/2 リクエスト(HEADERS および RST_STREAM フレーム)を送信します。
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - 低レベルの HTTP/2 プリミティブを公開するパッケージ
http2/hpack - HTTP/2 ヘッダー圧縮パッケージ
contributors の一覧も参照してください。
このプロジェクトは Apache License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
この作品は、Google の Juho Snellman 氏と Daniele Iamartino 氏による CVE-2023-44487 の初期分析 に基づいています。