AWS WAF の可視化や分析に役立つ CloudFront セキュリティダッシュボードが実装されました

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

マネージドサービス部 佐竹です。
AWS WAF の分析に役立ちそうな新機能 CloudFront セキュリティダッシュボードが実装されましたのでご紹介します。

はじめに

2023年11月10日に、アップデートのお知らせと共に 以下のAWS 公式ブログが投稿されました。

aws.amazon.com

aws.amazon.com

まずはざっくりと本アップデートについてご紹介すると、CloudFront のコンソールに「Security Dashboard」が新たに実装されています。

これはセキュリティ=「CloudFront に関連付けされた AWS WAF に関する情報」を AWS 側が独自のダッシュボードに可視化・表示をしてくれる機能となっています。

docs.aws.amazon.com

AWS 公式ドキュメントとして上記のドキュメントも追加されていました。合わせてご覧ください(ブログ記載当時は英語版のみを確認)。

CloudFront Security Dashboard

どのようなことを目的とした機能なのか

AWS WAF に関する情報の可視化、そして分析を容易に行えるようになる機能です。

これまでは例えば、AWS WAF のログ分析を行うには、クエリを記載する必要が多い状況でした。私も、ログの調査のために Athena で何度も SQL を記載した記憶があります。

可視化に関して言えば、何らかの他の可視化ツールにログを取り込んでいる場合もあるでしょう。

しかし、今後本機能によって十分な可視化と分析がされるのであれば、SQL などのクエリを記載することも、外部の可視化ツールに頼る必要もなくなりそうです。AWS がこのような機能を「無料で新機能として追加」してくるところにいつも驚きます。

ただ、本機能は「AWS WAF」が前提の機能です。このため、利用には「AWS WAF」がその CloudFront ディストリビューションで有効になっている必要があります。AWS WAF が有効になっていない場合は、セキュリティダッシュボードを使用して AWS WAF を有効にすることもできます。また、CloudFront の地理的制限を設定することもできますが、それらのみとなっています。

使い方

百聞は一見に如かずということでコンソール画面をご紹介します。

the CloudFront Security Dashboard

各ディストリビューションに「セキュリティ」というタブが増えました。これがセキュリティダッシュボードです。現在、最上部にはアナウンスが記載されていました。以下が翻訳です。

Introducing the CloudFront Security Dashboard
The new security tab is a unified place to configure, manage, and monitor security for your CloudFront distribution. The built-in dashboard gives you visibility into top security trends, allowed and blocked traffic, as well as visibility and controls for bots. CloudFront geographic restrictions are now part of the security dashboard.

[翻訳]
CloudFront セキュリティダッシュボードの紹介
新しく実装された「セキュリティタブ」は、CloudFront ディストリビューションのセキュリティを設定、管理、監視するための統合された場所です。組み込みのダッシュボードを使用するだけで、主要なセキュリティ トレンド、許可およびブロックされたトラフィック、ボットの可視性と制御を把握することが可能です。CloudFront の地理的な制限がセキュリティ ダッシュボードの一部になりました。

このアナウンスが、残念ならが今は消せないみたいなので一旦このままご紹介を続けます。

Date range

Date range

最初に分析する日付の幅を指定します。

「Absolute range」で確認したところ、現在最も遡れる範囲は「2023年9月15日まで」でした。データが取り込まれた日が「2023年9月15日以降」だからそうなっているのかもしれないですが、60日前までしか分析できないのかもしれません。ドキュメントを見る限り制限については記載がありませんでしたので、前者だと嬉しいですね。

Granularity 5 minutes

なお「Granularity」が「5 minutes」にできるのは「Date range」を「480 minutes」にするのが最大となります。つまり「8時間」幅が最大です。

Granularity 1 hour

同様に、「Granularity」が「1 hour」にできる最大値は「Date range」が「72 hours」までです。「3日間」幅が最大となります。

可視化されたグラフを用いてトレンドの分析が可能です。

デフォルト「Rule actions」は「All」となっていますが、これを「Blocked」に変更することで、「Top attack types」を分析することが可能です。ただ今現在どうも「Absolute range」を指定すると「Top attack types」を表示することができないようでした。ということで以下は「Relative range」で指定しています。

Top attack types

「Top attack types」は、「XSS」や「SQL injection」など、WAF によってブロックされた攻撃手法ごとに何回ブロックされたのかを積み上げてグラフ化をしてくれる機能です。

同様に「Top countries」も表示されていますが、こちらは WAF によってブロックされた IP アドレスの国を積み上げたものです。

これらのトレンドはこの後ご紹介します WafCharm でも同様のレポートが表示される通り、WAF の分析において一般的な情報です。この結果を見て WAF に「国レベル」での制御を追加するなどの判断に活用することができます。

これらのトレンドをセキュリティダッシュボードを見るだけで用意に判断が可能となりました。運用省力化にかなり寄与してくれそうです。

Sampled bot requests for the specified time range

Sampled bot requests for the specified time range

「Sampled bot requests for the specified time range」 セクションでは、ボットリクエストに関するデータが表示されます。

Manage bot protection

上図の通り、ここから AWS WAF ボットコントロールを有効または無効にすることもできます。

Requests by bot category

ボットコントロールを有効にすると、グラフにボットの各タイプおよびカテゴリからのトラフィック量が表示されます。本ディストリビューションでは「ボットコントロールが無効」のため、リクエストのサンプリングに基づいてトラフィック量がグラフに表示されているのみです。

本情報に基づき、必要があれば負荷軽減のためにボットコントロールを有効化するという判断に有用でしょう*1

Request logs for the specified time range

ブログ記載時点で本機能は未検証となりますが、本オプションを有効化することでさらなる詳細な分析が可能となります。

Request logs for the specified time range

本設定を有効化すると、CloudFront ディストリビューションは CloudWatch のロググループを作成し、AWS WAF 設定を更新して CloudWatch へのログ記録を開始します。そしてセキュリティダッシュボードは AWS WAF が CloudWatch のロググループに送信するログを追加で分析するようになります。このため有料の拡張オプションとなっています。またドキュメントには「セキュリティダッシュボードの使用に料金はかかりませんが、ダッシュボードを通じてクエリされたログには Amazon CloudWatch の料金が適用されます」とも記載がありました。

本オプションを有効化することで、例えば「どの URI パスが最もリクエストされているか」等のランキングデータが、セキュリティダッシュボードに追加で閲覧可能になります。その他、IP アドレス、国、ユーザー エージェント、等の属性に基づいてリクエストをフィルターすることが可能とのことです。

本セキュリティダッシュボードのみで分析したい場合には、本オプションを有効化するシーンも今後ありそうです。

WafCharm のレポートと比較してみる

先にご紹介した WafCharm にも無料で利用が可能なレポートの機能があります。

ただし前提として、この機能を利用するには S3 Bucket に出力した 自アカウントの AWS WAF のログを、Lambda を用いて定期的に WafCharm の保有する S3 Bucket へとコピーする操作が必要です。

Monthly Report

上画像の通り、本レポートは月毎の「1ヶ月間のサマリー」となっており、「Attack Type」の円グラフ、または「Detected Rule Ranking」と「Attack Country Ranking」がセキュリティダッシュボードと同様にランキング形式で一覧になります。他に WafCharm 側には「Attack IP Ranking」もありこれも有用な情報となっています。

本レポートを活用した月次報告はユーザ様にも好評で、サマリーとして分析するには「ちょうどよい」情報量だと感じます。WafCharm のレポートは ALB においても同様に提供されており、CloudFront のみで提供が開始されたセキュリティダッシュボードは残念ながら ALB には未実装です。

ただ CloudFront セキュリティダッシュボードと比較すると WafCharm のレポート少々見劣りしてしまう点もあると感じました。それは「1ヶ月のまとめとしてレポートが出力される」というタイムラグの観点と、1ヵ月固定の Data range という点です。これらは「マンスリーレポート」に特化している反面、可視化ツールとしての分析が難しいと感じます。

このため、データレンジを変更しながらのクイックな分析においては CloudFront セキュリティダッシュボードに軍配が上がります。特に、初期セットアップも不要で利用が可能であり、CloudFront のコンソールからすぐに見られるという点も好まれそうです。

ただ、先に記載した通り本機能は CloudFront 独自のものであり、ALB における AWS WAF のログ分析には今まで通り WafCharm のレポートが生きるでしょう。

まとめ

本ブログでは、AWS WAF の分析に役立つ新機能 CloudFront セキュリティダッシュボードについてご紹介しました。

調べていくうちに、CloudFront における AWS WAF のログの可視化や分析・調査において、まずは使いたくなる機能だと思わされました。

特に最大「8時間」まで5分間隔で分析が可能な点と、最大「3日間」まで1時間間隔で分析が可能な点が直近の分析に有用だと感じました。

これで AWS WAF のログ分析の手間が少しは減ってくれそうで今後の機能追加にも期待が寄せられます。願わくは ALB にも同様のセキュリティダッシュボードを実装して欲しいと感じました。

以上で機能の紹介を終えます。

では、またお会いしましょう。

*1:AWS WAF のボットコントロールについては WafCharm 公式のブログが参考になります https://www.wafcharm.com/jp/blog/aws-waf-bot-control-release-ja/

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。