当記事では、LogStare CollectorでのAWS WAFログの取得方法について記載します。
LogStare CollectorによるAWS WAFのログ収集は、AWS WAF, Amazon CloudWatch が利用可能なすべてのリージョンでご利用いただけます。
目次
更新履歴
2022/10/18 公開しました。
AWS側の設定
ログ出力設定
- コンソールよりサービス「WAF & Shield」を起動して、メニューより「Web ACLs」を選択します。Web ACLsを作成したリージョンを選択し、CloudWatch Logsにログ出力したいWeb ACLsの名前を押下します。
- タブより「Logging and metrics」を押下します。
- 「Enable」を押下します。
- ログ出力に関する設定を実施します。詳細は「ログ出力詳細設定」をご確認下さい。設定後、右下の「Save」を押下します。
- 以上で設定は完了です。CloudWatch Logsにて指定したロググループでログが出力されているかご確認下さい。
ログ出力詳細設定
- 「Enable logging」画面ではログ出力に関する詳細な条件を設定できます。
Logging destination(ログの出力先)※必須
- ログの出力先を「CloudWatch Logs log group」「Kinesis Data Firehose stream」「S3 bucket」より選択します。LogStare Collectorで収集する場合、「CloudWatch Logs log group」を選択します。
- Amazon CloudWatch Logs log group:ログ出力先とするCloudWatch Logsにおけるロググループ名を選択若しくは新規に作成します。ロググループ名の先頭は「aws-waf-logs-」で始まる必要があります。詳細は以下を参照してください。
https://docs.aws.amazon.com/waf/latest/developerguide/logging-cw-logs.html#logging-cw-logs-naming
- Amazon CloudWatch Logs log group:ログ出力先とするCloudWatch Logsにおけるロググループ名を選択若しくは新規に作成します。ロググループ名の先頭は「aws-waf-logs-」で始まる必要があります。詳細は以下を参照してください。
Redacted fields(特定メッセージの編集)
- ログメッセージにおいて、特定の項目を編集してログに含めないように設定できます。対象は以下の通りです。
- 上記設定の場合、以下の様なメッセージがCloudWatch Logsに出力されます。
{ "timestamp": 1663839097399, "formatVersion": 1, "webaclId": "arn:aws:wafv2:ap-northeast-1:xxxxxxxxxxxx:regional/webacl/AWS-WAF-test/edf93802-8c65-4f88-bf11-ec6f1491447e", "terminatingRuleId": "Default_Action", "terminatingRuleType": "REGULAR", "action": "ALLOW", "terminatingRuleMatchDetails": [], "httpSourceName": "ALB", "httpSourceId": "xxxxxxxxxxxx-app/test-alb/9948bd44336ae560", "ruleGroupList": [ { "ruleGroupId": "AWS#AWSManagedRulesAmazonIpReputationList", "terminatingRule": null, "nonTerminatingMatchingRules": [], "excludedRules": null, "customerConfig": null } ], "rateBasedRuleList": [], "nonTerminatingMatchingRules": [], "requestHeadersInserted": null, "responseCodeSent": null, "httpRequest": { "clientIp": "xxx.xxx.xxx.xxx", "country": "JP", "headers": [ { "name": "Host", "value": "example-logstare-alb-xxxxxxxxx.ap-northeast-1.elb.amazonaws.com" }, { "name": "Connection", "value": "REDACTED" ###非表示対象### }, { "name": "DNT", "value": "1" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" }, { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" }, { "name": "Accept-Encoding", "value": "gzip, deflate" }, { "name": "Accept-Language", "value": "ja,en-US;q=0.9,en;q=0.8" } ], "uri": "REDACTED", ###非表示対象### "args": "REDACTED", ###非表示対象### "httpVersion": "HTTP/1.1", "httpMethod": "REDACTED", ###非表示対象### "requestId": "1-632c2b79-17461d7b337aaa120b4d6191" } }
Filter logs(ログのフィルタ)
- 特定のログのみを出力させるフィルタを設定することができます。複数のフィルタを設定した場合、上位(Filter 1)から判定されます。
- Filter requirement:Filter conditions(フィルタ条件)において、「Match all of the filter conditions(すべてのフィルタ条件に合致)」「Match at least one of the filter conditions(少なくとも一つの条件に合致」のいずれかの判定基準を設定できます。
- Filter conditions:フィルタ条件を「Rule action on request(ルールアクション)」「Request has label(ラベル)」より選択できます。
- Rule action on request:「Count」「Allow」「Block」「CAPTCHA」の任意のアクションを条件に選択できます。アクションの詳細につきましては以下を参照してください。https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-action.html
- Request has label:任意のラベルを条件に設定できます。
- Filter behavior:設定したフィルタ条件に合致したログについて、「Keep in logs(ログに含める」「Drop from logs(ログに含めない)」より選択できます。
Default logging behavior(標準のログ出力動作)
- すべてのFilter logsによる判定が終了した時点で精査されていないログについて、「Keep in logs(ログに含める」「Drop from logs(ログに含めない)」より選択できます。
LogStare Collector側の設定
- CloudWatch Logs収集機能が追加されている2.3.2以降のインストーラにてLogStare Collectorをインストールします。インストール手順につきましては以下の記事を参照してください。
LogStare Collectorインストールからアンインストールまで Windows版
LogStare Collectorインストールからアンインストールまで Linux版 - aws cli v2をインストールします。インストール手順につきましては以下の記事を参照してください。
WindowsServerにaws cliバージョン2をインストールする方法について
Linux系OSにaws cliバージョン2をインストールする方法について
AmazonLinux2において、aws cliのバージョンを1から2へ変更する方法について - CloudWatch Logs収集に必要な権限を付与します。LogStare CollectorがEC2インスタンス上にあれば、必要な権限を付与したIAMロールを設定します。LogStare CollectorがEC2インスタンス以外にあれば、必要な権限が付与されたユーザを作成の上、アクセスキー・シークレットキーをaws configureにて設定します。必要な権限につきましては以下の記事を参照してください。
CloudWatch Logs収集に必要な権限について - LogStare Collectorを起動後、CloudWatch Logs収集を設定します。設定方法につきましては以下の記事を参照してください。
CloudWatch Logs収集の設定
取得したログについて
- 取得したログは「検索・ダウンロード」にて確認することができます。「検索・ダウンロード」につきましては以下の記事を参照してください。
LogStare Collector における検索・ダウンロード画面について - 以下はLogStare Collector上で取得したAWS WAFのログです。
ログレポート
AWS WAFのログのレポートをLogStare Reporter または LogStare Quintにて生成することが出来ます。以下に作成例をまとめています。
送信元国別
送信元国別に集計したレポートです。国コードを変換、国別の許可・遮断の件数を算出し、日々の通信傾向を確認する際に利用することが出来ます。
遮断理由となるルール
遮断時のルール名を集計したレポートです。検知傾向を把握するのに役立ちます。
送信元IPアドレス別
送信元IPアドレス別に集計したレポートです。関係のある組織からの誤遮断がないか等を確認できる他、スキャン行為等の目立つIPアドレスについては、将来への攻撃に備えセキュリティグループやAWS Network Firewall等で遮断するための判断に役立ちます。
アクセス先URI別
アクセス先URI(URL)別に集計したレポートです。どういったURI(URL)に対して攻撃されているのかを把握することができます。
アクセス先のURIについて、実際に存在するものである場合、更にクローズアップし、送信元IPアドレスや、ルール名を調査することができます。
LogStare Reporterは、Collectorが収集したログデータのレポート作成や、監視データとの相関分析、高度な複合条件によるアラート通知などを行なうSaaS型のログ分析システムです。LogStare Reporter、LogStare Quintについて実際にログレポートを閲覧したり、アラート状況を確認できるデモサイトがございますのでぜひご覧ください。
以上でLogStare CollectorでのAWS WAFログの取得方法とログレポートについての説明は終了です。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。