2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS CloudWatchでWAFのCountがとれたログのみ取得するクエリ

2
Posted at

前提

AWS WAF でCOUNT設定したManagedRuleに引っかかったログの内容を取得して「このManagedRuleのWAFをBLOCK設定にしていいか?」を判断したいという話になった。

AWS WAFでBLOCKをする場合は、事前にCOUNTでそのルールを適用してもいいかログ取得して確認するべき。
もし、正常なリクエストをブロックしてしまうと、サービスそのものが停止されてしまう可能性がある。

クエリ

以下のクエリの AWS#AWSManagedRulesBotControlRuleSet の部分を調査したい場合は、そのmanagedruleでcount引っかかったところを取得するクエリを使えばログ取得ができる。
また、webaclIdは各環境によって変更すること。

fields httpRequest.headers.0.value, httpRequest.uri, @message, @timestamp
| filter webaclId = "{WEBACLのIdを入力する}"
| filter @message like /COUNT/
| filter @message like /"ruleGroupId":\s*"AWS#AWSManagedRulesBotControlRuleSet",\s*"terminatingRule":\s*null,\s*"nonTerminatingMatchingRules":\s*\[\s*\{.*"ruleId":/
| sort @timestamp desc
| limit 10000

解説

すまん。解説は後で書く。
とりあえず、ログでそれに当てはまる内容のものを出すという話。
もはや正規表現の解説になってしまうので、長くなりそう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?