
Смягчение последствий уязвимости Log4Shell (CVE-2021-44228)
Дополнительные сведения смотрите в этом видео на YouTube.
Это краткая публикация о смягчении последствий уязвимости безопасности CVE-2021-44228, также известной как Log4Shell и LogJam, обнаруженной в log4j2.
Вся информация, а также приведённые примеры кода предоставлены исключительно в образовательных и ознакомительных целях для использования только на ваших собственных системах.
Пожалуйста, действуйте с осторожностью и на свой страх и риск.
Это эксплойт нулевого дня, реализованный в виде удалённого выполнения кода (RCE), присутствующий в определённых версиях популярного Java-фреймворка для логирования log4j2.
По шкале CVSS (Common Vulnerability Scoring System) ему присвоена оценка 10 из 10.
Уязвимость была сообщена командой безопасности Alibaba Cloud в Apache 24 ноября, а обнаружена Чэнь Чжаоцзюнем из команды безопасности Alibaba Cloud.
Затем она была раскрыта публично через GitHub проекта log4j 9 декабря 2021 г.
Работающие приложения, использующие библиотеку логирования, становятся уязвимыми, если они обрабатывают пользовательский ввод, не прошедший санитарную обработку, удалённо.
Когда приложение обрабатывает события лога с пользовательской строкой, уязвимая система может загрузить и выполнить вредоносный код с управляемого атакующим домена, по сути захватывая контроль над уязвимым приложением.
Уязвимость затрагивает Apache Log4j 2 версий с 2.0-beta9 по 2.14.1, если у вас добавлены следующие две зависимости:
В версии 1 log4j она отсутствует.
Версии JDK выше 6u211, 7u201, 8u191 и 11.0.1 не подвержены воздействию вектора атаки через LDAP.
Почему это так? Потому что в этих версиях JDK свойство com.sun.jndi.ldap.object.trustURLCodebase установлено в false.
В результате JNDI не может загружать удалённый код через LDAP.
Популярные проекты Apache Software Foundation, такие как:
Другие проекты с открытым исходным кодом за пределами ASF, такие как Redis, ElasticSearch и Logstash, также могут быть затронуты.
Если вы используете уязвимые версии, немедленно обновитесь до log4j v2.15 для зависимостей log4j-core и log4j-api.
Если вы используете log4j v2.10 или выше и не можете немедленно обновиться, то измените системное свойство:
log4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Эта команда удалит класс из файла log4j-core-*.jar для уязвимых версий.
Следите за дополнительными обновлениями.
Если у вас есть вопросы, пожалуйста, обращайтесь.
Спасибо