
Роль Ansible для обнаружения Log4Shell (CVE-2021-44228) путём сканирования файловой системы и открытых файлов на предмет уязвимых JAR/WAR-файлов, с выводом информации о версии и наличии JndiLookup.
⭐ Поставьте звезду на GitHub — это нас очень мотивирует!
Найдите Log4Shell CVE-2021-44228 в вашей системе
Эта роль пытается найти JAR и WAR в файловой системе и среди открытых файлов (lsof)
⚠️ Ваша система может работать медленно во время сканирования из-за выполнения find по и процесса разархивирования для поиска внутри JAR/WAR
/Эта роль заполняет переменную 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.
Значение — это словарь, содержащий версию log4j в поле version, тип файла в поле type (war/jar) и ключ jndilookup, который сообщает, присутствует ли в JAR файл org/apache/logging/log4j/core/lookup/JndiLookup.class
JAR без JndiLookup.class не уязвим согласно https://www.kb.cert.org/vuls/id/930724
Ansible >= 4
ansible-galaxy install claranet.log4shell
| Переменная | Значение по умолчанию | Описание |
|---|---|---|
| log4shell_scan_path | / | Путь в файловой системе для сканирования |
Н/Д
---
- hosts: all
roles:
- role: claranet.log4shell
log4shell_scan_path: /opt