この Ansible ロールは、影響を受ける Log4j JAR ファイルから脆弱な JndiLookup クラスを削除することで、Log4Shell 脆弱性 (CVE-2021-44228) をプログラム的に緩和する Python ベースのスクリプトをデプロイします。
Ansible 経由で実行するように設計されていますが、必要に応じて手動でスクリプトを実行することもできます。
Log4Shell 脆弱性の詳細はこちらをご覧ください:
JndiLookup.class が存在するか確認しますJndiLookup.class を削除しますzip と zipinfo がインストールされていることPyYAML がインストールされていること (pip install pyyaml)スクリプトは YAML ファイルで設定され、ロールによって自動的にテンプレート化されます。
config.yaml の例:
app_directories:
- /opt/apps
backup_directory: /opt/backups
log_file: /var/log/log4j_mitigation.log
app_directories: JAR ファイルをスキャンするディレクトリのリストbackup_directory: 元の JAR バックアップを保存する場所log_file: 操作追跡用のログファイルのパスこのロールをプレイブックに追加します:
- name: Mitigate Log4Shell CVE-2021-44228
hosts: all
become: true
roles:
- log4shell_mitigation
スクリプトを手動で実行したい場合は、次の手順で行えます:
スクリプトをターゲットマシンにコピーします:
files/log4shell_mitigator.py
同じディレクトリに独自の config.yaml を作成します。
実行します:
python3 log4shell_mitigator.py
/var/log/log4j_mitigation.log)を確認して、どの JAR がパッチ適用されたかを確認しますMIT
PR や改善提案を歓迎します -> フォークしてマージリクエストを送信してください。
本ソフトウェアおよび付随する Ansible ロールは、明示または黙示を問わず、いかなる種類の保証もなく 「現状のまま」 提供されます。本コードをいかなる環境に適用する前に、その適合性、安全性、有効性を評価およびテストする責任はすべてお客様にあります。AxisOps Ltd (GB08681761) は、本コードの使用または誤用に起因する損害、データ損失、サービス中断、その他の損害について一切の責任を負いません。
自己責任で使用してください。本番環境に展開する前に、管理された環境でコードを監査、テスト、検証してください。
AxisOps SysOps チーム