Javaのログ出力ライブラリ「Apache Log4j」で深刻な脆弱性が発見され、脆弱性をもつJavaアプリケーションや製品を利用している場合は、速やかな対処が必要になっています。
すでにLog4jの脆弱性を悪用するコードがネット上で出回っており、日本でも攻撃が増加しています。警察庁が12月14日に公開したデータを見ても、増加の状況がうかがえます。
Apache Log4jは、Apache Software Foundationが開発したJavaベースのログ出力ライブラリです。ライブラリ中のJNDI Lookup機能が悪用されると、外部から悪意のあるJava ClassファイルがユーザーのJavaアプリケーションに取り込まれ、その結果、攻撃者による任意のコードが実行可能になります。
脆弱性をもつApache Log4jは、バージョン2.0-beta9から2.14.1まで。脆弱性を修正したバージョン2.16.0が、Apache Software Foundationからリリースされています。
Apache Log4jは、ごく一般的なJavaライブラリであるため、エンタープライズアプリケーションやクラウドサービス、製品などで広く利用されています。そのため影響は広範囲に及び、「深刻」との見方もあります。米IBMでIBM iのスペシャリストを務めるジェシー・ゴルジンスキー氏は、「IBM iユーザーも例外ではなく、絶対に無視できない問題です」と、自身のブログで述べています。
IBMからは、WebSphere Application Server(バージョン8.5、同9.0)やPower Hardware Management Console(HMC)など多数の製品・サービスがLog4jの脆弱性の影響を受けるという発表がなされています。
対策としては、修正バージョンの2.16.0へアップデートすることが第一です。しかし、自社開発したシステムでLog4jのバージョンを把握しているならばともかく、製品やサービスを利用している場合は、Log4jが使われているのか否かさえ不明である場合が少なくないので、「速やかな対策は困難」という指摘もあります。そのような場合に使える、Log4jを検出するスキャンツールがIBMのX-Forceから無償公開されています。
・Log4jを検出するスキャンツール
https://github.com/xforcered/scan4log4shell
また、緩和策・回避策として、JPCERT/CCは次の3つの方法を挙げています。
(1)Log4j 2.10~2.14.1を利用中の場合:以下のいずれかを実施
・Log4jを実行するJava仮想マシンの起動時に「log4j2.formatMsgNoLookups」というJVMフラグオプションを「true」に指定する
例:-Dlog4j2.formatMsgNoLookups=true
・環境変数「LOG4J_FORMAT_MSG_NO_LOOKUPS」を「true」に設定する
(2)Log4j 2.0-beta9~2.9.1を利用中の場合
・JndiLookupクラスをクラスパスから削除する
(3)攻撃の影響を軽減するための緩和策
・システムから外部への接続を制限するために、可能な限り、アクセス制御の見直しや強化を行う
Log4jの脆弱性について新しい動きや情報が出てきましたら、本サイトでご紹介します。
[iS Technoport]