AWS WAFログの有効化とログ解析の基本をわかりやすく解説
生徒
「先生、AWS WAFって攻撃をブロックする仕組みはわかるんですが、その結果を確認する方法ってあるんですか?」
先生
「いい質問ですね。AWS WAF(ウェブ アプリケーション ファイアウォール)はログを有効化することで、どんなリクエストがブロックされたのか、どんなルールに一致したのかを記録できます。ログ解析を行えば、攻撃の傾向を把握して次の対策に活かせますよ。」
生徒
「なるほど!ログを取らないと、実際にどんな攻撃が来ているのか見えないんですね。」
先生
「その通りです。それでは、AWS WAFのログの有効化と基本的な解析の流れを見ていきましょう。」
1. AWS WAFログとは?
AWS WAFログは、読み方はログ(ロッグ)といい、Webアプリケーションに届いたリクエストに対してWAFがどのような判断をしたのかを記録するものです。
ログには、リクエスト元のIPアドレスやユーザーエージェント、マッチしたルールの情報、ブロック・許可・カウントといったアクション結果が含まれます。これを確認することで、単なるブロックの成否だけでなく、攻撃の種類や頻度を把握することができます。
2. ログを有効化する方法
AWS WAFのログはデフォルトでは保存されません。手動で有効化する必要があります。手順の流れは次の通りです。
- AWSマネジメントコンソールにログイン
- WAFのWeb ACL(ウェブ アクセス コントロール リスト)を選択
- 「Logging and metrics(ログとメトリクス)」を開く
- ログの保存先を設定(通常はAmazon Kinesis Data Firehoseを使用)
- 保存先としてS3(エススリー、ストレージサービス)やCloudWatch Logs(クラウドウォッチ ログス)を指定
- 設定を保存して有効化
これで、WAFが処理したリクエストごとの詳細なログがS3やCloudWatchに保存されます。
3. ログに含まれる情報
ログには多くの情報が記録されますが、初心者がまず注目すべきは以下の項目です。
- timestamp(タイムスタンプ):いつアクセスがあったか
- action(アクション):ブロック、許可、カウントのどれか
- ruleId(ルールID):どのルールに一致したか
- sourceIP(送信元IP):リクエスト元のIPアドレス
- uri(ユーリアールアイ):どのページにアクセスしようとしたか
これらを分析すれば、特定のIPから不自然に大量アクセスがあるのか、特定の攻撃パターンが頻発しているのかがわかります。
4. ログ解析の基本
ログ解析の目的は、攻撃の傾向を見抜き、防御ルールを最適化することです。例えば、以下のような視点で分析します。
- どのIPアドレスから攻撃が多いか
- どのルールが頻繁にトリガーされているか
- 正規のユーザーが誤ってブロックされていないか
これらをチェックすることで、ブラックリストやホワイトリストを見直したり、カスタムルールの条件を調整する判断ができます。
5. 代表的なログの保存先
AWS WAFログは以下のようなサービスと組み合わせて使います。
- Amazon S3:読み方はエススリー。ログを長期保存するのに便利
- Amazon CloudWatch Logs:リアルタイム監視やアラート通知に使える
- Kinesis Data Firehose:ログをS3やElasticsearchなどにストリーム配信できる
初心者はまずS3に保存して手動で確認する方法から始め、その後CloudWatchやダッシュボードによる可視化に挑戦すると理解が深まります。
6. 初心者向けの運用のコツ
いきなりすべてのログを詳細に解析する必要はありません。最初は「ブロックされた件数」と「特定のIPの動き」に注目するだけで十分です。
例えば、毎日のログをチェックして「特定のIPから何千回もアクセスがあった」「同じルールが毎日トリガーされている」といった特徴を見つけましょう。その情報をもとに新しいルールを作成したり、不要なアクセスを遮断する対策につなげることができます。