
「Apache Log4j」ライブラリに深刻なゼロデイ脆弱性が発覚
米国時間2021年12月9日、Apache Log4j2ログ出力ライブラリの複数のバージョンに影響を与える深刻なゼロデイ脆弱性情報が公開されました。CVE-2021-44228として登録されたこの脆弱性は、様々なブログやレポートで「Log4Shell」と呼ばれています。この脆弱性が悪用されると、影響を受ける環境で特定の文字列をログに記録することにより、任意のコードを実行(RCE:Remote Code Execution)される可能性があります。
影響を受ける対象
影響を受けるとみられるライブラリのバージョンは、2.0-beta 9から2.14.1.です。
当該脆弱性の詳細情報
Log4jは、Javaベースのロギングライブラリで、オープンソースとしてApache Webサーバを利用する多くのクラウドサービスを含む、さまざまなエンタープライズアプリケーションに広く導入され、使用されています。この脆弱性(CVE-2021-44228)は、上記の対象ライブラリバージョンにおけるJava Naming and Directory Interface™(JNDI)インジェクションの脆弱性です。この脆弱性は、対象バージョンのLog4j 2を使用しているシステムが、ログに記録されたメッセージに信頼できないデータを含んでいる場合に発生します。細工された悪意のあるペイロードがこのデータに含まれている場合、悪意のあるサーバへのJNDI Lookupが実行されます。
結果として、悪意のあるJavaオブジェクトが読み込まれ、最終的にRCEにつながる可能性があります。また、Message Lookupの置換が有効な場合、ログメッセージやそのパラメータを制御できる攻撃者はLDAPサーバからロードされた任意のコードを実行することができます。この脆弱性の対象となるライブラリは、多くの企業やクラウドアプリケーションにおいて広く使用されているため、まずはどのシステムがLog4jを使用しているか把握することが課題です。修正プログラムの適用が最善ではあるものの、どのアプリケーションに修正プログラムを適用すべきか精査に時間がかかることが想定されます(ソフトウェア・サプライチェーンリスク)。
また、JDNI Lookupは複数のプロトコルをサポートしていますが、これまでの分析結果によると、悪用可能性はJavaのバージョンと設定に依存しています。つまり、実務的な観点で言えば、対象資産に影響を受けるライブラリが実装されているからといって、即座に当該資産が脆弱であるとは言えず、サーバの設定も踏まえて判断することが推奨されます。