トップ セキュリティ情報 2021年度 <更新>【注意喚起】Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起

<更新>【注意喚起】Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起

2021年12月22日 南大沢 日野 荒川

※情報が更新されている可能性がありますので、最新情報は以下を参照ください。
https://www.jpcert.or.jp/at/2021/at210050.html
引用元: JPCERTコーディネーションセンター 注意喚起

Apache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起がありました。

I. 概要

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

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

  - CVE-2021-45046の影響について、一部の環境では任意のコード実行などが可能であるとの情報
  が公開されています
  - Apache Log4jのバージョン2.17.0が公開されました
************************************************************************************************

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

 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により指定された通信先もしくは内部パ
スからjava classファイルを読み込み実行し、結果として任意のコードが実行される可能性があります。

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

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


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

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

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

また、影響を受けるバージョンや条件に関する情報が変更あるいは更新される可能性や、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
************************************************************************************************


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
************************************************************************************************


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及びそれ以降
 - 次のいずれかを実施する
 (1)Log4jを実行するJava仮想マシンを起動時に「log4j2.formatMsgNoLookups」というJVMフラグ
    オプションを「true」に指定する 例: -Dlog4j2.formatMsgNoLookups=true
 (2)環境変数「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-11 初版
2021-12-13 「II. 対象」、「IV. 回避策」、「V. 参考情報」の一部記載の追記・修正
2021-12-15 「III. 対策」、「IV. 回避策」の追記
2021-12-20 「I. 概要」、「III. 対策」、「V. 参考情報」の追記