
log4j 완화 작업
이 Ansible Role은 영향을 받는 Log4j JAR 파일에서 취약한 JndiLookup 클래스를 제거하여 Log4Shell 취약점(CVE-2021-44228)을 프로그래밍 방식으로 완화하는 Python 기반 스크립트를 배포합니다.
Ansible을 통해 실행되도록 설계되었지만, 원한다면 스크립트를 수동으로 실행할 수도 있습니다.
Log4Shell 취약점에 대해 자세히 알아보려면 여기를 참조하세요:
JndiLookup.class 존재 여부 확인JndiLookup.class 제거zip 및 zipinfo 설치PyYAML 설치 (pip install pyyaml)스크립트는 Role에 의해 자동으로 템플릿화되는 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: 작업 추적을 위한 로그 파일 경로이 Role을 플레이북에 추가하세요:
- 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 Role은 명시적이거나 묵시적인 어떠한 종류의 보증도 없이 “있는 그대로” 제공됩니다. 이 코드를 어떤 환경에 적용하기 전에 적합성, 안전성, 효율성을 평가하고 테스트할 책임은 전적으로 사용자에게 있습니다. AxisOps Ltd (GB08681761)는 이 코드의 사용 또는 오용으로 인해 발생하는 손해, 데이터 손실, 서비스 중단 또는 기타 피해에 대해 명시적으로 책임을 부인합니다.
사용에 따른 위험은 전적으로 사용자에게 있습니다. 프로덕션 배포 전에 항상 통제된 환경에서 코드를 감사하고 테스트하고 검증하세요.
SysOps Team @ AxisOps