概要
- 前回、下記の記事において、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”と表示され、メトリクスからカウントアクションを確認できません。
- 対応策は、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”はルール名によって異なります)