AWS導入支援・クラウド運用代行 スカイアーチネットワークス

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

平素より、弊社スカイアーチネットワークスのサービスをご利用頂きまして、誠に有難う御座います。
Apache Log4jにて脆弱性が報告されました。脆弱性情報と対応に関して下記の通り報告させて頂きます。
本件につきまして、お客様にてアプリケーション側での利用有無をご確認頂ますようお願いいたします。

【12/15更新】
下記JPCERT発表では更新されたバージョンはlog4j 2.15となっておりますが、再更新があり、最新として2.16がリリースされております。
https://logging.apache.org/log4j/2.x/security.html

【12/16更新】
JPCERTの発表内容が更新されましたので、本ページの記載内容を更新いたしました。

【12/22更新】
Java 8以降のユーザー向けにlog4j 2.17がリリースされましたので、本ページの記載内容を更新いたしました。
リリース情報は下記ページをご参照下さい。
https://logging.apache.org/log4j/2.x/security.html#log4j-2.17.0

概要

更新: 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

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

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

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

対象

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

– 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

対策

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)

任意のコード実行の脆弱性(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)

回避策

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

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

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

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

参考情報

備考

最終更新日 2021.12.13

価格・仕様などサービス詳細のお問い合わせや、クラウド導入の分からないことなど、お気軽にご連絡ください

お電話でのご相談・お問い合わせ

03-6743-1100

(平日10:00~18:00)

スカイアーチネットワークスはAWS アドバンストティアサービスパートナーです