このツールは、log4j log4shell脆弱性(CVE-2021-44228)を検出し修正するためのものです。.jar/.war/.earファイルからJndiLookupクラスを探して除去します。依存関係は一切不要で無料です。 このツールは以下の環境でテストされています: - Linux 32ビットおよび64ビット - Windows 32ビットおよび64ビット - OpenBSD 64ビット
このツールはGoプログラミング言語で書かれており、依存関係が一切なく、どこでも動作するスタンドアロンバイナリです。
バイナリをダウンロード(Windows、Linux、Darwin、OpenBSD) https://github.com/nanitor/log4fix/releases/tag/v4.2.0
ファイルの脆弱性をスキャン
log4fix detect </path/to/file.war>
ファイルの脆弱性をスキャンし、脆弱なクラスを除去します。
log4fix fix </path/to/file.war> --overwrite
単一のディレクトリの脆弱性をスキャン
log4fix scan </path/to/dir>
複数のディレクトリの脆弱性をスキャン
log4fix scan </path/to/dir/1> </path/to/dir/2>
ディレクトリの脆弱性をスキャンし、脆弱なファイルを除去します。注意:このコマンドは、見つかった脆弱なクラスを含むwar/ear/jarファイルを上書きします。
log4fix scan </path/to/dir> --fix
ディレクトリの脆弱性をスキャンし、見つかった脆弱なjar/ear/warファイルを指定されたファイルに書き出します。
log4fix scan </path/to/dir> --output </path/to/text/file.txt>
ファイルを上書きする前にバックアップを取ることを推奨します。 Windowsでは、修正を適用する前にサービスを停止する必要がある場合があります。 修正が適用されたら、サービスを再起動する必要があります。
go build
これは推奨される修正方法と機能的に同等です:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
ただし、他の.jar/.war/.earファイルの中に入り込み、その中でlog4j-core-*.jarファイルを探し、そこからJndiLookupクラスを除去することもできます。
もちろん、すべてのプラットフォームで動作します。