Log4Shell
В середине декабря 2021 года разработчики Apache Software Foundation выпустили экстренное обновление безопасности, исправляющее 0-day-уязвимость (CVE-2021-44228) в популярной библиотеке журналирования Log4j, входящей в состав Apache Logging Project. Срочность объяснялась тем, что ИБ‑специалисты уже начали публиковать в открытом доступе PoC-эксплоиты, объясняя, что использовать баг можно удаленно, причем для этого не понадобятся особые технические навыки.
Проблема получила название Log4Shell и — редкий случай! — набрала десять баллов из десяти возможных по шкале оценки уязвимостей CVSS v3. Баг допускает удаленное выполнение произвольного кода (RCE), причем вредоносный код может попасть в систему самыми разными способами, ведь для атаки достаточно, чтобы нужная запись оказалась в логах.
Исходно проблема была обнаружена во время отлова багов на серверах Minecraft, но библиотека Log4j присутствует практически в любых корпоративных приложениях и Java-серверах. К примеру, ее можно найти почти во всех корпоративных продуктах, выпущенных Apache Software Foundation, включая Apache Struts, Apache Flink, Apache Druid, Apache Flume, Apache Solr, Apache Kafka, Apache Dubbo. Также Log4j активно применяют в опенсорсных проектах, например Redis, Elasticsearch, Elastic Logstash или Ghidra.
Таким образом, компании, использующие любой из этих продуктов, тоже косвенно уязвимы перед атаками на Log4Shell, хотя могут даже не знать об этом. ИБ‑специалисты сразу предупреждали, что перед Log4Shell могут быть уязвимы решения таких гигантов, как Apple, Amazon, Twitter, Cloudflare, Steam, Tencent, Baidu, DIDI, JD, NetEase, и, вероятно, тысяч других компаний.
Принцип работы Log4Shell весьма прост: уязвимость вынуждает приложения и серверы на основе Java, где используется библиотека Log4j, сохранять в логах определенную строку. Когда приложение или сервер обрабатывают такие логи, строка может заставить уязвимую систему загрузить и запустить вредоносный скрипт из домена, контролируемого злоумышленником. Итогом станет полный захват уязвимого приложения или сервера, а атака может развиться дальше.
Патчи для патчей
Уязвимыми были признаны все версии Log4J между 2.10.0 и 2.14.x, и разработчики Apache Software Foundation спешно представили первый патч для CVE-2021-44228 в рамках релиза 2.15.0. Однако, как выяснилось несколько дней спустя, этого оказалось недостаточно.
Дело в том, что первое исправление закрывало брешь, отключая по умолчанию основную функциональность библиотеки — lookup’ы JNDI-сообщений. Увы, оказалось, что этот патч сам привносит в код новую уязвимость: в конфигурациях, отличных от дефолтных, он может быть использован для «создания вредоносного input’а с использованием шаблона JNDI Lookup, что может привести к атаке типа „отказ в обслуживании“ (DoS)».
Второй уязвимости был присвоен идентификатор CVE-2021-45046 (3,7 балла из десяти возможных по шкале CVSS v3), и разработчикам пришлось спешно выпустить еще один патч и версию 2.16, в которой JNDI попросту отключили окончательно.
Фактически второй баг позволял полностью отключить уязвимые службы до тех пор, пока жертвы не перезагрузят свои серверы или не предпримут иные действия. Хуже того, эксперты Cloudflare поспешили предупредить, что CVE-2021-45046 уже обнаружена и используется злоумышленниками, специалисты же компании Praetorian заявляли, что проблемы версии 2.15.0 можно использовать для раскрытия информации, а это может вести к хищению данных с уязвимых серверов. В ролике ниже исследователи демонстрируют подобную атаку на практике.
Таким образом, по состоянию на 17 декабря 2021 года всем рекомендуется срочно обновить Log4j до версии 2.16. К примеру, эксперты Агентства по кибербезопасности и защите инфраструктуры, организованного при Министерстве внутренней безопасности США (DHS CISA), и вовсе обязали американские федеральные агентства и госучреждения установить исправления не позднее 24 декабря 2021 года.
UPD
Через несколько часов после публикации этой статьи, разработчики Apache Software Foundation изменили описание и уровень угрозы для уязвимости CVE-2021-45046. Баг теперь классифицируется как критический (9 баллов по шкале CVSS), и сообщается, что он может использоваться не только для DoS-атак, но и для выполнения произвольного кода.
Хуже того, Log4j версии 2.15 теперь не рекомендуется использовать из‑за еще двух менее опасных уязвимостей CVE-2021-4104 и CVE-2021-42550, которые были устранены только с релизом версии 2.16.
Администраторам настоятельно рекомендуется применять только версию 2.16 и следить за дальнейшим развитием событий на странице обновлений Log4j.
Майнеры, DDoS и вымогатели
Когда информация о Log4Shell была раскрыта, практически сразу исследователи из компаний Bad Packets и Greynoise предупредили, что несколько злоумышленников уже начали сканировать сеть в поисках продуктов, которые могут быть уязвимы. В последующие дни количество атак стремительно нарастало, а аналитики из компаний Cloudflare и Cisco Talos вообще пришли к выводу, что первые сканы и попытки эксплуатации начались еще 1–2 декабря 2021 года, то есть до широкой огласки.
Немного цифр
По информации экспертов компании Check Point, для Log4Shell уже существует более 60 эксплоитов и в некоторые моменты можно наблюдать до 100 попыток атак на уязвимость в минуту.
По состоянию на 14 декабря различные хакерские группировки уже успели совершить порядка 1 272 000 атак на Log4Shell. В свою очередь, китайская компания Qihoo 360 предупредила, что уже отслеживает как минимум десять хак‑групп, злоупотребляющих уязвимостью.
Как объясняли ИБ‑специалисты, по сути, для использования бага злоумышленник может попросту изменить user agent своего браузера и посетить определенный сайт или выполнить поиск строки, используя формат ${
. Это приведет к добавлению строки в логи доступа веб‑сервера, и, когда приложение Log4j будет анализировать эти логи и обнаружит строку, ошибка заставит сервер выполнить callback или запрос на URL-адрес, указанный в строке JNDI. После этого злоумышленники смогут использовать этот URL для передачи команд уязвимому устройству (в кодировке Base64 или в виде классов Java).
В итоге уже через несколько дней Log4Shell эксплуатировали для выполнения шелл‑скриптов, которые загружают и устанавливают майнеры. В частности, хакеры, стоящие за малварью Kinsing и одноименным ботнетом, активно злоупотребляют багом и используют Base64-пейлоады, которые заставляют уязвимый сервер загружать и выполнять шелл‑скрипты. Скрипт удаляет конкурирующую малварь с уязвимого устройства, а затем загружает и устанавливает вредоноса Kinsing, который начинает добывать криптовалюту.
Также проблема используется для установки малвари Mirai и Muhstik на уязвимые устройства. Эти IoT-угрозы делают уязвимые девайсы частью ботнетов, так же используя их для добычи криптовалюты и проведения масштабных DDoS-атак.
По информации аналитиков Microsoft, уязвимость в Log4j и вовсе используется для развертывания маяков Cobalt Strike. И хотя на момент обнаружения этого факта не было доказательств, что эксплоит для Log4j взяли на вооружение вымогатели, эксперты писали, что развертывание маяков Cobalt Strike ясно говорит: такие атаки неизбежны.
К сожалению, уже стало ясно, что специалисты Microsoft были правы: сотрудники компании Bitdefender обнаружили первый шифровальщик Khonsari, который эксплуатирует свежий баг для вымогательских атак. Впрочем, следует отметить, что Khonsari скорее похож на вайпера, то есть это умышленно деструктивная малварь, которая нарочно шифрует данные без возможности восстановления. Дело в том, что жертвы не могут связаться с операторами вредоноса для выплаты выкупа, а значит, не в состоянии спасти свою информацию.
Кроме того, по последним данным все той же Microsoft, уязвимость уже активно применяют в своих атаках «правительственные» хакеры Китая (Hafnium), Ирана (Phosphorus), Северной Кореи и Турции. Сообщается, что «активность варьируется от экспериментов во время разработки до интеграции уязвимости в процесс развертывания полезных нагрузок и использования против целей для достижения задач хакеров». Упомянутые группировки обычно занимаются вымогательскими операциями, а также кибершпионажем и сбором данных.
Также Microsoft заявила, что наблюдает за несколькими злоумышленниками, которые выступают в качестве брокеров доступа для операторов вымогателей. То есть эти люди используют эксплоит для Log4Shell, чтобы закрепляться в различных корпоративных сетях, а затем продавать полученный доступ другим хак‑группам.
Защита
К большому сожалению, из‑за повсеместной распространенности Log4j ИБ‑эксперты уверены, что проблема Log4Shell имеет все шансы стать не просто худшей уязвимостью 2021 года, но и самой большой головной болью последней пятилетки. Поэтому сейчас все призывают всех как можно скорее проверить и защитить свои системы от атак, установить патчи и принять иные меры предосторожности. Перечислим, что можно и нужно для этого сделать.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»