Зловред BPFDoor использует давнюю уязвимость в Solaris для получения root

Зловред BPFDoor использует давнюю уязвимость в Solaris для получения root

Зловред BPFDoor использует давнюю уязвимость в Solaris для получения root

Компания CrowdStrike опубликовала результаты анализа атак на Solaris и Linux с целью внедрения импланта BPFDoor. Как оказалось, в первом случае злоумышленники пытаются закрепиться в системе через эксплойт уязвимости, опубликованной в 2019 году.

Кастомный бэкдор BPFDoor отличает умение мастерски избегать обнаружения: его с 2018 года используют в целевых атаках, а заметили только в прошлом году. Кибергруппа, владеющая этим зловредом (известна как Red Menshen, в CrowdStrike ее нарекли DecisiveArchitect), предположительно имеет китайские корни и выбирает мишенями телеком-провайдеров, правительственные ведомства, учебные заведения и логистические компании.

Командный трафик BPFDoor (JustForFun в версии CrowdStrike) тщательно скрывается: управление осуществляется с использованием VPS-серверов и прокси на взломанных роутерах Тайваня. При такой схеме вредонос может получать команды с любого IP-адреса, к тому же ему не нужно с этой целью открывать какие-либо порты — только сырой сокет.

Новое исследование показало, что после получения доступа к Solaris злоумышленники пытаются применить эксплойт CVE-2019-3010 — PoC-код, опубликованный три года назад. Соответствующая уязвимость привязана к компоненту XScreenSaver и позволяет рядовому юзеру повысить привилегии до root; патч вышел в октябре 2019 года.

Необходимые для эксплойта бинарники обычно загружаются через пару минут после развертывания бэкдора. Последний при исполнении перезаписывает командную строку в рабочей среде своего процесса, выбирая невинную альтернативу из десяти возможных, вшитых в код. Этот прием призван скрыть взаимодействие BPFDoor с оператором; так, при проверке состояния процессов (команда –ps) создание интерактивного шелла будет выглядеть, например, как запуск менеджера очередей Postfix.

В случае с Linux такой спуфинг спокойно проходит; в Solaris нужный механизм отсутствует, поэтому для достижения искомого эффекта DecisiveArchitect использует переменную окружения LD_PRELOAD. По данным CrowdStrike, в апреле этого года хакеры обновили свои техники и тактики и стали таким же образом прятать своего зловреда на Linux-машинах (при загрузке импланта в легитимный процесс /sbin/agetty).

Обнаружить BPFDoor в Linux нелегко: для обеспечения постоянного доступа к системе авторы атаки модифицируют доступные скрипты SysVinit — внедряют ссылку на небольшой файл сценария, который, в свою очередь, указывает на имплант. Более того, они используют разные имена файлов и пути поиска для BPFDoor и связанных с ним скриптов.

В результате простой просмотр кодов SysVinit вряд ли поможет найти бэкдор, его можно выявить, только отыскав все умышленно созданные привязки — а они в зараженных системах неодинаковы. Эксперты советуют с этой целью использовать EDR со средствами машинного обучения и функциями мониторинга админ-утилит и процессов Linux.

В отсутствие такого решения можно с помощью команды lsof поискать процессы с отрытым сырым сокетом. В стандартных установках Solaris эта утилита отсутствует, поэтому придется использовать другие команды, позволяющие получить дополнительную информацию о запущенных процессах (см. блог-запись CrowdStrike).

Исследователи также обнаружили в атаках DecisiveArchitect два скрипта, заточенных под Windows. Их назначение пока неизвестно, хотя хакеры взаимодействуют с Windows-машинами — на начальных этапах атаки. Кастомных имплантов при этом не выявлено.

Критическая уязвимость в TLP позволяет обойти защиту Linux

В популярной утилите TLP, которую многие владельцы ноутбуков на Linux используют для управления энергопотреблением, обнаружили критическую уязвимость. Причём проблема нашлась во время обычной проверки пакета командой SUSE Security Team и располагается во вполне штатном коде.

Брешь получила идентификатор CVE-2025-67859 и затрагивает версию TLP 1.9.0, где появился новый profiles daemon.

Этот демон работает с root-правами и управляет профилями питания через D-Bus. Задумка хорошая, но реализация подвела: в механизме аутентификации Polkit нашлась логическая ошибка, которая фактически позволяет обойти проверку прав.

Как объясняют исследователи, демон должен был строго проверять, кто именно отправляет команды. Но из-за ошибки любой локальный пользователь мог взаимодействовать с ним без должной аутентификации — а значит, менять системные настройки питания от имени root.

На этом сюрпризы не закончились. В ходе анализа специалисты SUSE нашли ещё несколько проблем, уже связанных с исчерпанием ресурсов. В частности, механизм profile hold, который позволяет временно «зафиксировать» профиль питания, оказался совершенно без валидации. Локальный пользователь мог создавать неограниченное количество таких блокировок, причём без прав администратора.

В итоге это открывает прямую дорогу к DoS-атаке: демон начинает захлёбываться от бесконечных записей в структуре данных, куда попадают числа, строки с причиной и идентификаторы приложений — всё это полностью контролируется клиентом.

Любопытно, что SUSE вспомнила похожую историю с демоном управления питанием в GNOME: аналогичную проблему находили ещё несколько лет назад. Отдельно исследователи отметили вопросы к механизму «куки», которыми отслеживаются profile hold. Формально речь шла о предсказуемости значений, но в сочетании с отсутствием лимитов это лишь расширяло поверхность атаки.

К счастью, реакция была быстрой. SUSE сообщила об уязвимостях разработчикам ещё в декабре, и в версии TLP 1.9.1 проблема уже закрыта. В частности, число одновременных profile hold теперь жёстко ограничено числом 16, что убирает риск истощения ресурсов.

RSS: Новости на портале Anti-Malware.ru