はじめに
AWS WAFでのLog4Sell防御についてです。
設定は、マネージドルールを追加するだけなので、少し落穂拾い的なことを。
設定
現状、Log4Shellのルールは、AWS-AWSManagedRulesKnownBadInputsRuleSetに含まれています。
AWSManagedRulesKnownBadInputsRuleSetとは、AWSが提供する、攻撃性のあるインプット情報を判定するルールセットになります。
Log4JRCE
というルールが、Log4Sellのためのものになります。
今回のLog4Sellの流行を受けて、至急緩和策を入れたいけれど、WAFでの誤検知も怖い…
Log4Sellだけでも防げないかといった要望もあると思います。
そのような時は、Log4JRCEのみブロックモードで動かしつつ、他のルールはカウントモードで動かすといった対応が可能です。
AWS-AWSManagedRulesKnownBadInputsRuleSetを追加後、以下のような設定をすることで実現できます。
AWS-AWSManagedRulesKnownBadInputsRuleSetはルール数が少ないので、他をポチポチカウント設定することも苦ではないですが、大量のルールを保有するルールセットで同様のことを行う場合は、上方のall rule設定で操作すると楽です。
ログで確認
以前はfirehoseでS3に格納したログをAthenaで解析していたのですが、今は直接Cloudwatch Logsで見れちゃいますし、Log Insightで解析することも可能なので、すごく楽になりました。
ログから、どのルールでBlockしたのかを確認することが可能です。
ちなみに、カウントモードで運用していると、以下のようなログになります。ちょっと注意が必要です。
まとめ
AWS WAFでの設定について、紹介させていただきました。
ただ、これはあくまで緩和と考えています。
緩和でバージョンアップまでの時間を稼ぎつつ、Log4Shellの根本対策のため、サーバー側でのLog4jのアップデートをしましょう!