1. 概要
米Google、米Cloudflare、米Amazonは10月10日、同社の提供サービスやクラウドの顧客を狙った新しいDDoS攻撃※1 を8月頃に受けていたことを発表しました。「HTTP/2 Rapid Reset Attack」という名がついた本攻撃は、最大で秒間3億9800万リクエストを記録し、たった2分間の攻撃でWikipedia1ヶ月分のアクセス数を超える通信量だったといわれています。
HTTP/2の脆弱性を悪用した本攻撃には、共通脆弱性識別子「CVE-2023-44487」が割り当てられました。 今回の記事では、「HTTP/2 Rapid Reset Attack」について解説を行います。本稿がWebアプリケーションのセキュリティ対策の一助になれば幸いです。
※1 DDoS(Distributed Denial of Service)攻撃:
対象となるWebサーバなどに対して、複数のPCから大量の通信を送り付けて正常なサービス提供を妨げる攻撃
2. HTTP/2 Rapid Reset Attackについて
2.1 HTTP/2について
HTTP(Hyper Text Transfer Protocol)は、Web上で情報をやりとりするためのプロトコル(通信規則)のことで、このページを開く時もHTTPを用いてクライアントとサーバの間で情報のやりとりが行われています[1]。
HTTP/1.1とHTTP/2の比較を図1に示します。従来使われてきたHTTP/1.1では、Webサーバに対してリクエストを1つずつ送り、レスポンスが返ってきてから次のリクエストを送るという処理を順番に行います。例えば、Webページに複数の画像がある場合は1枚目の画像が読み込まれてから2枚目の画像の読み込みが始まります。一方、HTTP/2では、複数のリクエストを同時に処理できます。そのため、Webページに複数の画像がある場合はすべての画像を同時に読み込むことができ、これにより通信の効率が向上してWebページの読み込みが早くなります[2]。
図1:HTTP/1.1とHTTP/2の比較
2.2 HTTP/2 Rapid Reset Attackの攻撃手法
2.1章で紹介したように、HTTP/2は効率性を重視して設計されたプロトコルとなっています。しかし、この効率性が悪用されてDDoS攻撃の効率性も上げてしまったものがHTTP/2 Rapid Reset Attackとなります。
HTTP/2において、クライアント側はRST_STREAM(リセットストリーム)を送信することで、その前のリクエストをキャンセルすることができます。この処理はクライアント側から一方的に実行でき、サーバ側がRST_STREAMを受け取るとリクエストのキャンセルが即座に反映されます。本脆弱性がHTTP/2 Rapid Reset Attackと呼ばれる理由は、クライアント側がリクエストを送信した後すぐにRST_STREAMを送信できてしまう仕様に基づいているからです[3]。
この機能を悪用したHTTP/2 Rapid Reset Attackの攻撃手法を図2に示します。まず、攻撃者は一度に大量のリクエストをサーバに送ります。そして、リクエストを送った直後に意図的にRST_STREAMを送り、すべてリクエストをキャンセルします。攻撃者はリクエストをキャンセルした後にすぐに新しいリクエストを送れる状態になるため、この操作を繰り返すことでサーバ側に送信するリクエストとRST_STREAMの数を際限なく増やせてしまいます。しかし、サーバ側ではキャンセルされたリクエストに対して一定量の処理を行う必要があるため、攻撃者側よりも処理の負担が大きくなってしまいます。このため、攻撃者が一方的にリクエストとRST_STREAMを送り続けることで、サーバ側の処理が追い付かなくなり最終的にサーバダウンを引き起こします。これが、DoS攻撃に繋がる要因となり、複数台のコンピュータを用いて一斉にこの処理を行うことでDDoS攻撃が成立します。
図2:HTTP/2 Rapid Reset Attackの攻撃手法
2.3 HTTP/2 Rapid Reset Attackの影響について
Amazon Web Service(以降AWS)では、2023年8月28日から29日にかけてAmazon CloudFrontへのHTTP/2リクエスト数が急増し、ピーク時は秒間1億5,500万リクエストという、日本国民全員が一斉にアクセスするよりも多いリクエスト数の通信が発生しました。AWSでは2日間で12件以上のHTTP Rapid Reset Attackを検知し、すべてCloudFrontによって自動的に大量アクセスによる負荷を分散し、クライアントのアプリケーションを保護したと発表しています[4]。
Cloudflare社では、2023年8月25日からHTTPサービスを対象とした大規模なDDoS攻撃を検知しました。過去実績の3倍以上のリクエスト数による大量アクセスは、Cloudflare社の既存の保護機能によって負荷が緩和されました。しかし、攻撃検知当初は、データセンター側でリクエストを処理しきれず、10%以上のクライアントで502(Bad Gateway)※2 エラーが発生していたことを報告しています[5]。また、現在は通信の緩和方法を改良し、 すべてのクライアントに対して本攻撃による影響がでていないと述べています。
※2 502(Bad Gateway):
目的のサーバが正しく動作してないため、リクエストが拒否されたことを示すエラーメッセージのこと
2.4 本脆弱性への対策
1. 現在、HTTP/2サービスを持つすべてのベンダーが本脆弱性による影響を評価し、続々とソフトウェアパッチやアップデートを公開しています。そのため、HTTP/2を用いたWebサーバやアプリケーションを利用している場合は、可能な限り早めに修正を適用することを推奨します。
2. 一般的なDoS攻撃の対策と同様に、WAF (Web Application Firewall)を導入することも有効です。WAFを導入することで同一のクライアントからの大量のリクエストを遮断することが期待できます。
3. 本脆弱性は、HTTP/1.1やHTTP/3には応用されないことがベンダーから報告されています。そのため、HTTP/2ではなく、他のHTTPを利用することでHTTP/2 Rapid Reset Attackの影響を回避することができます。
4. アップデートができずHTTP/2を利用するしかない場合でも、ベンダーから公開されている最も効果的な軽減策として図3に示すように、1つの接続で同時に送れるリクエスト数に上限を設けて、上限を超えた接続をHTTP/2サーバが閉じるように設定することが推奨されています。
図3:リクエスト数の制限による軽減策(例)
3. まとめ
本稿で説明したHTTP/2 Rapid Reset Attackは、HTTP/2そのものの仕様を逆手に取ることであらゆる規模のサービスやソフトウェアに多大な影響を及ぼす可能性があります。実際に米Google、米Cloudflare、米Amazon の大手3社のHTTPサービスがターゲットとなり、少なからずクライアント側にも影響が出ています。
脆弱性のセキュリティ対応はMicrosoft社をはじめとした多くのベンターで続々とリリースされているので、アップデートを欠かさず適用すること推奨します。
4. 参考資料
[1] 一般社団法人 日本ネットワークインフォメーションセンター
HTTPとは,2023年11月25日閲覧
https://www.nic.ad.jp/ja/basics/terms/http.html
[2] CLOUDFLARE
HTTP/2対HTTP/1.1:Webパフォーマンスにどのように影響するのか?,2023年11月25日閲覧
https://www.cloudflare.com/ja-jp/learning/performance/http2-vs-http1.1/
[3] Google Cloud
How it works: The novel HTTP/2 'Rapid Reset' DDoS attack,2023年11月25日閲覧
https://cloud.google.com/blog/products/identity-security/how-it-works-the-novel-http2-rapid-reset-ddos-attack?hl=en
[4] AWS
How AWS protects customers from DDoS events,2023年11月25日閲覧
https://aws.amazon.com/jp/blogs/security/how-aws-protects-customers-from-ddos-events/
[5] CLOUDFLARE
HTTP/2 Rapid Reset: deconstructing the record-breaking attack,2023年11月25日閲覧
https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/
5. SSKのセキュリティ運用監視サービスおよび脆弱性診断サービスについて
コロナ禍を経て急速なデジタルシフトやDXの進展により、サイバー攻撃の標的となりうる範囲は大きく広がっています。更にランサムウェアをはじめとするサイバー攻撃の脅威は増す一方となり、企業活動においてサイバーセキュリティ対策は必要不可欠な課題となっています。
SSKのセキュリティ運用監視サービスでは、24時間365日、リアルタイムでセキュリティログの有人監視をおこなっております。セキュリティ対策として様々なセキュリティ機器やサービスを導入するケースも増加しており、当社ではUTM製品をはじめ、SASE、EDR等、新しいセキュリティソリューションも監視対象としてサービス展開を行っています。また、脆弱性診断サービスでは、診断経験豊富なセキュリティエンジニアがお客様のシステムを診断し、検出された脆弱性への対策をご提案しております。Webアプリケーションだけでなくネイティブアプリケーション診断やクラウドサービス設定診断も行っています。
セキュリティ運用監視サービス:
https://www.ssk-kan.co.jp/e-gate#e-gate--02
脆弱性診断サービス:
https://www.ssk-kan.co.jp/vulnerability-assessment
※本資料には弊社が管理しない第三者サイトへのリンクが含まれています。各サイトの掲げる使用条件に従ってご利用ください。
リンク先のコンテンツは予告なく、変更、削除される場合があります。
※掲載した会社名、システム名、製品名は一般に各社の登録商標 または商標です。
≪お問合せ先≫
サービス&セキュリティ株式会社
〒150-0011
東京都渋谷区東3丁目14番15号 MOビル2F
TEL 03-3499-2077
FAX 03-5464-9977
sales@ssk-kan.co.jp