
CVE-2021-44228および関連するlog4jの問題をスキャン・パッチするためのツール。
最新版のダウンロードリンク:
| Linux x64 (glibc2.17+ / RHEL7+) | Windows およびその他すべてのプラットフォーム |
|---|---|
| Linux バイナリをダウンロード | Java .jar をダウンロード |
🚑 注: SAS 9.4 または SAS Viya 3.x のデプロイメントにパッチを適用する SAS のお客様は、SAS Help Center のドキュメントに記載されている特定の手順に従ってください。
このプロジェクトは logpresso/CVE-2021-44228-Scanner の初期フォークであり、当初はアーカイブを再帰的に検査し、tar/gz 圧縮をサポートするように変更されました。フォーク以降、このプロジェクトはオリジナルと並行して進化し、コードの大部分が書き直されたものの、多くの類似機能を実装しています。オリジナルの「fix」機能は、いくつかの深いネストのエッジケースをサポートし、失敗やロールバックに対してより寛容な patch メソッドに置き換えられましたが、検出メカニズム(scan コマンド)はオリジナルと非常によく似た方法で動作し続けています。
ツールのバージョンは、Releases ページまたはこのページ上部のリンクからダウンロードできます。ネイティブイメージは、EL7 以降で動作するスタンドアロンの実行可能ファイルです。jar ファイルは、JRE 1.8+ で java -jar を使用して実行できます。これは現在、他のプラットフォームや古いリリースの glibc(Windows、AIX、Solaris などを含む)で実行する最良の方法です。
ネイティブイメージをダウンロードした後、実行する前に chmod +x を実行する必要があります。
コマンド構文は、.jar を呼び出すかネイティブ実行可能ファイルを呼び出すかに関係なく同じです。たとえば、次のコマンドは:
./loguccino help
機能的には次のコマンドと同じです:
java -jar ./loguccino-all.jar help
loguccino help コマンドは、利用可能なコマンドのドキュメントを提供します。
./loguccino scan /path/to/approot
これにより、/path/to/approot 内のすべてのサブディレクトリが走査され、ネストされたすべての .tar.gz、.tgz、.tar、.zip、.ear、.war、.jar アーカイブも再帰的に走査されます。
loguccino-scan-[datetime].csv という名前の .csv ファイルが作業ディレクトリに作成され、次のデータが含まれます:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarscan コマンドの詳細については、./loguccino help scan で確認できます。
脆弱性が見つかった場合、loguccino-scan-[datetime].csv が patch コマンドへの入力として使用されます:
./loguccino patch ./loguccino-scan-23122021003311.csv
これにより、見つかった各脆弱性が削除され、パッチ適用された各ファイルのバックアップを含む loguccino-patch-[timestamp] ディレクトリが作成されます。ファイルが複数の脆弱性に対してパッチ適用された場合(複数のツールやソフトウェアリリースを含む大きなバックアップアーカイブなど)、パッチ適用されたファイルの複数のバージョンがプロセスの各段階でバックアップされ、失敗時の段階的なロールバックが可能になります。
注:
ディスク上のファイルにパッチを適用しても、ホスト上で実行中のプログラムのバージョンにはパッチは適用されません。パッチを適用する前に、関連するサービス/アプリケーションを停止し、パッチ適用後に再起動して変更を有効にする必要があることに注意してください。
patch コマンドの詳細については、./loguccino help patch で確認できます。
脆弱性をスキャンする際、一部のアーカイブが破損していると報告される場合があります(圧縮方式がアーカイブの拡張子と一致しないネストされたアーカイブでも発生します)。scan コマンドは、これらのパスを logpresso-scan-[datetime].log に出力します。重要と判断された場合、これらのアーカイブは手動で解凍して検査(またはスキャン)し、実際に破損していることを確認する必要があります。
バグや予期しない動作が発生した場合は、issue を開いて、バグを再現する手順とその他の背景情報を添付してください。
コードへのプルリクエストと更新は歓迎され、推奨されます。