该 Ansible 角色部署了一个基于 Python 的脚本,通过从受影响的 Log4j JAR 文件中移除存在漏洞的 JndiLookup 类,以编程方式缓解 Log4Shell 漏洞(CVE-2021-44228)。
它设计为通过 Ansible 运行,但如果您愿意,也可以手动执行该脚本。
在此处阅读有关 Log4Shell 漏洞的更多信息:
JndiLookup.classJndiLookup.classzip 和 zipinfoPyYAML(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:用于操作跟踪的日志文件路径将此角色添加到您的 playbook 中:
- 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 和改进 -> 请 fork 并提交合并请求。
本软件及随附的 Ansible 角色按**“原样”**提供,不附带任何明示或暗示的担保。您全权负责在将本代码应用于任何环境之前评估和测试其适用性、安全性和有效性。AxisOps Ltd (GB08681761) 明确不承担因使用或误用本代码而导致的损害、数据丢失、服务中断或其他伤害的任何责任。
使用风险自负。在部署到生产环境之前,请务必在受控环境中审计、测试和验证代码。
SysOps 团队 @ AxisOps