AWS Shield Advanced で攻撃検出時にDRTから連絡が来るようになりました

記事タイトルとURLをコピーする

2020年6月9日にAWS Shield Advancedのアップデートがありました。

AWS Shield Advanced がイベントへのプロアクティブな対応のサポートを開始

といっても、ほとんどのAWSユーザーがAWS Shield Advancedを使ったことがないと思います。
本記事では、AWS Shieldについて、簡単におさらいした後で、アップデートの中身を確認していきます。

AWS Shield Advancedとは

まず、AWSを利用すると、自動的にAWS Shield Standardが無料で有効になります。
こちらのサービスだけでも、レイヤー 3 およびレイヤー 4 攻撃に対して自動保護が可能です。
具体的には、SYN フラッドや UDP 反射攻撃などの一般的な DDoS 攻撃に対する保護をしてくれます。
レイヤー3、レイヤー4攻撃に対してはShield Standard、レイヤー7攻撃についてはAWS WAFで軽減するというのが一般的なレベルの防御と思います。

しかし、それでは足りないという場合、AWS Shield Advancedが検討されます。
StandardとAdvancedの違いは、以下となります。(AWS Shield の仕組みから転載)

機能 AWS Shield Standard AWS Shield アドバンスド
Active Monitoring
ネットワークフローのモニタリング はい はい
自動常時検出 はい はい
自動化アプリケーション (レイヤー 7) トラフィックのモニタリング   はい
DDoS Mitigations
SYN フラッドや UDP 反射攻撃などの一般的な DDoS 攻撃に対する保護 はい はい
攻撃中の AWS 境界へのネットワーク ACL の自動デプロイメントを含む、追加の DDoS 軽減機能へのアクセス   はい
カスタムアプリケーションレイヤー (レイヤー 7) 攻撃の軽減 はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 はい。ユーザーまたは DRT が作成した AWS WAF ACL を使用します。AWS Shield アドバンスド サブスクリプションの一部として含まれます。
ルールのインスタント更新 はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 はい
アプリケーションの脆弱性を保護する AWS WAF はい。ユーザーが作成した AWS WAF ACL を使用します。AWS WAF の標準料金が発生します。 はい
Visibility and Reporting
レイヤー 3/4 攻撃の通知   はい
レイヤー 3/4 攻撃のフォレンジックレポート (発生元 IP、攻撃ベクトルなど)   はい
レイヤー 7 攻撃の通知 はい。AWS WAF を使用します。AWS WAF の標準料金が発生します。 はい
レイヤー 7 攻撃のフォレンジックレポート (トップトーカーのレポート、サンプリングされたリクエストなど) はい。AWS WAF を使用します。AWS WAF の標準料金が発生します。 はい
レイヤー 3/4/7 攻撃の履歴レポート   はい
DDoS Response Team Support
(Must be subscribed to the Business Support plan or the Enterprise Support plan.
重要度が高いイベントでのインシデント管理   はい
攻撃中のカスタム軽減策   はい
攻撃後の分析   はい
Cost Protection (DDoS スケーリング料金のサービスクレジット)
Route 53   はい
CloudFront   はい
Elastic Load Balancing (ELB)   はい
Amazon EC2   はい

上記のようにAWS Shield Advancedの機能の一つとして、DRTのサポート(DDoS Response Team Support)がありますが、今回のアップデート対象はその部分となります。

DDoS レスポンスチーム (DRT)との連絡

今までは、ユーザーがAWS上で動かしているアプリケーションに対しDDoSを受けている疑いがあった場合、AWS側にサポートを求めるためには、ユーザー側からAWSサポートに連絡する必要がありました。
今後は、DRTがDDoS イベントを検出すると、DRT側からプロアクティブにユーザーに連絡してくれるようになりました。

Step 4: (Optional) Prepare for response team engagement によると、以下のいずれかの方法でDRTに連絡することができるとのことです。

方法1.サポートケース

AWS サポートセンターの AWS Shield でケースを開くことができます。お使いのアプリケーションが不健全な場合は、サポートプランで利用可能な最高レベルの深刻度を使用してケースを開き、電話またはチャットの連絡先オプションを選択します。あなたのケースの説明では、できるだけ詳細に記載してください。影響を受ける可能性のある保護されたリソース、およびエンドユーザーの経験の現在の状態に関する情報を提供するようにしてください。例えば、ユーザーエクスペリエンスが低下していたり、アプリケーションの一部が現在利用できない場合は、その情報を提供してください。

こちらは従来からある方法です。 他のAWSのサービスでトラブルが起きた時の対応方法と同じですね。

方法2.プロアクティブエンゲージメント

AWS Shield Advancedのプロアクティブエンゲージメントでは、保護されたリソースに関連付けられたAmazon Route 53のヘルスチェックがShield Advancedで検出されたイベント中に不健全になった場合、DRTが直接お客様に連絡します。このオプションの詳細については、「Shield Advanced proactive engagement」を参照してください。

こちらが新しく追加された方法です。 あらかじめ、DRT proactive engagementを有効にしておくと、プロアクティブに動いてくれるとなります。

以下のようなイメージです。

プロアクティブエンゲージメントの有効化方法

プロアクティブエンゲージメントの有効化するには、設定やDRTとの調整が必要になります。
まず、Shield Advancedでは保護対象のALBやCloudFrontディストリビューションなどの選択が必要になりますが、それはできている前提で、さらに必要となる設定は以下となります。

なお、残念ながらAWS Shield Advancedを設定できる環境を得られなかったので実際に試せず、AWSドキュメントを読んで確認した内容となります。

手順1.正常性ベースの DDoS 検出を設定

正常性ベースの検出を開始するには、Shield アドバンスド で保護する AWS リソースの Route 53 ヘルスチェックを作成します。Route 53 ヘルスチェックの詳細については、「 Amazon Route 53 がリソースの正常性をチェックする方法」および「 ヘルスチェックの作成と更新」を参照してください。ヘルスチェックを作成したら、次の手順に従ってそれを保護と関連付けます。 AWS Shield アドバンスド 保護の管理

保護対象のリソースに対し、Route 53 でヘルスチェック設定をし、それをShield コンソールで関連づけると、Shieldコンソールでステータスが見れるようになります。
ステータスには、正常(Healthy)、異常(Unhealthy)、使用不可(Unavailable)の3つがあります。
この後の一連の設定手順を完了すると、DRTはステータスが異常(Unhealthy)の場合にプロアクティブな行動をとるようになります。

手順2.プロアクティブエンゲージメント用の連絡先の登録

プロアクティブエンゲージメント用に1〜10個の連絡先を登録します。

手順3.プロアクティブエンゲージメントを有効化

プロアクティブなエンゲージメントを有効にするを選択します。 最初にプロアクティブなエンゲージメントを有効にすると、リクエストは手動でのレビューに移行します。リクエストがレビュー待ちの間は、コンソールにプロアクティブエンゲージメントのリクエストと保留が表示されます。DRTは、Route 53のヘルス・チェック構成のレビューを含むアーキテクチャ・レビューをスケジュールするために、お客様に連絡します。レビューが完了すると、DRTはお客様のリクエストを完了させ、積極的なエンゲージメントを可能にします。 Shield Advanced proactive engagement

Shieldコンソールでプロアクティブエンゲージメントを有効化すると、DRTから連絡が来て、レビューが行われます。 これで設定完了です。

どのような時にDRTから連絡が来るのか?

さて、設定できましたが、どんな場合にDRTから連絡が来るのでしょうか?
以下の2つの条件が揃った時にDRTから連絡が来るとのことです。
実際にユーザーのサービスに影響が出ていて、さらにその原因がDDoSと思われる場合のみ、連絡するというスタンスと思われます。

条件1

Shield Advancedの保護対象に対し、下記のいずれかのイベントが発生。

  • Elastic IPアドレス、またはAWS Global Acceleratorアクセラレーターへのネットワークレイヤーイベントとトランスポートレイヤーイベント
  • Amazon CloudFrontディストリビューション、またはApplication Load BalancerへのWebリクエストフラッド

条件2

Shield Advancedの保護対象に関連付けられたAmazon Route 53ヘルスチェックが(Unhealthy)になった場合。

まとめ

DRTに連絡をする時、今まではユーザーから連絡をする必要がありました。
今後は適切に設定をしておけば、DDoS起因と思われるサービスダウン発生時にはDRTからユーザーに連絡してくれます。
それによって、障害時のユーザーとDRTとの連携が迅速化されることが期待できます。

余談 (料金の話)

AWS Shield Advancedの話をすると、1年間契約、月額料金3,000USD という料金の話が最初に出てくることが多いです。
確かに高いと感じますが、以下のような特典もあるので、大規模な環境に限ってかもしれませんが、検討するのもありかなと思いました。

  • 1契約で組織全体(複数AWSアカウント)にも使える
  • AWS WAFの料金も含まれる
  • DDoS攻撃を受けた時に増加したEC2インスタンス料金などの支払いはクレジットで返ってくる(翌月以降のShield Advanced料金でのみ使用可)

渡辺 信秀 (記事一覧)