ページの先頭です。
ここから本文です。

お知らせ

【CONNEXIVE Application Platform】Apache Log4j ライブラリにおけるリモートコード実行の複数の脆弱性(CVE-2021-44228、CVE-2021-45046)について

■概要
Apache Log4j ライブラリにてリモートコードが実行される複数の脆弱性(CVE-2021-44228、CVE-2021-45046)が検出されましたので、対処方法をお知らせします。

※2021/12/22 更新
Apache Log4jの見解が更新され、以前の手順(設定ファイルに"{nolookups}"を追記する手順)では、CVE-2021-45046の脆弱性が緩和できないことが判明しました。
対処方法をjarファイルからJndiLookup.classを削除する手順に変更しました。
以前の手順による対処を実施済みの場合も、変更後の手順で対処を再度実施してください。この場合、以前の手順で実施した内容を元に戻す必要はありません。

※2021/12/16 更新
CONNEXIVE Application Platform V1.0 の場合の対処方法と CONNEXIVE IoT基盤サービス移行専用ライセンス の場合の対処方法を追加しました。

■影響のある製品
・CONNEXIVE Application Platform V1.0
・CONNEXIVE Application Platform V2.0
・CONNEXIVE IoT基盤サービス移行専用ライセンス

■対処方法
製品のバージョンによって対処方法が異なりますので、以下からご利用のバージョンの対処方法を参照してください。
インストール対象・方法によっては対処方法に記載のファイルが無い場合があります。ファイルが無い場合、そのファイルは無視して手順を進めてください。

●CONNEXIVE Application Platform V2.0 の場合
(本製品は、Apache Log4j V2.8.2を利用しています。)
※CAPのインストール時にgroup_vars/cap_ee.ymlに対しglobal_ice_mode: 'v1'を指定して実行された場合、CONNEXIVE ICE V1用の構成でインストールされています。CONNEXIVE ICE V1用の構成でインストールしている場合は、下記の「●CONNEXIVE ICE V1用の構成でインストールしている場合」を参照してください。

1. 以下のコマンドでサービスを停止してください。
systemctl stop storm-nimbus.service
systemctl stop storm-supervisor.service
systemctl stop storm-ui.service
systemctl stop tomcat_8410
systemctl stop tomcat_8420
systemctl stop eep-mqtt-event-broker.service
systemctl stop eep-iot-event-hub.service

2. Log4jから問題のJNDIサーバに通信するためのクラス(JndiLookup.class)を削除します。
まず該当のクラスが含まれるjarファイルのバックアップを作成してください。
cp /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar <任意のディレクトリ>
cp /opt/nec/pf/eep/hub/lib/log4j-core.jar <任意のディレクトリ>

※以降は全部で8つのjarファイルを対象としたコマンドを記載していますが、同名のファイル(/opt/nec/pf/eep/hub/lib/log4j-core.jarと/opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jarなど)は内容が同一であるため、バックアップを作成するのは上記2ファイルのみで問題ありません。

対象のjarファイルにJndiLookup.classが含まれていることを確認してください。
jar tvf /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/api/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/file-server/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/management/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar | grep JndiLookup.class

次にzipコマンドでjarファイルからJndiLookup.classを削除してください。
※ zipコマンドが存在しない場合はyumなどを使用しインストールしてください。
zip -q -d /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8410/webapps/api/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8410/webapps/file-server/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8420/webapps/management/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/hub/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

対象のjarファイルからJndiLookup.classが削除されていることを確認してください。
jar tvf /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/api/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8410/webapps/file-server/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/management/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar | grep JndiLookup.class

3. 以下のコマンドでサービスを起動してください。
systemctl start eep-iot-event-hub.service
systemctl start eep-mqtt-event-broker.service
systemctl start tomcat_8420
systemctl start tomcat_8410
systemctl start storm-ui.service
systemctl start storm-supervisor.service
systemctl start storm-nimbus.service


●CONNEXIVE ICE V1用の構成でインストールしている場合
(本製品は、Apache Log4j V2.8.2を利用しています。)

1. 以下のコマンドでサービスを停止してください。
systemctl stop ice-message-router
systemctl stop tomcat_8410
systemctl stop tomcat_8420
systemctl stop tomcat_8430
systemctl stop eep-iot-event-hub.service

2. Log4jから問題のJNDIサーバに通信するためのクラス(JndiLookup.class)を削除します。
まず該当のクラスが含まれるjarファイルのバックアップを作成してください。
cp /opt/nec/pf/ice/msgrouter_core/lib/log4j-core-2.8.2.jar <任意のディレクトリ>
cp /opt/nec/pf/eep/hub/lib/log4j-core.jar <任意のディレクトリ>

※以降は全部で5つのjarファイルを対象としたコマンドを記載していますが、同名のファイル(/opt/nec/pf/ice/msgrouter_core/lib/log4j-core-2.8.2.jarと/opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jarなど)は内容が同一であるため、バックアップを作成するのは上記2ファイルのみで問題ありません。

対象のjarファイルにJndiLookup.classが含まれていることを確認してください。
jar tvf /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8430/webapps/ROOT/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/ice/msgrouter_core/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class

次にzipコマンドでjarファイルからJndiLookup.classを削除してください。
※ zipコマンドが存在しない場合はyumなどを使用しインストールしてください。
zip -q -d /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/tomcat/8430/webapps/ROOT/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/ice/msgrouter_core/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/hub/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

対象のjarファイルからJndiLookup.classが削除されていることを確認してください。
jar tvf /opt/tomcat/8410/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8420/webapps/config/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/tomcat/8430/webapps/ROOT/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/ice/msgrouter_core/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class

3. 以下のコマンドでサービスを起動してください。
systemctl start eep-iot-event-hub.service
systemctl start tomcat_8430
systemctl start tomcat_8420
systemctl start tomcat_8410
systemctl start ice-message-router


●CONNEXIVE Application Platform V1.0 の場合
(本製品は、Apache Log4j V2.1を利用しています。)

1. 対処が必要なサービスを利用しているか確認します。
以下のコマンドで対処が必要なサービスが存在するかおよび起動しているかを確認してください。起動している場合はActive: active (running)、停止している場合はActive: inactive (dead)となります。
systemctl status storm-nimbus.service
systemctl status storm-supervisor.service
systemctl status storm-ui.service

また、以下のコマンドでサービスの自動起動設定を確認してください。自動起動が有効な場合はenabled、無効な場合はdisabledが出力されます。
systemctl is-enabled storm-nimbus.service
systemctl is-enabled storm-supervisor.service
systemctl is-enabled storm-ui.service

サービスが起動中、あるいは自動起動設定が有効な場合は該当サービスを利用されています。

2. 以下のコマンドでサービスを停止してください。
systemctl stop storm-nimbus.service
systemctl stop storm-supervisor.service
systemctl stop storm-ui.service

3. Log4jから問題のJNDIサーバに通信するためのクラス(JndiLookup.class)を削除します。
まず該当のクラスが含まれるjarファイルのバックアップを作成してください。
cp /usr/local/apache-storm-1.0.2/lib/log4j-core-2.1.jar <任意のディレクトリ>

対象のjarファイルにJndiLookup.classが含まれていることを確認してください。
jar tvf /usr/local/apache-storm-1.0.2/lib/log4j-core-2.1.jar | grep JndiLookup.class

次にzipコマンドでjarファイルからJndiLookup.classを削除してください。
※ zipコマンドが存在しない場合はyumなどを使用しインストールしてください。
zip -q -d /usr/local/apache-storm-1.0.2/lib/log4j-core-2.1.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

対象のjarファイルからJndiLookup.classが削除されていることを確認してください。
jar tvf /usr/local/apache-storm-1.0.2/lib/log4j-core-2.1.jar | grep JndiLookup.class

4. 以下のコマンドでサービスを起動してください。
systemctl start storm-ui.service
systemctl start storm-supervisor.service
systemctl start storm-nimbus.service


●CONNEXIVE IoT基盤サービス移行専用ライセンス の場合
(本製品は、ID鍵管理サーバのサービスのみApache Log4j V2.10.0、その他のサービスはApache Log4j V2.8.2を利用しています。)
本手順に記載のコマンドは管理者権限で実行してください。

1. 対処が必要なサービスを利用しているか確認します。

・Apache Storm関連のサービス
 ‐storm-nimbus.service
 ‐storm-supervisor.service
 ‐storm-ui.service

・Event Exchange Platform関連のサービス
 ‐eep-iot-event-hub.service
 ‐eep-mqtt-event-broker.service
 ‐eep-http-event-broker.service

・ID鍵管理サーバ(SecureWareCLM)関連のサービス
 ‐tomcat8-clm.service

以下のコマンドで対処が必要なサービスが存在するかおよび起動しているかを確認してください。起動している場合はActive: active (running)、停止している場合はActive: inactive (dead)となります。
systemctl status storm-nimbus.service
systemctl status storm-supervisor.service
systemctl status storm-ui.service
systemctl status eep-iot-event-hub.service
systemctl status eep-mqtt-event-broker.service
systemctl status eep-http-event-broker.service
systemctl status tomcat8-clm.service

また、以下のコマンドでサービスの自動起動設定を確認してください。自動起動が有効な場合はenabled、無効な場合はdisabledが出力されます。
systemctl is-enabled storm-nimbus.service
systemctl is-enabled storm-supervisor.service
systemctl is-enabled storm-ui.service
systemctl is-enabled eep-iot-event-hub.service
systemctl is-enabled eep-mqtt-event-broker.service
systemctl is-enabled eep-http-event-broker.service
systemctl is-enabled tomcat8-clm.service

サービスが起動中、あるいは自動起動設定が有効な場合は該当サービスを利用されています。

2. 以下のコマンドでサービスを停止してください。
systemctl stop storm-nimbus.service
systemctl stop storm-supervisor.service
systemctl stop storm-ui.service
systemctl stop eep-http-event-broker.service
systemctl stop eep-mqtt-event-broker.service
systemctl stop eep-iot-event-hub.service
systemctl stop tomcat8-clm.service

3. Log4jから問題のJNDIサーバに通信するためのクラス(JndiLookup.class)を削除します。
まず該当のクラスが含まれるjarファイルのバックアップを作成してください。
cp /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar <任意のディレクトリ>
cp /usr/local/apache-tomcat-8.5.39/webapps/SWCLM/WEB-INF/lib/log4j-core-2.10.0.jar <任意のディレクトリ>
cp /opt/nec/pf/eep/hub/lib/log4j-core.jar <任意のディレクトリ>

※以降は全部で5つのjarファイルを対象としたコマンドを記載していますが、同名のファイル(/opt/nec/pf/eep/hub/lib/log4j-core.jarと/opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jarなど)は内容が同一であるため、バックアップを作成するのは上記3ファイルのみで問題ありません。

対象のjarファイルにJndiLookup.classが含まれていることを確認してください。
jar tvf /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /usr/local/apache-tomcat-8.5.39/webapps/SWCLM/WEB-INF/lib/log4j-core-2.10.0.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/http/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar | grep JndiLookup.class

次にzipコマンドでjarファイルからJndiLookup.classを削除してください。
※ zipコマンドが存在しない場合はyumなどを使用しインストールしてください。
zip -q -d /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /usr/local/apache-tomcat-8.5.39/webapps/SWCLM/WEB-INF/lib/log4j-core-2.10.0.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/broker/http/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/hub/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

対象のjarファイルからJndiLookup.classが削除されていることを確認してください。
jar tvf /usr/local/apache-storm-1.2.3/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /usr/local/apache-tomcat-8.5.39/webapps/SWCLM/WEB-INF/lib/log4j-core-2.10.0.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/http/webapps/http-event-broker/WEB-INF/lib/log4j-core-2.8.2.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/hub/lib/log4j-core.jar | grep JndiLookup.class
jar tvf /opt/nec/pf/eep/broker/mqtt/lib/log4j-core.jar | grep JndiLookup.class

4. 以下のコマンドでサービスを起動してください。
systemctl start eep-iot-event-hub.service
systemctl start eep-mqtt-event-broker.service
systemctl start eep-http-event-broker.service
systemctl start storm-ui.service
systemctl start storm-supervisor.service
systemctl start storm-nimbus.service

5. ID鍵管理サーバ(SecureWareCLM)はIoT基盤サービスでサンプルとして導入されています。本番環境での利用を推奨しませんので、使用されていなければ以下の手順で停止していることを確認・自動起動を無効化してください。もし本機能を使用されている場合は別途お問い合わせください。

手順2でtomcat8-clm.serviceを停止しているので、以下のコマンドでサービスが停止していること(Active: inactive (dead))を確認してください。
systemctl status tomcat8-clm.service

以下のコマンドで自動起動を無効化してください。
systemctl disable tomcat8-clm.service

次に以下のコマンドでdisabledとなることを確認してください。
systemctl is-enabled tomcat8-clm.service


■関連情報
本脆弱性問題の詳細は、次のURLを参照してください。
・CVE-2021-44228
https://www.cve.org/CVERecord?id=CVE-2021-44228

・CVE-2021-45046
https://www.cve.org/CVERecord?id=CVE-2021-45046

・Apache Log4j 公式サイト
https://logging.apache.org/log4j/2.x/security.html

製品名カテゴリ

CONNEXIVE Application Platform V1.0
CONNEXIVE Application Platform V2.0

  • コンテンツID: 3010103722
  • 公開日: 2021年12月15日
  • 最終更新日:2021年12月23日
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。