HTTP/2の脆弱性を悪用したHTTP/2 Rapid Reset Attackによる史上最大規模のDDoS攻撃とは

石川英典

Google、Cloudflare、Amazonが公表した脆弱性CVE-2023-44487 HTTP/2 Rapid Reset Attackについて説明します。HTTP/2を悪用し多数のリクエストを送り、その後すぐにキャンセルしサーバに大きな負担をかけます。これにより正常なリクエストとレスポンスが上書きされ、サービスが停止します。全てのHTTP/2対応サービス・ソフトウェアが影響を受けるため、大きな影響範囲となっています。KUSANAGIでは、Apache HTTPDとNginxに対応した対策を提供しており、WAF導入など一般的な対策やミドルウェアのアップデートも勧めています。

プライム・ストラテジー「KUSANAGI」開発チームの石川です。

2023年10月10日に GoogleCloudflareAmazon より公表された脆弱性 CVE-2023-44487 HTTP/2 Rapid Reset Attack について紹介します。

HTTP/2 Rapid Reset Attack とは

まず最初に HTTP/2 について理解する必要があります。

HTTP/2 はWebサーバとWebブラウザの間でHTMLコンテンツやCSS、JavaScript、画像といったデータをやりとりするために用いられる HTTP (Hypertext Transfer Protocol) のバージョン2です。

HTTP/2 はその前身となる HTTP/1.1 (バージョン1.1) の弱点であったHTTPパイプライニングを解消するように設計されたものです。HTTPパイプライニングやHTTP/1.1、および、HTTP/3に関しては KUSANAGI 9 が対応した HTTP/3 とは を参照ください。
HTTP/2 では、1つのHTTPコネクションの中にデータを転送する複数のストリームを立てるとができます。これにより、HTTPのリクエストを複数同時に送信し、サーバ側もリクエストの順序に関係なくレスポンスを同時に返信することができます。この機能を Stream Multiplexing と呼びます。

Rapid Reset Attack は Stream Multiplexing を悪用し、多数のリクエストを投げるのに続いて即時キャンセルを送信することで、クライアント(攻撃者)の負荷を抑えつつ、サーバ側に負荷をかけます。これにより、ターゲットとなったWebサーバの本来応答すべきWebサイトへのリクエストとレスポンスの処理を上回らせることで、Webサーバがサービス応答できなくなります。
このような攻撃を DoS (Denial of Service) または DDoS (Distributed Denial of Service) 攻撃と言います。

この攻撃のポイントは HTTP/2 そのものが持つ機能を悪用しているということです。そのため、HTTP/2 に対応したサービス・ソフトウェアは全て影響を受けます。ここ数年で多くのサービス・ソフトウェアが HTTP/2 に対応していることで、かえって影響範囲が広がってしまっています。

KUSANAGIにおける対策

ここではKUSANAGIでWebサイトを運用しているケースを前提に対策を説明します。

KUSANAGI の環境でWebサイトを運用している場合は、使用しているWebサーバによって対策が異なります。

Apache HTTPD の場合

KUSANAGIでWebサーバにApache HTTPDを利用している場合は、CVE-2023-44487 HTTP/2 Rapid Reset Attack に対応したミドルウェアにアップデートしてください。

Nginx の場合

Nginxでは パフォーマンス上の理由から、デフォルトで HTTP/2 のストリームの数を最大で 128 に制限しています。また、同時にHTTPのコネクションを1000個まで保持するようにしています。このためNginxにおいては、Webサーバの処理性能を上回る速度で即時キャンセルを送信することが 難しくなっています

KUSANAGIではNginxのデフォルト設定から変更を行っていないため、NginxでWebサーバを運用している場合は、仮に攻撃を受けたとしてもWebサーバがダウンする可能性は低いと考えられます。

なお、KUSANAGI では更にNginxで他のDoS攻撃を防止する機能として ratelimit コマンドを用意しています。
詳細は kusanagi ratelimit で行うDoS攻撃対策解説 を参照してください。

一般的な対策

一般的な対策としては WAF (Web Application Firewall) を導入することです。

この脆弱性はGoogle、Cloudflare、Amazonが公表しているように、各クラウドプラットフォームにおいて攻撃を検知したことに端を発しています。各クラウドではそのエッジにおいて既に対策を実施していると発表しているように、WAFを入れることで同一IPアドレス等からの不必要な多重リクエストを遮断することが期待できます。

KUSANAGIの環境であっても、WAFを導入することは有用です。KUSANAGIの手前で過度のトラフィックを遮断することができるため、KUSANAGIそのものへの負荷やネットワーク転送を防止することができます。

まとめ

CVE-2023-44487 HTTP/2 Rapid Reset Attack では HTTP/2 そのものの仕様の穴を突くことにより、 HTTP/2 に対応した幅広いサービス・ソフトウェアが影響を受けるということなりました。

脆弱性は Log4jOpenSSL のようにソフトウェアの実装上の誤りや不備を付いて行われることが多いです。この脆弱性もMicrosoft をはじめとして多くのベンダーでセキュリティ対応をリリースしています。
KUSANAGI も 更新情報 において、脆弱性に対応したミドルウェアのアップデートをリリースしていますので、アップデートを欠かさないようにしてください。

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解