
Log4j 脆弱性のローカル検出スクリプト。ホスト上の全てのJavaプロセスをスキャンし、脆弱性のあるlog4j-core JARが導入されているか、リモートコード実行攻撃(CVE-2021-45046)の可能性があるかを確認します。スキャン結果を指定されたサーバーにアップロードします。
ホスト上の全てのJavaプロセスをスキャンし、log4j2のリモートコード実行(CVE-2021-45046)の影響を受けるかどうかを確認し、レポートをAPIサーバーにアップロードします。
python2.7 / 2.6 / 3.x で動作し、追加ライブラリは不要です。
javaプロセスを列挙javaプロセスが開いているjarを列挙log4j-core-* jarを検索log4j-core-* jarを検索JndiLookup.classを検索JndiLookup.classが見つかった場合、そのバージョン番号、JVM引数、OS環境変数、Dockerコンテナプロセスかどうか、k8sプロセスかに基づいて脆弱性の有無を出力し、アップグレードのヒントを表示javaプロセスを検出javaプロセスが開いているすべてのjarファイルを検出log4j-core-*.jar を検索log4j-core-*.jarを検索log4j-core-*.jar内のJndiLookup.classを検索JndiLookup.classが見つかった場合、そのバージョン、JVM引数、OS環境変数、Dockerコンテナかどうか、k8sかどうかに基づいてヒントを出力Agentに組み込むか、またはこのスキャンスクリプトを一回限り配布して実行できます。運用サーバーにログインして、全ネットワークを一括スキャンすることも可能です。
Agentを簡単に利用できない場合は、OPSサーバーで以下のコマンドを実行してください。
cat hosts.txt|xargs -P 5 -I{} sh -c 'ssh root@{} -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null "wget http://your_site/to_download/log4j2_vul_scanner.py -O /tmp/log4j2_vul_scanner.py -q && python /tmp/log4j2_vul_scanner.py && /usr/bin/rm /tmp/log4j2_vul_scanner.py" > ./logs.txt||exit 0'