
HTTP/2攻撃シミュレーション&防御ラボ - Slowloris、Rapid Reset(CVE-2023-44487)、HPACK Bomb攻撃に対する5層の防御を備えています。純粋なPythonとrawソケット、h2ライブラリで構築。
純粋なPythonでゼロから構築されたHTTP/2攻撃シミュレーション&防御ラボ。
脆弱なサーバーに対して3つの実世界のHTTP/2攻撃をシミュレートし、 その後、強化されたサーバー上で5つの防御層がすべての3つの攻撃をブロックすることを実演します。
| 攻撃 | 手法 | 影響 |
|---|---|---|
| Slowloris | ストリームを開いたままEND_STREAMを送信しない | RAM枯渇 |
| Rapid Reset | RST_STREAMフラッド (CVE-2023-44487) | CPU枯渇 |
| HPACK Bomb | リクエストごとに300以上のヘッダー | メモリ割り当て攻撃 |
| 防御 | 方法 |
|---|---|
| Slowloris ウォッチドッグ | バックグラウンドスレッドがアイドル接続を強制終了 |
| Rapid Reset バン | 10回のRST後にIPを永続的に禁止 |
| ヘッダーフラッドブロック | ヘッダーが25を超えるとストリームをリセット |
基本サーバー → 0/3 ブロック (0%) 強化サーバー → 3/3 ブロック (99%)
pip install h2
# Terminal 1
python3 basic_server.py
# Terminal 2
python3 hardened_server.py
# Terminal 3
python3 compare.py
| レートリミッター | 毎分60リクエストを超えるとIPを禁止 |
| ストリーム上限 | MAX_CONCURRENT_STREAMS = 20 |