
Ansible 역할로, 취약한 JAR/WAR 파일을 찾기 위해 파일시스템과 열린 파일을 스캔하여 Log4Shell(CVE-2021-44228)을 탐지하고, 버전과 JndiLookup 존재 여부를 보고합니다.
이 역할은 다음과 같은 딕셔너리로 log4shell_analyze_versions 변수를 채웁니다:
{
"/tmp/rundeck.war": {
"version": "2.13.2",
"type": "war",
"jndilookup": false
},
"/tmp/apache-log4j-2.12.1-bin/log4j-core-2.12.1.jar": {
"version": "2.12.1",
"type": "jar",
"jndilookup": true
},
"/tmp/apache-log4j-2.12.1-bin/log4j-core-2.12.1-tests.jar": {
"version": "2.12.1",
"type": "jar",
"jndilookup": false
}
}
키는 역할이 log4j 라이브러리를 찾은 경로입니다.
값은 version에 log4j 버전, type에 파일 유형(war/jar), 그리고 jndilookup 키를 포함하는 딕셔너리입니다. jndilookup은 JAR 내에 org/apache/logging/log4j/core/lookup/JndiLookup.class 파일이 있는지 여부를 알려줍니다.
JndiLookup.class가 없는 JAR은 https://www.kb.cert.org/vuls/id/930724에 따르면 취약하지 않습니다.
Ansible >= 4
ansible-galaxy install claranet.log4shell
| 변수 | 기본값 | 설명 |
|---|---|---|
| log4shell_scan_path | / | 스캔할 파일 시스템 경로 |
N/A
---
- hosts: all
roles:
- role: claranet.log4shell
log4shell_scan_path: /opt