7
5

More than 1 year has passed since last update.

【Java】CVE-2021-44228のLog4j脆弱性について調べてみた

Last updated at Posted at 2021-12-11

話題になっていたので調べてみました。

脆弱性の内容について

NISTが出している脆弱性情報を参照しました。
https://nvd.nist.gov/vuln/detail/CVE-2021-44228

大まかな特徴としては以下

  • Log4j2 <=2.14.1 までのバージョンで起きる脆弱性である。
  • JNDI Lookupの機能を使ってログメッセージからLDAPのプロトコルを使って外部から悪意のあるプログラムが実行される可能性がある。
  • 実行できるプログラムの内容は特に制限がない

なので、非常に重大なセキュリティホールとして発表されています。

脆弱性に対する対策

Log4jのバージョンによって対策方法が色々あるみたいです。

・Log4jのバージョンを最新バージョンにアップデートする
Apacheのコミュニティからすでにパッチ修正がかかったバージョンがリリースされているので、アプリケーションの仕様などでLog4jのバージョンを固定する必要がなければ最新版へアップデートすることで対策できます。
Log4j – Apache Log4j Security Vulnerabilities

・2.14-2.10までのバージョンの場合
Java起動時の変数でlog4j2.formatMsgNoLookups=trueに設定することで問題となっているJNDILookupの機能を無効化できます。

・2.10以前の場合(2.0-beta9 to 2.10.0)
設定できる定数がないためJNDILookupのクラスファイルを削除が必要です。

以下コマンドが出されているのでJarから対象クラスファイルを削除方法が提供されています。

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

その他関連情報

JNDI is 何?

JNDIは “Java Naming and Directory Interface”というAPIの略語でJavaが持つ名前空間を検索する際に使うもの

JNDIがあることでJavaからLDAPやDNSなどのプロトコルを個別に実装することなく使うことができます。

第 10 章 JNDI リソース
Lesson: Overview of JNDI (The Java™ Tutorials > Java Naming and Directory Interface)

マイクラサーバーではなにか対処方法ある?

MineCraftもJavaEditionはLog4jを使っているのでセキュリティの脆弱性についてブログ記事が出ていました。

Important Message: Security vulnerability in Java Edition | Minecraft

対処方法は公式側で準備した記事が掲載されているのでまずこっちを確認するが良いと思います。

Security Vulnerability in Minecraft: Java Edition – Home

参考情報

Log4Jゼロデイ脆弱性の概要と手法・対策方法

Apache Log4j2 2.14.1 Remote Code Execution
logging.apache.org:configuration
Apache Log4j Security Vulnerabilities

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5