Googleは2023年8月に、同社の提供サービスやクラウドの顧客を標的に「HTTP/2ラピッドリセット攻撃」と呼ばれる新種のDDoS攻撃が行われていたと発表した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Googleは2023年10月11日(米国時間)、同社の提供サービスやクラウドの顧客を標的に「HTTP/2(Hypertext Transfer Protocol Version 2)ラピッドリセット攻撃」と呼ばれる新種のDDoS攻撃が2023年8月ごろ行われていたと発表した。
Googleによると、2023年8月に行われたHTTP/2ラピッドリセット攻撃は、過去に報告されたどの攻撃よりもはるかに大規模であり、最大で毎秒3億9800万リクエストを記録した。2分間の攻撃で発生したリクエスト数は、2023年9月のウィキペディアの記事閲覧数よりも多いという。この攻撃はHTTP/2の脆弱(ぜいじゃく)性を悪用した攻撃として「CVE-2023-44487」が割り当てられている。
一方、この攻撃は、Googleのロードバランシングインフラストラクチャによりほぼ阻止され、サービスの停止には至らなかった。影響は最小限にとどまったが、GoogleのDDoSレスポンスチームはこの攻撃を検証し、同様の攻撃を軽減するための追加防御に取り組んだ。
HTTP/2ラピッドリセット攻撃は、各TCPコネクションを効率化するHTTP/2のコア機能である「ストリーム多重化」を悪用するものだ。
攻撃者はHTTP/2のストリーム多重化機能を使い、単一のTCP接続上で一度に大量のストリームを開く。だが、サーバやプロキシからのレスポンスを待つことなく、HTTPリクエストを即座にキャンセルする。これを繰り返すのがHTTP/2ラピッドリセット攻撃だ。
一般的なHTTP/2サーバの実装では、サーバはキャンセルされたリクエストに対して、新しいストリームデータ構造の割り当て、クエリの解析とヘッダ展開、URLのリソースへのマッピングなどが実行される。一方、攻撃者はリクエストの送信にほとんどコストを払わない。これはサーバと攻撃者の間に悪用可能なコストの非対称性を生み出す。
攻撃者が得られるもう一つの利点は、リクエスト作成直後にリクエストをキャンセルすることで、サーバがリクエストに対してレスポンスを返さないということにある。レスポンスが書き込まれる前にリクエストをキャンセルすることで、サーバ/プロキシから攻撃者への帯域幅を減らすことができ、効率的な攻撃が可能になる。
Googleによると、HTTP/2ラピッドリセット攻撃を巡っては幾つかの亜種も確認されているという。
HTTP/2ラピッドリセット攻撃の対策は、個々のリクエストをブロックするだけでは有効な対策にはならない。クライアントがリクエストをキャンセルすることは本質的に不正ではなく、ユーザーがページから移動したためにブラウザがリクエストしたリソースを必要としなくなった場合など、リクエスト処理をよりよく管理するためにHTTP/2プロトコルにもともと存在する機能だからだ。
接続統計を追跡してさまざまなシグナルとビジネスロジックを使用し、各接続がどの程度有用であるかを判断することが対策の中心となる。あるコネクションに100以上のリクエストがあり、そのうちの50%以上がキャンセルされた場合、TCP接続をブロックする候補となり得るだろうと、Googleは述べている。
HTTP/2ラピッドリセット攻撃は、あらゆる規模のサービスに重大な影響を与える可能性がある。Googleは、HTTP/2サービスを提供している全てのプロバイダーが、同攻撃への対策を講じる必要があると述べている。
「一般的なWebサーバやプログラミング言語のソフトウェアパッチやアップデートが適用された際には、これらの修正プログラムをできるだけ早く適用することを推奨する」
Copyright © ITmedia, Inc. All Rights Reserved.