
Сканер и инструмент для исправления уязвимости CVE-2021-44228 и связанных с ней проблем log4j.
Ссылки для загрузки последней версии:
| Linux x64 с glibc2.17+ (RHEL7+) | Windows и все остальные платформы |
|---|---|
| Скачать Linux-бинарник |
| Скачать Java .jar |
🚑 Примечание: клиентам SAS, желающим пропатчить свои развёртывания SAS 9.4 или SAS Viya 3.x, следует следовать конкретным инструкциям, приведённым в документации SAS Help Center.
Этот проект является ранним форком logpresso/CVE-2021-44228-Scanner, изначально модифицированным для рекурсивного просмотра архивов и добавления поддержки сжатия tar/gz. С момента форка проект развивался параллельно с оригиналом и реализует множество схожих функций, хотя большая часть кода была переписана. В то время как исходная функция «fix» была заменена методом patch, который поддерживает некоторые сложные случаи глубокой вложенности и более устойчив к сбоям и откатам, механизм обнаружения (команда scan) продолжает работать очень похоже на оригинал.
Вы можете загрузить версию инструмента со страницы Releases или по ссылкам в верхней части этой страницы. Нативный образ — это автономный исполняемый файл, который будет работать на EL7 и более поздних версиях. Jar-файл можно запустить с помощью java -jar на JRE 1.8+. В настоящее время это лучший способ запуска на других платформах и более старых версиях glibc (включая Windows, AIX, Solaris и т. д.).
После загрузки нативного образа необходимо выполнить chmod +x для файла, прежде чем его можно будет запустить.
Синтаксис команд одинаков независимо от того, вызываете ли вы .jar или нативный исполняемый файл. Например, это:
./loguccino help
функционально идентично следующему:
java -jar ./loguccino-all.jar help
Команда loguccino help предоставляет документацию по доступным командам.
./loguccino scan /path/to/approot
Эта команда пройдёт по всем подкаталогам в /path/to/approot, включая рекурсивный обход всех вложенных архивов .tar.gz, .tgz, .tar, .zip, .ear, .war и .jar.
В рабочем каталоге будет создан файл .csv с именем loguccino-scan-[datetime].csv, содержащий следующие данные:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarДополнительная информация о команде scan доступна через ./loguccino help scan.
Если уязвимости обнаружены, файл loguccino-scan-[datetime].csv используется как входные данные для команды patch:
./loguccino patch ./loguccino-scan-23122021003311.csv
Эта команда устраняет каждую обнаруженную уязвимость и создаёт каталог loguccino-patch-[timestamp], содержащий резервную копию каждого пропатченного файла. Если файл был пропатчен для нескольких уязвимостей (например, более крупный резервный архив, содержащий несколько инструментов или версий ПО), на каждом этапе процесса сохраняется несколько версий пропатченного файла, чтобы обеспечить поэтапный откат в случае сбоя.
Примечание:
Патчинг файла на диске не пропатчивает версию программы, уже запущенную на хосте. Помните, что перед патчингом необходимо остановить соответствующие службы/приложения и перезапустить их после патча, чтобы изменения вступили в силу.
Дополнительная информация о команде patch доступна через ./loguccino help patch.
При сканировании на наличие уязвимостей некоторые архивы могут быть сообщены как повреждённые (это также происходит с вложенными архивами, где методы сжатия не соответствуют расширению архива). Команда scan выведет пути к ним в файл logpresso-scan-[datetime].log. Если они признаны значимыми, эти архивы следует распаковать и проверить (или отсканировать) вручную, чтобы подтвердить, что они действительно повреждены.
Если вы столкнулись с какими-либо ошибками или неожиданным поведением, пожалуйста, откройте issue и приложите шаги для воспроизведения ошибки вместе с дополнительной справочной информацией.
Pull request'ы и обновления кода приветствуются и поощряются.