Что такое уязвимость Apache Log4J (Log4Shell)?

Log4Shell (она же CVE-2021-44228, CVE-2021-45046 и CVE-2021-45105) относится к классу уязвимостей Remote Code Execution (RCE), позволяющих злоумышленнику дистанционно запустить произвольный Java-код, чтобы перехватить управление целевым сервером.

Обзор уязвимости Log4Shell

В 2021 году было обнаружено множество уязвимостей нулевого дня. Кульминацией стала критическая уязвимость Log4Shell, обнаруженная в чрезвычайно популярной библиотеке журналирования Apache Log4j, которая широко используется в Java-приложениях. Уязвимость получила официальное название CVE-2021-44228. Ей присвоен уровень опасности 10 из 10 по шкале оценки уязвимости CVSS (стандарт CVSS v3.1).

Первое частное сообщение об уязвимости было получено Apache 24 ноября 2021 г. 9 декабря 2021 года уязвимость Log4Shell была публично раскрыта и первоначальный пакет исправлений для Apache Log4j вышел в рамках релиза 2.15.0.

Последующие сообщения о том, что атаки продолжаются, побудили несколько национальных агентств выпустить предупреждения. В их числе были Агентство кибербезопасности и защите инфраструктуры США (CISA), Национальный центр кибербезопасности Великобритании (NCSC) и Канадский центр кибербезопасности. Из-за популярности Apache Log4j сотни миллионов устройств могут подвергаться опасности.

Как действует Log4Shell

Log4Shell — уязвимость, которая делает возможной инъекцию в Java Naming and Directory Interface™ (JNDI) и позволяет удаленно запускать вредоносный код. Уязвимая версия Apache Log4j позволяет злоумышленникам записать в лог свой код (например, загрузки вредоносных данных), после чего они смогут установить соединение с вредоносным сервером через поиск в JNDI. В результате они получают полный доступ к целевой системе из любой точки мира.

JNDI поддерживает поиск для различных типов служб каталогов, например, протокола LDAP, который предоставляет значимую информацию о сетевых устройствах организации, а также DNS, RMI и IIOP, поэтому эксплуатация уязвимости Log4Shell может привести к таким угрозам как:

  • Теневой майнинг. Злоумышленники могут использовать ваши ресурсы для майнинга криптовалюты. Эта угроза может обойтись организации очень дорого, учитывая огромное количество вычислительной мощности, необходимой для работы сервисов и приложений в облаке.
  • Атака типа «отказ в обслуживании» (DoS). При такой атаке замедляется или аварийно завершается работа сети, веб-сайта или сервиса, так что эти ресурсы становятся недоступны для целевой организации.
  • Программа-вымогатель. После того, как злоумышленники добьются удаленного запуска кода, они получают возможность собирать и шифровать данные, чтобы затем потребовать выкуп.

 

Возможная цепочка заражения:

Возможная цепочка заражения

Уязвимые продукты, приложения и подключаемые модули

Уязвимы практически все устройства с выходом в интернет, которые используют версии Apache Log4j, начиная с 2.0 и заканчивая 2.14.1. Уязвимые версии библиотеки используются в Apache Struts, Apache Solr, Apache Druid, Elasticsearch, Apache Dubbo и VMware vCenter.

Пакет исправлений и минимизация рисков

Чтобы исправить уязвимость, был выпущен релиз Apache Log4j 2.15.0. Однако эта версия работала только с Java 8. Пользователям более ранних версий приходилось неоднократно применять временные средства предотвращения негативных последствий. На момент публикации вышел релиз 2.16.0, и Apache Foundation рекомендует пользователям как можно скорее обновить потенциально уязвимые библиотеки.

Настоятельно рекомендуется использовать и другие методы снижения риска, такие как виртуальное исправление и использование системы обнаружения угроз и предотвращения вторжений (IDS/IPS). Виртуальные исправления не допускают эксплуатации уязвимости, в то время как IDS/IPS проверяет входящий и исходящий трафик для выявления подозрительного поведения.

Apache Log4J

Исследования по теме

Статьи по теме