«Ростелеком-Солар» представил обновлённую базу поиска уязвимостей инструмента SAST-анализа Solar appScreener, дополнив ее недавно обнаруженными в библиотеке Apache Log4j уязвимостями нулевого дня.
Библиотека Apache Log4j используется миллионами корпоративных приложений и Java-серверами для регистрации сообщений об ошибках. Уязвимости в ней получили название Log4Shell (встречаются также LogJam, LogJ) и относятся к Remote Code Execution (RCE), Local Code Execution (LCE). Помимо этого, обнаружена возможность реализаций атак Denial of Service (DOS).
До дополнения политика Solar appScreener выявляла любые недоверенные данные, которые записывались в журнал и определяла их как уязвимость вида «Подделка файла лога» (Log Forging). Сейчас инструмент анализа кода обновлен дополнительными правилами, что позволяет отдельно подчеркивать уязвимости Log4Shell при обнаруженных уязвимостях вида «Подделка файла лога».
«Компании во всем мире широко используют уязвимую библиотеку Apache Log4j в разработке Java- продуктов. Если к этому факту добавить невысокую сложность эксплуатации уязвимостей, получаем большое количество уязвимых систем и большое количество злоумышленников, которые, не обладая сложными техническими навыками, могут взломать эти системы, — говорит Даниил Чернов, директор Центра Solar appScreener компании «Ростелеком-Солар». — Проблема усугубляется тем, что во многих организациях не выстроен процесс мониторинга уязвимостей, поэтому несмотря на наличие патчей безопасности и рекомендаций по устранению брешей, некоторые организации до сих пор остаются под угрозой. Наша исследовательская лаборатория следит за уязвимостями Log4Shell, а команда разработчиков оперативно отражает их в базе поиска уязвимостей Solar appScreener».
В базу сканера анализа Solar appScreener добавлены правила для поиска всех выявленных на текущий момент уязвимостей библиотеки Apache Log4j:
- CVE-2021-44228 (оценка опасности угрозы по CVSS: 10/10 баллов) — критическая уязвимость удаленного выполнения кода, которая затрагивает версии Log4j от 2.0-beta9 до 2.14.1. Проблема частично исправлена в патче 2.15.0.
Уязвимость дает возможность в приложениях и серверах на основе Java, в которых используется библиотека Log4j, сохранять определенную строку в логах. Когда приложение или сервер обрабатывают логи, строка может заставить уязвимую систему загрузить и запустить вредоносный код. В результате злоумышленнику удается заполучить полный контроль над уязвимым приложением или сервером. После того атака может развиться дальше.
Разработчики Apache Software Foundation выпустили экстренное обновление безопасности — с версии 2.15.0 проблема была частично устранена. Версия 2.15.0 не учитывает некоторые варианты обработки логов, что оставляет злоумышленникам возможность провести атаку на уязвимую систему.
Исправление 2.15.0 закрывает брешь благодаря отключению lookup JNDI-сообщений. В недефолтных конфигурациях он может быть использован для создания вредоносного input с использованием шаблона JNDI lookup. Это может привести к атаке типа «Отказ в обслуживании» и выполнения произвольного кода. Этому сценарию присвоили отдельный идентификатор CVE-2021-45046.
Эксплуатация CVE-2021-44228 возможна, если для параметра log4j2.formatMsgNoLookups установлено значение false. Для предотвращения атак в патче Log4j 2.15.0 для этого параметра установлено значение true. При обновлении 2.15.0 не следует менять параметр на значение false. Пользователи библиотеки Log4j, которые не обновились, но установили значение true, могут блокировать атаки.
- CVE-2021-45046 (оценка опасности угрозы по CVSS: 9/10 баллов) — критическая уязвимость позволяет проводить DoS-атаки и удаленно выполнять код. Проблема затрагивает версии Log4j от 2.0-beta9 до 2.15.0 (исключение — 2.12.2).
В Log4j версии 2.15.0 можно было проэксплуатировать уязвимость CVE-2021-44228 при определенных пользовательских настройках конфигурации. В ней был отключен лишь один аспект функционала JNDI по поиску сообщений. В обновлении 2.16 по умолчанию была отключена поддержка JNDI, обработка поиска сообщений была полностью удалена.
- CVE-2021-45105 (оценка опасности угрозы по CVSS: 7,5/10 баллов) — опасная DoS-уязвимость в системах Java 8, которая позволяет вызвать ошибку отказ в обслуживании и проявляется в виде зацикливания и аварийного завершения при обработке определённых строк.
Уязвимость затрагивает версии Log4j от 2.0-beta9 до 2.16.0. В перечисленных версиях отсутствовала защита от неконтролируемой рекурсии, что позволяло злоумышленнику, проводя манипуляции со значением при подстановке, вызвать зацикливание. Зацикливание приводило к исчерпанию места в стеке и аварийному завершению процесса. Патч выпущен в версии 2.17.0.
- CVE-2021-4104 (оценка опасности угрозы по CVSS: 8,1/10 баллов) — уязвимость небезопасной десериализации, затрагивающая версии Log4j 1.2. Данная уязвимость затрагивает Log4j 1.2 только в том случае, если она специально настроена для использования JMSAppender, что не является значением по умолчанию. Исправление отсутствует, необходимо обновиться до версии 2.17.0.
Для получения оперативной информации об уязвимостях и способах противостоять им исследователи центра Solar appScreener рекомендуют следить за обновлением страницы Log4j: https://logging.apache.org/log4j/2.x/security.html