CI 事業部 セキュリティセクションでは、様々なセキュリティサービスや、その運用オプションサービスを提供しています。
最近 WAF 運用サービスとして、AWS WAF 運用サービス lite をリリースいたしました。

また、AWS WAF 運用サービス lite および、既存の WafCharm 運用保守オプションプランをご利用のお客様向けに、ダッシュボード機能の提供を開始しました。
今回は、このダッシュボード機能の裏側をご紹介します。

なお、以降でご紹介する内容は、これを書いている時点のものです。
日々、クラウドの新サービスや新機能のキャッチアップやサービスの見直しも行っているため、構成変更の変更の可能性もあります。

AWS WAF 運用サービス lite とは

WAF の初期構築から運用保守を代行する、小規模環境向けサービスです。
株式会社サイバーセキュリティクラウドが提供する『Cyber Security Cloud Managed Rules for AWS WAF – High Security OWASP Set -』をベースに、簡単なカスタムルールの追加も可能です。

コストを抑えたサービスとなるため、検知状況を事細かにまとめたレポートとまではいかないものの、シンプルに分かりやすく検知状況を可視化できれば、ということで、
下記のダッシュボードの準備を開始しました。

ダッシュボード概要

まずは見ていただくのが良いかと思いますので、イメージから。
なお、データは適当に生成したダミーデータです。

ダッシュボードイメージ

日別の検知状況


WAFで許可されたリクエスト、検知されたリクエストの推移です。
国や期間で絞り込みが可能です。

薄い線は前週との比較です。
また、ALLOW のグラフ中の枠内に、日付と数値が表示されていますが、
これは各データポイントにマウスオーバーで表示されるものです。 (他のグラフでも同様に表示されます)

国別アクセス状況


指定期間のアクセス状況を地図上に表示しています。

検知したIP、ルール


攻撃として検知されたアクセスのソースIPおよび、検知したルールのランキングを表示しています。


更に、各ルール別の検知数の推移をグラフ表示しています。

続いて、ダッシュボードの裏側のシステム構成をご紹介します。

ダッシュボードの裏側

構成

同じ Google Cloud Project 内で、①〜③ をお客様環境別に作成しています。

① データ連携: Storage Transfer Service

Amazon S3 から Google Cloud Storage へのデータ連携に、Storage Transfer Service を使用しています。
ソース・宛先となるバケット、転送スケジュール、使用する IAM Role などを設定するだけで、簡単に定期的な転送が可能です。

転送前に AWS WAF のログをこねくり回しているのですが、それはまた別のお話…

② データソース: BigQuery + Cloud Storage

データ確認の容易さや、データソースへのアクセスをお客様別に制御したい (※) といった理由から、 BigQuery データセットをお客様案件毎に用意しています。
外部テーブルのデータストアとして、Cloud Storage を使用しています。

※ BigQuery をデータソースにすると、Looker Studio から Service Account を使ってアクセス可能です。

Looker Studio: Looker Studio からサービスアカウントを使用して BigQuery と接続する


Cloud Storage の読み取り権限も付与することで、外部テーブルも利用可能でした。

BigQuery Data Transfer という、S3 から BigQuery にデータ連携ができるサービスもあり、BigQuery に直接データを格納する方法も検討したのですが、
以下の理由で Storage Transfer と Cloud Storage を選択しています。

  • Storage Transfer は IAM Role を利用でき、連携スケジュールも24時間より短く設定できる
  • Cloud Storage のライフサイクルで、自動的にデータ削除ができる

パフォーマンス面でのデメリットはあるため、将来的に構成を見直す可能性はあります。

③ ダッシュボード本体 – Looker Studio

無料で手軽にレポートやダッシュボードを作成できるありがたいサービスである Looker Studio
アイレット社内の色々なデータの可視化にも使われていたりします。

BigQuery 以外にも、Google スプレッドシートや Cloud SQL などのデータベースなど、1,000 を超えるデータソースに接続可能です。
また、表や各種グラフ、今回使ったような地図表示など、様々な形式でデータを表示出来ます。

外部コンテンツの埋め込みもできることから、今回は Google ドキュメントで作成したヘルプページを埋め込みました。
情報をアップデートする際に、各ダッシュボードのテキストを直接更新する、といった必要がなくなり、メンテナンスが容易です。

④ リソース作成 – Service Catalog

Service Catalog は、事前にカタログ内の製品としてリソース定義などを登録しておき、そこからリソース作成などを行えるサービスです。
製品として登録できるものにはいくつか種類があるため、Google Cloud 上にリソース定義は置かれていない場合もあります。

今回は、Terraform ベースの製品を使用しています。
①②および Service Account については、Service Catalog から製品を起動して一括作成し、
Terraform で設定できない③のみ、別途設定する形をとりました。

直接リソースを作成する場合、Service Account の作成や権限付与には強い権限が必要になるのですが、
Service Catalog から作成する方式では、Service Account 作成・権限付与の権限無しで、決まった設定の Service Account を作成することができ、より安全です。

ちなみに、マイナーすぎるのか、サービスアイコンが見当たりませんでした…

⑤ その他

その他に、下記のようなサービスを利用しています。

Cloud Build

GitHub に Service Catalog のソースが Push されたのをトリガーに起動し、カタログの元になるファイルを Cloud Storage にアップロードしています。

Security Command Center

Security Health Analytics を使って構成ミスがないかチェック、Event Threat Detection を使って脅威検知を行っています。

おわりに

AWS WAF 運用サービス lite で提供している Looker Studio を使った WAF ダッシュボードと、その裏側をご紹介しました。
今回は WAF のデータを可視化しましたが、他のデータにも流用可能な構成になっています。
これから運用しながら、改良をしていく予定です。

AWS WAF 運用サービス lite について知りたい、ダッシュボードを見てみたい、という方がいらっしゃいましたら、是非こちらからお問い合わせください。