ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

AWSにおけるHTTP/2の脆弱性を利用した史上最大規模のDDoS攻撃「HTTP/2 Rapid Reset Attack」について

こんにちは。フォージビジョン MSPチーム の藤川と申します。

AWSは2023/10/10(現地時間)に、HTTP/2プロトコルに関する脆弱性により、 2023/8/28〜8/29にかけて、Amazon CloudFrontへのHTTP/2リクエストの異常な急増が検出され、 ピーク時には1億5,500万リクエスト/秒(RPS)を超えていたと発表しました。

aws.amazon.com

1億5,500万リクエスト/秒と言われても、どれくらいの多いのかが想像がつきませんが、 日本の人口が、1.257億(2021年時点)ですので、日本国民全体が一斉にアクセスした数を上回る規模と考えれば、とてつもない数のリクエスト数だということが伺えます。

AWSでは、HTTP/2 Rapid Reset Attackについて、以下のように発表しています。(2023/10/10時点)

  • 数分以内にこの異常なアクティビティの性質を特定し、現在HTTP/2 Rapid Reset Attackと呼ばれている新しいタイプのHTTPリクエストフラッドDDoSイベントをCloudFrontが自動的に軽減していること確認していると発表しています。

  • 9月を通じてHTTP/2 Rapid Reset Attackが発生し続けていましたが、Amazon CloudFrontやAWS Shieldなどのサービスを使用してDDoSに強いアーキテクチャを構築したAWSの顧客については、アプリケーションの可用性を保護することができたと発表しています。

  • AWSは、独自のHTTP/2対応Webサーバーを運用しているお客様に対し、影響を受けるかどうかをWebサーバーベンダーに確認し、影響を受ける場合には、この問題に対処するためにそれぞれのベンダーから最新のパッチをインストールすることを推奨すると発表しています。

本記事では、HTTP/2 Rapid Reset Attackについて、調べたことを記載したいと思います。

概要

本記事では、以下のことについて、記載させていただきます。

  1. HTTP/2とは?
  2. DDoS攻撃とは?
  3. AWSが提唱するDDoS攻撃軽減のベストプラクティス

1. HTTP/2とは?

HTTPプロトコルは、ホームページのファイルなどを受け渡しするときに使うルール(通信プロトコル)であり、1991年にHTTP/0.9が公開されてから、インターネットの普及等に伴い改良が行われています。

HTTP/2は2015年の公開されたバージョンで、複数のリクエストとレスポンスをまとめることで、クライアントとサーバー間のやり取りが効率化できたことで、Webページの読み込み速度を向上されることが期待されています。

HTTP/1.1のリクエスト/レスポンス処理の場合、Webサーバーに対して、1つずつしかリクエストを送ることができません。これに対し、HTTP/2のリクエスト/レスポンス処理の場合、Webサーバーに対して、複数のリクエストを同時に処理することができます。コンテンツが多いWebページほど時間短縮の効果が現れやすいと言えます。

2. DDoS攻撃とは?

Webサーバなどに対して、大量の通信を発生させることで正常なサービス提供を妨げることをDoS攻撃と呼び、複数の場所から大量の通信を発生させる攻撃をDDoS攻撃と呼びます。

プロ野球などのスポート観戦チケットや人気アーティストのライブ観戦チケットの申し込み際にWebサイトが反応しなくなったり、Webサイトが表示されなくなったということはないでしょうか。最近では、2023/9末にふるさと納税の駆け込み需要により、各社のWebサイトが表示されなくなるという事象が発生していました。これは、アクセスが集中することでサーバに負荷がかかり、過度のアクセスに対してサーバで処理がしきれなくっていることが原因です。

DDoS攻撃は、このアクセス集中を意図的に発生させることで、Webサイトをパンクさせるサイバー攻撃の一種です。

3. AWSが提唱するDDoS攻撃軽減のベストプラクティス

AWS Summit Tokyo 2019のセッション「Edge Servicesを利用したDDoS防御の構成(AWS WAF/Shield)」を参考に記載させていただいております。

www.youtube.com

基本的なDDoS攻撃の防御

下記の2つのAWSサービスによって、基本的なDDoS攻撃の防御が可能となります。

(1)AWS Shield Standard

すべてのインターネットに面したAWSのサービスに対して無償かつ自動的に設定されている、ネットワークレイヤーとトランスポートレイヤー(Layer 3/4)に対するDDoS攻撃の防御サービスとなります。

(2)AWS WAF

CloudFrontやALBに対して利用することができるWebアプリケーション用(アプリケーションレイヤー(Layer 7))のファイアウォールサービスとなります。具体的には、以下の機能があります。

  • ルールを利用したWeb層への攻撃を防御する基本的な機能
  • レートコントロールを利用したWeb層へのDDoS攻撃を防御する機能(受信リクエストをカウントし、レートが速すぎる場合にはリクエストを制限する)

DDoS Resilieny Architecture

DDoS Resilieny Architectureとは、DDoS攻撃に対する耐性(困難な状態から迅速に回復することができる能力のこと)をもった構成のことを指します。

(1)CloudFrontを利用する

ネットワークレイヤーとトランスポートレイヤー(Layer 3/4)に対するDDos攻撃の遮断します。具体的には、CloudFrontを用いることで、Shieldは、Webアプリケーションがサービスへのパススルーに有効なトラフィックのみを許可します。これにより、UDPリフレクション攻撃など、多くの一般的な DDoS ベクトルに対して自動的に保護されます。また、キャッシュの利用によるアプリケーションレイヤー(Layer 7)の保護を実現しています。

AWS ShieldのCloudFrontに対する緩和ロジックについては、以下を参照してください。

docs.aws.amazon.com

(2)AWS WAFを利用する

レートコントロールを利用したWeb層へのDDoS攻撃を防御する機能(受信リクエストをカウントし、レートが速すぎる場合にはリクエストを制限する)を利用して保護します。

(3)Route53を利用する

DNSへのDDoS攻撃対応のために、Route53の利用を推奨されます。Route53を利用することで、Shieldは、有効なDNSリクエストのみがサービスに到達することを許可します。Shieldは、既知の正常なクエリに優先順位を付け、疑わしい、または既知のDDoS攻撃属性を含むクエリの優先度を下げる、疑わしいスコアリングを使用してDNSクエリのフラッドを軽減します。

DNSはインターネット上の住所録の機能を果たします。インターネット上のHPには、最終的にIPアドレスで到達するため、IPアドレスを知っていれば、DNSは必要ありません。しかしながら、IPアドレスを直接知っていることは、ほとんどの場合ないでしょう。このため、DNSサーバーがパンクすると、必然的にインターネット上の通信を行うことができないのと、同義となるとことから、DNSサーバーへの対策も必要となります。

AWS ShieldのRoute53に対する緩和ロジックについては、以下を参照してください。

docs.aws.amazon.com

(4)攻撃可能な面を可能な限り減らす

VPC内部の対応として、サブネット、NACL、セキュリティグループの設定を最適化すること、攻撃可能な面を可能な限り減らすことが推奨されます。

(5)Webサーバーの最適化する

パケットの量が多いということに対し、すぐにDDoS攻撃と判断するのは難しいケースがあります。このため、DDoS攻撃の開始から緩和されるまでに時間を要することがありますので、DDoS攻撃の開始から緩和されるまでの時間を耐えられる構成をとる必要があります。このため、適切なインスタンスタイプやAutoScalingの設定を行なってください。

(6)CloudWatchを利用する

まずは。可能な限り早く異常に気づく必要があるかと思います。このため、適切なCloudWatchモニタ、CloudWatchアラームなどの監視設定を行うようにしてください。(例えば、帯域だけでなく、CPU使用率なども監視するようにしてください。)

DDoS攻撃の防御力をさらに高めるためには?

AWS Shield Standardについて記載していますが、さらにDDoS攻撃の防御力を高められたい場合には、高額な有償サービスとなりますがAWS Shield Advancedの導入を検討いただければと思います。

AWS Shield Advancedの導入について

(1)料金について

最低1年間のサブスクリプション契約と3,000USD/月の月額料金の支払いが必要です。このため、利用開始時には、36,000USD/年の年間費用が必要となります。これは、2023/10/12時点の為替レートが、1USDあたり149.22円となりますので、537万円/年となります。また、CloudFront、ELB、EC2、Global Acceleratorからのデータ転送量に基づく使用料金が発生します。

上記に加え、AWS Shieldレスポンスチームへの連絡については、AWS Premium Supportのエンタープライズまたはビジネスサポートレベルの契約が必須となりますので、実質的にAWS Premium Supportが追加で必要と考えておいた方が良いかと思います。

(2)サービス内容について

  • 検出とモニタリング項目の追加
    • CloudWatchの中にDDoS攻撃に特化したメトリクスが追加されます。DDoS攻撃の有無、規模、どのような攻撃であったかを確認することができます。
  • 大規模なDDoS攻撃からの保護
  • 攻撃の検知と緩和状況の可視化
    • DDoS攻撃の有無、規模、どのような状態かなどをダッシュボードに表示されることで可視化することができます。
  • AWS WAFとFW Managerが無料で利用可能
  • 24365でのAWS Shieldレスポンスチームへの問い合わせ窓口の提供 -DDoS攻撃に特化したチームに対して、どういう対策をしているのか、どれくらいで対処ができるのかなどの問い合わせが可能な窓口が提供されます。
  • コストの保護(DDoSによるコストの吸収) -DDoS攻撃によるコスト損失について、AWSが補償してくれます。

(3)対象サービスについて

  • Route53
  • CloudFront
  • ALB
  • Global Accelerator
  • Elastic IP

最後に

この度のような、大規模なサイバー攻撃の発表があることで、サイバー攻撃はとても身近なものだと痛感するとともに、AWSのサービスの素晴らしさを実感します。ただ、素晴らしいサービスがあっても利用する側の取捨選択(構築技術)によって、セキュリティが希薄なる可能性があることも事実かと思いますので、最新情報もキャッチアップしながら、お客様に最適なサービスが提供できるように努めて参りたいと思います。