WafCharmを始めるときに知っておきたいTips

最近WafCharmを導入したのですが、公式以外にあまり情報がなかったので公式サイトに記載がないTipsなどをまとめることにしました。

WafCharmとは何?

WafCharm公式
サイバーセキュリティクラウドが提供する、AWS WAF運用を支援してくれるサービスです。WafCharm自体はWAFではありません。Managed Rulesとも違います。
あくまでAWS WAFの支援サービスなので、利用できるのはAWS WAFに対応しているCloudFront, ALB, API Gatewayのみです。
2019年11月28日時点ではAWS WAF v2に対応しておらず、AWS WAF Classicのみ対応しています。

導入の注意

WafCharm以外の費用

WafCharmの利用コスト以外に、

  • AWS WAFの利用費用
  • CloudFront, ALB, API GatewayアクセスログログのS3保存費用

がかかります。
さらに、攻撃通知メールを受信するために

  • Kinesis Data Firehose
  • Lambda

を設定する必要があり、こちらも費用がかかります。参考までに1.7億リクエストでKinesis Data Firehoseのコストは25USD程度でした。
AWS WAFに限らず、WAF運用は誤検知や検知漏れの対応が鍵になるため、攻撃通知メールの受信は実質必須といってよいでしょう。

導入作業

作業ドキュメントはありますが、自分でCloudFrontやAWS WAF, Kinesisなどの設定が必要です。基本的にAWSを自分で設定できることが導入の前提になります。

Cyber Security Cloud Managed Rules for AWS WAFとの違い

同じサイバーセキュリティクラウドが提供しているCyber Security Cloud Managed Rules for AWS WAFは全く別のサービスで、OWASP Top 10に準拠したAWS WAF v2/Classic対応のマネージドルールです。なお、WafCharmとの共存も可能で、WafCharmのProfessional以上に契約すると、このマネージドルールのサポートも受けられます。

導入

導入方法はマニュアルを参照してください。
攻撃通知や月次の統計情報設定方法は契約者向けページに記載されているので、ここではリンクしません。

Tips

ACLセットはまとめるべきか?

ACLセットはリージョン単位(CloudFront用ACLはus-east-1(バージニア北部)扱い)で使い回せます。ACLセットごとにAWS WAF, WafCharmそれぞれ課金が発生するので、なるべく使い回したいところ。
現在はサービスごとに1ルールにまとめて運用しています。(本番環境、ステージング環境などすべて1ルール)

脆弱性診断との兼ね合い

WafCharmがブロックモードになっている場合、脆弱性診断を行ってもブロックされてしまい、アプリケーションに脆弱性があるかどうか調べられません。
しかし仮に脆弱性が見つかった場合、WAFでブロックされることの確認が必要です。そこで基本的に脆弱性診断環境はWAFを設定せず、脆弱性が見つかった場合は有効化して攻撃がブロックされることを調べる方針にしています。

攻撃通知と誤検知の対応

WAFによくある現在の攻撃ステータスをリアルタイム表示する機能はありません。月次レポート表示はできますが、月単位で更新されるためリアルタイム性はありません。
リアルタイムな攻撃通知はメール通知で行われます。
メール通知はアカウント登録時に使ったメールアドレスに送られ、他のアドレスに送信したり複数アドレスに送信する機能はありません。(近日実装予定だそうです)
そのため、メール送信でSlackに通知することなどはできません。ACLごとに別のアドレスに通知することもできません。このあたりは今後の開発に期待したいところ。

ルールの更新

WAF運用で一番大変なルールのチューニングは、アクセスログを分析して自動的に行われます。誤検知があれば、サポートに連絡することで修正してもらえます。幸い今のところ誤検知は起きていませんが。
ルールのチューニングは概ね1日ごとに行われるそうですが、通知はありません。更新を確認したい場合はCloudTrailが使えます。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account