WafCharmの COUNT/BLOCK Actionの追跡方法

9月 18, 2020AWS,AWS WAF,WafCharm,セキュリティ関連

概要

  • 前回、下記の記事において、WafCharm で通知機能を使うためのシステム構築方法と、疑似的なCOUNT Action, BLOCK Actionでテストするための方法を紹介しました。今回は、コンソールやWAFログファイルなどを使用して COUNT/BLOCK Action の追跡する方法をご紹介します。

 

COUNT Actionは"ルールアクションの上書き"で切替

  • WafCharm では、以下画面の通り、Web ACLにルールを適用する際のデフォルトアクションをBLOCK or COUNTで設定できます。しかし、AWSコンソール側では適用されたルールが"COUNT" とは表示されません。ここでは、コンソールを使ってルールに"COUNT" がちゃんと適用されているのか、どうやってアクションを切り替えるのかを説明します。

 

  • 先ず、WafCharmから更新されたWeb ACL ルールのアクションが"BLOCK" or “COUNT"のどちらに設定されているかを調べる方法を記載します。
  • 以下、AWSコンソールの画面です。WafCharmによって更新された、Rule groupsのルールが"Block" となっています。

  • かつ、Web ACLに適用された Rule のEdit を押し、下記 Override rules action の設定が有効な場合は、ルールのアクションである"Block"が上書きされ、動作が"Count" となります。

 

  • ルールのアクションを後から”Count" → “Block" に変更する場合は、上記 Override rules action の設定を無効にします。

 

  • ちょっと分かり辛い点をご理解いただき、適用されているアクションの確認と、切替方法を覚えておいてください。

 

COUNT/BLOCK Action の追跡方法

  • 次に、実際にリクエストがCOUNT Actionとして処理されたのか、BLOCK Actionとして処理されたのかを追跡する方法を記載します。
  • 以下、AWSコンソールの Web ACL, Overview の画面です。 COUNT Action として処理されたリクエストは"ALLOW"と表示され、メトリクスからカウントアクションを確認できません。
  • かつ、「Samples of requests from the past 3 hours.」と表示されており、過去 3H分しか表示できません。

 

  • 対応策は、WafCharm のメール通知機能を使用して、COUNT Action として処理されたリクエストを確認します。しかし、メール通知機能を構築していない場合は分かりませんね…。そのような場合は、次に記載するWAFログファイルを使って調べます。

 

 

  • S3 に保存されたWAF ログを確認します。正常なリクエストでは、“action":"ALLOW"かつ“excludedRules":null となります。COUNT Actionとなったリクエストは、“action":"ALLOW"かつ“excludedRules":[{“exclusionType":"EXCLUDED_AS_COUNT","ruleId":"wafcharm-blacklist-XXXX"}] の値となり、COUNT Action として処理されたことが分かります。("wafcharm-blacklist-XXXX"はルール名によって異なります)

 

  • 次は上記のCOUNT ActionをBLOCK Action に切り替えます。Web ACLよりRule のEdit を押し、Override rules action の設定を無効とします。
  • ルールの動作がBLOCK Action に変更された場合、次からのリクエストは以下の通り、ブロックされます。 403 ERROR となり、The request could not be satisfied. と表示されました。

  • BLOCK Action であれば、AWSコンソールの Web ACL, Overview の画面でもメトリクスで確認ができます。以下画面の通り、BLOCK Action として処理されたリクエストは"BLOCK"と表示されます。

 

  • 当然、BLOCK Action についても、WafCharm のメール通知機能で確認できます。

 

  • S3 に保存されたWAF ログを確認すると、BLOCK Actionとなったリクエストは、“ruleId":"wafcharm-blacklist-XXXX","action":"BLOCK" となります。("wafcharm-blacklist-XXXX"はルール名によって異なります)

 

参考資料