I. 概要

** 更新: 2022年1月4日記載 ******************************************************************************************
現時点で不明な点もあることから、今後の動向次第で下記掲載内容を修正、更新する予定がありますので、関連情報への注視のほか、本注意喚起の更新内容も逐次ご確認ください。

次の更新を行いました。
詳細は「III. 対策」を参照してください。

– Apache Log4jのバージョン2.17.1(Java 8以降のユーザー向け)、2.12.4(Java 7のユーザー向け)及び2.3.2(Java 6のユーザー向け)が公開されました

****************************************************************************************************************

JavaベースのオープンソースのロギングライブラリのApache Log4jには、任意のコード実行の脆弱性(CVE-2021-44228)があります。
Apache Log4jが動作するサーバーにおいて、遠隔の第三者が本脆弱性を悪用する細工したデータを送信することで、任意のコードを実行する可能性があります。
参考:https://www.jpcert.or.jp/at/2021/at210050.html

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.15.0
https://logging.apache.org/log4j/2.x/security.html

Apache Log4jにはLookupと呼ばれる機能があり、ログとして記録された文字列から、一部の文字列を変数として置換します。
その内、JNDI Lookup機能が悪用されると、遠隔の第三者が細工した文字列を送信し、Log4jがログとして記録することで、Log4jはLookupにより指定された通信先もしくは内部パスからjavaclassファイルを読み込み実行し、結果として任意のコードが実行される可能性があります。

2021年12月11日現在、JPCERT/CCは、本脆弱性を悪用する実証コードが公開されていること、および国内にて本脆弱性の悪用を試みる通信を確認しています。
Apache Log4jを利用している場合には、The Apache Software Foundationなどが提供する最新の情報を確認し、バージョンアップや回避策の適用などの実施を検討することを推奨します。

また、Apache Log4jを使用するアプリケーションやソフトウェアなどで、今後セキュリティアップデートが公開される可能性があります。
関連する情報を注視し、必要な対策や対応の実施をご検討ください。

** 更新: 2021年12月13日追記 *****************************************************************************************
Apache Log4j 1系のバージョンについては、第三者が本脆弱性を悪用するためにLog4jの設定ファイルを変更することができれば影響を受けるとの情報が公開されていますが、攻撃を行うためには何らかの方法で事前にシステムに不正
にアクセスする必要があり、遠隔からの脆弱性を悪用した攻撃の影響は受けません。

Restrict LDAP access via JNDI #608 Comment
https://github.com/apache/logging-log4j2/pull/608#issuecomment-991730650
****************************************************************************************************************


II. 対象
対象となるバージョンは次のとおりです。

– Apache Log4j 2.15.0より前の2系のバージョン

なお、すでにEnd of Lifeを迎えているApache Log4j 1系のバージョンは、Lookup機能が含まれておらず、JMS Appenderが有効でもクラス情報がデシリアライズされないため影響を受けないとの情報を確認しています。

また、影響を受けるバージョンや条件に関する情報が変更あるいは更新される可能性や、Apache Log4jを使用するアプリケーションやソフトウェアの開発元などから情報が公開される可能性もあるため、最新の情報は各組織から提供される関連情報をご確認ください。


III. 対策
The Apache Software Foundationから本脆弱性を修正したバージョンが公開されています。
速やかな対策の適用実施をご検討ください。
次のバージョン以降では、Lookup機能がデフォルトでは無効になりました。

– Apache Log4j 2.15.0

使用するアプリケーションやソフトウェアなどについて関連情報を注視し、本脆弱性の影響を受けることが判明した場合も、速やかにアップデートなどの対応を行うことを推奨します。

また、すでに本脆弱性の悪用を試みる通信が確認されていることから、対策の適用実施とあわせて、不審なファイルおよびプロセスの有無や、通信ログ等を確認し、攻撃の有無を確認することを推奨します。

** 更新: 2021年12月15日追記 ********************************************************************************************
The Apache Software Foundationは、Apache Log4jのバージョン2.16.0(Java 8以降のユーザー向け)および2.12.2(Java 7のユーザー向け)を公開しました。

特定の構成において不正なJNDI検索パターンを入力値とする場合にサービス運用妨害(DoS)が生じる可能性があることが判明し、Message Lookup機能が削除され、JNDIへのアクセスがデフォルトで無効になりました。この問題にはCVE-2021-45046が採番されています。

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 (Java 7) and Log4j 2.16.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.16.0

任意のコード実行の脆弱性(CVE-2021-44228)への対策に加え、サービス運用妨害攻撃の脆弱性(CVE-2021-45046)などのリスクに対応するため、2.16.0または2.12.2へのアップデートを推奨します。
*********************************************************************************************************************
** 更新: 2021年12月20日追記 *********************************************************************************************
CVE-2021-45046の影響について、一部の環境では任意のコード実行などが可能であるとの情報が公開されています。
*********************************************************************************************************************
** 更新: 2021年12月20日追記 *********************************************************************************************
2021年12月18日(現地時間)、The Apache Software Foundationは、Apache Log4jのバージョン2.17.0(Java 8以降のユーザー向け)を公開しました。

自己参照による制御不能な再帰から保護されていないことに起因し、Log4jの設定によっては影響を受けるサービス運用妨害攻撃の脆弱性(CVE-2021-45105)が修正されています。

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
*********************************************************************************************************************
** 更新: 2021年12月28日追記 *********************************************************************************************
2021年12月21日(現地時間)、The Apache Software Foundationは、Apache Log4jのバージョン2.3.1(Java 6のユーザー向け)及び2.12.3(Java 7のユーザー向け)を公開しました。

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.0 (Java 8), 2.12.3 (Java 7) and 2.3.1 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0
*********************************************************************************************************************
** 更新: 2022年1月4日追記 ***********************************************************************************************
2021年12月28日(現地時間)、The Apache Software Foundationは、Apache Log4jの2.17.1(Java 8以降のユーザー向け)、2.12.4(Java 7のユーザー向け)及び2.3.2(Java 6のユーザー向け)を公開しまし
た。

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.17.1 (Java 8), 2.12.4 (Java 7) and 2.3.2 (Java 6)
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.1
*********************************************************************************************************************

IV. 回避策
The Apache Software Foundationから、Log4jのバージョンに応じた回避策に関する情報が公開されています。

** 更新: 2021年12月15日追記 *********************************************************************************************
The Apache Software Foundationより、一部の回避策は、特定の手法を用いた攻撃を回避するには不十分であることが判明したと明らかにし、有効な回避策として、JndiLookup.classをクラスパスから削除する回避策の実施を呼びかけ
ています。
**********************************************************************************************************************

Apache Log4j Security Vulnerabilities
Fixed in Log4j 2.12.2 and Log4j 2.16.0
https://logging.apache.org/log4j/2.x/security.html

Log4jバージョン2.10およびそれ以降
– Log4jを実行するJava仮想マシンを起動時に「log4j2.formatMsgNoLookups」というJVMフラグオプションを指定する 例: -Dlog4j2.formatMsgNoLookups=true
– 環境変数「LOG4J_FORMAT_MSG_NO_LOOKUPS」を「true」に設定する

Log4jバージョン2.10より前
– JndiLookupクラスをクラスパスから削除する

また、本脆弱性を悪用する攻撃の影響を軽減するため、システムから外部への接続を制限するための可能な限りのアクセス制御の見直しや強化もご検討ください。


V. 参考情報
apache / logging-log4j2
Restrict LDAP access via JNDI #608
https://github.com/apache/logging-log4j2/pull/608

The Apache Software Foundation
Lookups
https://logging.apache.org/log4j/2.x/manual/lookups.html

LunaSec
Log4Shell: RCE 0-day exploit found in log4j2, a popular Java logging package
https://www.lunasec.io/docs/blog/log4j-zero-day/

SANS ISC InfoSec Forums
RCE in log4j, Log4Shell, or how things can get bad quickly
https://isc.sans.edu/forums/diary/RCE+in+log4j+Log4Shell+or+how+things+can+get+bad+quickly/28120/

BlueTeam CheatSheet * Log4Shell*
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

** 更新: 2021年12月13日追記 *********************************************************************************************
Japan Vulnerability Notes JVNVU#96768815
Apache Log4jにおける任意のコードが実行可能な脆弱性
https://jvn.jp/vu/JVNVU96768815/
********************************************************************************************************************

** 更新: 2021年12月20日追記 *********************************************************************************************
JPCERT/CC Eyes
Apache Log4j2のRCE脆弱性(CVE-2021-44228)を狙う攻撃観測
https://blogs.jpcert.or.jp/ja/2021/12/log4j-cve-2021-44228.html
********************************************************************************************************************

** 更新: 2021年12月28日追記 *********************************************************************************************
JPCERT/CC CyberNewsFlash
2021年12月に公表されたLog4jの脆弱性について
https://www.jpcert.or.jp/newsflash/2021122401.html
********************************************************************************************************************