CVE-2023-44487 - HTTP/2 ラピッド リセット攻撃
17170
Created On 10/11/23 19:12 PM - Last Modified 10/07/24 16:10 PM
Question
CVE-2023-44487 - HTTP/2 Rapid Reset Attack とは?
Answer
ここ数か月(2023年8月から10月)に、ラピッドリセット攻撃として知られるHTTP/2プロトコルのセキュリティ脆弱性が浮上しました。 この攻撃は、プロトコルの特定の機能を利用して、エンドポイントが要求フレームの直後にRST_STREAMフレームを送信することで、要求を迅速にリセットできるようにします。
HTTP/1.1 と HTTP/2 の違い
- HTTP/1.1 では、要求は次々に処理されます。 サーバーは要求を読み取り、処理し、応答を書き込み、次の要求に進みます。
- HTTP/2 では、クライアントは 1 つの TCP 接続で複数の同時ストリームを開くことができます。 各ストリームは HTTP 要求に対応します。 理論的には、サーバーは同時にオープンするストリームの最大数を制御できますが、実際には、クライアントは要求ごとに複数のストリームを開くことができ、サーバーはこれらの要求を並列に処理します。
攻撃の仕組み
ラピッドリセット攻撃は、この能力を悪用して機能します。 攻撃者は、典型的なHTTP/2攻撃と同様に、多数のストリームを同時に開くことで攻撃を開始します。 ただし、攻撃者は、各要求に対するサーバーまたはプロキシからの応答を待つ代わりに、各要求を送信した直後にすばやくキャンセルします。この攻撃の主な利点は、ストリームを即座にリセットできることにあります。 これにより、各接続で同時に無制限の数の要求を同時に処理できます。 リクエストを明示的にキャンセルすることで、攻撃者は同時オープンストリームの数の制限を超えることはありません。 その結果、処理中の要求の数は、ラウンドトリップ時間 (RTT) によって決定されるのではなく、使用可能なネットワーク帯域幅によってのみ決定されます。
出典: グーグル
HTTP/2 ラピッド リセット攻撃の結果として、サービス拒否 (サーバー リソースの消費) が発生する可能性があります。 この攻撃手法では、多数のストリームを連続してキャンセルできるため、サーバー側のリソースが枯渇します。 重要なのは、リクエストがキャンセルされてもHTTP/2接続が開いたままであることです。Webサービスプロバイダーと開発者は、この脆弱性を認識し、潜在的な攻撃からシステムを保護するために必要な対策を講じることが重要です。
カバレッジ情報
パロアルトネットワークスは、2023年10月16日にUTID:40152および94441とhttp2デコーダーのアップデートをリリースしました。 シグネチャの詳細については、ThreatValut (https://threatvault.paloaltonetworks.com/) でこれらの脅威 ID を検索してください。パロアルトネットワークス製品への影響の詳細については、製品アドバイザリのリンクをご覧ください https://security.paloaltonetworks.com/CVE-2023-44487
Additional Information
サポート ドキュメント、警告、またはその他の役立つ背景情報へのリンク (厳密には現象、環境、原因、または解決策ではありません)。
- https://cloud.google.com/blog/products/identity-security/how-it-works-the-novel-http2-rapid-reset-ddos-attack
- https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/
- https://arstechnica.com/security/2023/10/how-ddosers-used-the-http-2-protocol-to-deliver-attacks-of-unprecedented-size/
- https://security.paloaltonetworks.com/CVE-2023-44487
- https://nvd.nist.gov/vuln/detail/CVE-2023-44487