こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
12/10/2021にApache Log4jの任意のコード実行の脆弱性(Log4Shell: CVE-2021-44228)が公開されました。PoCも公開されており、攻撃も観測されています。非常に影響範囲の大きい脆弱性となりますので、こちらで取り上げます。
攻撃の概要
攻撃の概要は下図のようなものです
攻撃のPoCの動画も公開されています。
SIOS Security Channel : Log4Shell (CVE-2021-44228) PoC
log4j 1.xでもJNDIを使用する設定にする等の条件を満たせば影響を受ける可能性があるというコメントが出ています。
Red Hatがlog4j 1.x(JMSAppenderを使用した設定になっている場合)のCVE: CVE-2021-4104を出しました。
CVE-2021-44228では設定がデフォルト以外の場合がカバーされていませんでしたので、新たにCVE-2021-45046が発行されました。log4jも2.16.0がリリースされています。
Deserialization of Untrusted Data in logback で説明されていますが、log4j v1の移行先としても案内されていたlogbackですが、logback 1.2.7 以前のバージョンでは設定ファイルを何らかの形で変更できるユーザに限りLDAPを使った攻撃が成功するということで、CVE-2021-42550が発行されました。logbackに移行する場合には、1.2.8以上のバージョンを使用しましょう。
新たにCVE-2021-45105 (無限ループによるDoSの脆弱性)が発行されました。log4jの2.0beta-9から2.16.0までが対象です。それに伴って2.17.0がリリースされています。
新たにCVE-2021-44832 (リモートコード実行の脆弱性)が発行されました。log4jの2.0-alpha7から2.17.0までが対象です。それに伴って2.17.1がリリースされています。
【2021/12/12 12:00追記】AWS/Red Hat/Oracle/F5/NetAppからの情報を追記しました。
【2021/12/12 19:00追記】Microsoft/Googleからの情報を追記しました。
【2021/12/13 05:30追記】CISA/Cisco/Dell/VMWare/IBMからの情報を追記しました。
【2021/12/13 06:00追記】各セキュリティベンダーからの情報を追記しました。
【2021/12/13 17:20追記】Elastic Search, MovableTypeからの情報を追記しました。
【2021/12/13 21:50追記】log4j 1.x+JMSAppenderの脆弱性(CVE-2021-4104)の情報を追記しました。
【2021/12/14 10:00追記】影響を受ける製品(自分用纏め)の情報を追記しました。
【2021/12/14 10:15追記】OWASP ZAP/GVMの情報を追記しました。
【2021/12/15 03:25追記】CVE-2021-45046の情報を追記しました。
【2021/12/19 10:30追記】CVE-2021-42550(logbackの脆弱性), CVE-2021-45105(無限ループのDoS脆弱性)の情報を追記しました。
【2021/12/24 07:50追記】Struts2, Zabbix, NVIDIAの情報を追記しました。
【2021/12/26 13:00追記】SIOS Security ChannelでのPoC動画を追記しました。
【2021/12/29 19:00追記】CVE-2021-44832の情報を追記しました。
[過去の関連リンク]
QualysによるLinux Kernelの脆弱性(Important: CVE-2021-33909)とSystemdの脆弱性(CVE-2021-33910)に関するアドバイザリ
全てのWifiデバイスや(WPA3を含む)プロトコルに対してのデザイン上の問題と実装上の問題(FragAttack)
Intel(R) PROSet/Wireless WiFi 製品の脆弱性(High: INTEL-SA-00402, Critical: INTEL-SA-00403)
Priority
CVE番号 | 影響するバージョン | 一次情報源 | Priority | CVSS Score / CVSS Vector |
---|---|---|---|---|
CVE-2021-44228 | Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints. | Vendor: 10.0 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H | |
CVE-2021-4104 | Restrict LDAP access via JNDI #608 | Red Hat: 8.1 | Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H | |
CVE-2021-45046 | CVE-2021-45046: Apache Log4j2 Thread Context Message Pattern and Context Lookup Pattern vulnerable to a denial of service attack | Vendor: 3.7 | CVSS: 3.0 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L | |
CVE-2021-42550 | Deserialization of Untrusted Data in logback | Vendor: 6.6 Medium | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H | |
CVE-2021-45105 | Apache Log4j Security Vulnerabilities CVE-2021-45105 Apache Log4j Vulnerability in NetApp Products | Vendor: 7.5 High | CVSS: 3.0 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | |
CVE-2021-44832 | Apache Log4j Security Vulnerabilities | Vendor: 6.6 Moderate | CVSS: 3.0 AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H |
概要
Apache log4j ライブラリにリモートコード実行の脆弱性が出ました。既にPoCもGitHub上に出ており、悪用は極めて容易で、一般ユーザーに身近なところでは「Minecraft」にも影響が出ているとのことで、サーバーを一時閉鎖したり、一斉アップデートする騒ぎにまで発展しています。
2021/12/10時点での詳しい情報はこちらのサイト(英語)にまとまっています。 また、日本語ではこちらのサイトやこちらのサイトにまとまっています。
JPCERTの方でも特設サイトを設けて情報を逐次更新しています。
CVE-2021-44228では設定がデフォルト以外の場合がカバーされていませんでしたので、新たにCVE-2021-45046が発行されました。log4jも2.16.0がリリースされています。
Deserialization of Untrusted Data in logback で説明されていますが、log4j v1の移行先としても案内されていたlogbackですが、logback 1.2.7 以前のバージョンでは設定ファイルを何らかの形で変更できるユーザに限りLDAPを使った攻撃が成功するということで、CVE-2021-45046が発行されました。logbackに移行する場合には、1.2.8以上のバージョンを使用しましょう。
2.0.0-beta9から2.16.0までのlog4jでlookupの自己再帰による無限ループが発生し、DoSを引き起こす可能性があることがわかりました。これに伴い、log4j-2.17.0がリリースされていますので、log4j-2.17.0以上に更新するようにしましょう。
以降、続報が入り次第、本ドキュメントは更新していきます。
各種機関
ニュース記事・リンク等
- Log4Shell: RCE 0-day exploit found in log4j2, a popular Java logging package
- 脅威に関する情報: Apache Log4jに新たな脆弱性(CVE-2021-44228) 実際の悪用も確認(Palo Alto)
- マイクラもハッキング ~「Apache Log4j」ライブラリに致命的なリモートコード実行のゼロデイ脆弱性【12月10日18:45追記】(やじうまの杜・窓の杜)
- 「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か (ITMedia)
- Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた(piyolog)
- CVE-2021-44228 – 「Apache Log4j」にリモートコード実行(RCE)のゼロデイ脆弱性が存在(Akamai Blog)
SWベンダー・サービス等
- AWS
- Red Hat
- Oracle
- F5
- NetApp
- Microsoft
- VMWare
- Cisco
- Dell
- IBM
- Elastic Search
- Movable Type
- OWASP ZAP
- Apache Struts2
- Zabbix
- NVIDIA
セキュリティベンダーからの情報
- PaloAlto Networks
- TrendMicro
- Symantec
- Mcafee
- kaspersky
- Sophos
- Aqua
- Sysdig
- Greenbone (OpenVAS/Nessus)
影響を受ける可能性がある製品(自分用纏め)
その他の記事
- Logbackの場合の影響度(クラスメソッド)
- AWS WAFに関して(クラスメソッド)
本攻撃の悪用等
Paloalto Networkによると、本脆弱性を突いた攻撃が観測されているそうです。脅威に関する情報Apache Log4jに新たな脆弱性(CVE-2021-44228) 実際の悪用も確認
攻撃されるとリンク先にもあるようなログが残るようです。
修正方法
各ディストリビューションの情報を確認してください。
脆弱性概要
Apache Log4jにリモートコード実行の脆弱性が見つかりました。Apache Log4jはJMDIをサポートしていますが、JMDI Lookup機能が悪用されることにより、悪意のある第三者によって細工された文字列からjava classファイルを読み込んで実行することで、任意のコードが実行される可能性があります。
対処方法
Apache Log4jを最新のバージョン(2.16.0以上2.15.0以上)に更新して下さい。ダウンロードはこちらからになります。ディストリビューションでも案内が出ていると思いますので、そちらの支持に従って下さい。
(rc版が出ていましたが、正式バージョンがリリースされました。)
緩和策
以下の緩和策ではCVE-2021-45046の場合など完全に守れないシチュエーションがあることが判明しています。緩和策を用いるよりも、なるべくLog4jのバージョンを2.17.1以上にアップデートしましょう。
- Apache log4jのバージョンが2.10以上の場合にはjvmで
-Dlog4j2.formatMsgNoLookups=true
にする事で回避が出来る。
- 2.7 <= log4j < 2.10 の場合にはこちらにあるように、ログの出力パターンを%mから%m{nolookups}に設定することで回避することが出来る。
- 2.0-beta9以上では、Log4jからorg.apache.logging.log4j.core.lookup.JndiLookupを空にする(具体的にはにある通り、Log4jのjarから下記のコマンドで削除する。
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debianhttps://security-tracker.debian.org/tracker/CVE-2021-45046
https://security-tracker.debian.org/tracker/CVE-2021-44228
https://security-tracker.debian.org/tracker/CVE-2021-4104
https://security-tracker.debian.org/tracker/CVE-2021-42550
- Red Hat Enterprise Linux/CentOShttps://access.redhat.com/security/cve/CVE-2021-45046
https://access.redhat.com/security/cve/CVE-2021-44228
https://access.redhat.com/security/cve/CVE-2021-4104
https://access.redhat.com/security/cve/CVE-2021-42550
- Ubuntuhttps://ubuntu.com/security/CVE-2021-45046
https://ubuntu.com/security/CVE-2021-44228
https://ubuntu.com/security/CVE-2021-4104
https://ubuntu.com/security/CVE-2021-42550
- SUSE/openSUSEhttps://www.suse.com/security/cve/CVE-2021-45046.html
https://www.suse.com/security/cve/CVE-2021-44228.html
https://www.suse.com/security/cve/CVE-2021-4104.html
https://www.suse.com/security/cve/CVE-2021-42550.html
日々のメモを更新しています。
セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。