Уровень опасности максимальный — CVSS 10. Рассказываем, как защититься.
Эту библиотеку используют миллионы Java-приложений для регистрации сообщений об ошибках. Хакеры уже активно используют эту уязвимость, поэтому Apache Foundation рекомендует обновить библиотеку до версии 2.15.0, а если это невозможно, пользоваться одним из методов, описанных на странице Apache Log4j Security Vulnerabilities.
Чем опасна уязвимость CVE-2021-44228
Эта уязвимость, также известная как Log4Shell и LogJam, относится к классу Remote Code Execution. Если мошенникам удастся эксплуатировать ее на одной из машин, то они смогут исполнять на нем произвольный код. Потенциально это позволит им захватить полный контроль над системой.
Особенно опасной CVE-2021-44228 делает простота эксплуатации: атаку через эту уязвимость успешно может осуществить даже неопытный хакер. По словам исследователей, достаточно заставить приложение записать в лог всего одну строку, в результате чего им удастся подгрузить в приложение собственный код из-за функции message lookup substitution.
В Интернете уже можно найти рабочие доказательства осуществимости (PoC) атак при помощи CVE-2021-44228. И неудивительно, что компании из сферы кибербезопасности, уже регистрируют массовое сканирование сети в поисках уязвимых приложений, а также атаки на ханипоты.
Обнаружена уязвимость исследователем Ченом Жаожуном (Chen Zhaojun) из Alibaba Cloud Security Team.
Что такое Apache Log4J и почему эта библиотека так распространена?
Apache Log4j — это часть проекта Apache Logging Project, библиотека, которая служит для ведения логов. По большому счету, ее применение является одним из самых простых способов ведения журнала ошибок, поэтому большинство Java-разработчиках применяют именно ее.
Библиотека используется в разработках крупнейших производителей ПО, в том числе Amazon, Apple iCloud, Cisco, Cloudflare, ElasticSearch, Red Hat, Steam, Tesla и Twitter. Из-за настолько широкой распространенности библиотеки, исследователи ожидают увеличение количества атак на уязвимые серверы в течении следующих нескольких дней.
Какие версии библиотеки Log4j уязвимы и как защитить серверы от атак?
Уязвимы практически все версии Log4j, начиная с 2.0-beta9 и заканчивая 2.14.1. Самый простой и эффективный метод защиты от Log4Shell — установка наиболее свежей версии библиотеки, 2.15.0. Скачать ее можно на страничке проекта.
Если это невозможно, то в случае с версиями библиотеки от 2.10 до 2.14.1 Apache Foundation рекомендует установить системное свойство log4j2.formatMsgNoLookups, или же присвоить переменной окружения LOG4J_FORMAT_MSG_NO_LOOKUPS значение true.
Для защиты более ранних релизов Log4j (от 2.0-beta9 до 2.10.0) разработчики библиотеки рекомендуют убрать класс JndiLookup из classpath: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.
Кроме того, мы рекомендуем не забывать о необходимости установки защитных решений на серверы — во многих случаях это позволит выявить запуск вредоносного кода и остановить развитие атаки.