Зловред 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-машинами — на начальных этапах атаки. Кастомных имплантов при этом не выявлено.

Контроллер памяти AMD научили обходить аппаратную изоляцию

Исследователь Кристофер Домас опубликовал PoC-проект skitter-creek-bath-salts, демонстрирующий обход аппаратной защиты памяти на процессорах AMD Family 16h. Техника манипулирует настройками контроллера DRAM и позволяет обращаться к областям, которые должны быть недоступны даже операционной системе, ядру и коду с привилегиями ring 0.

Обычно программные и аппаратные механизмы контролируют доступ по физическим адресам.

Но последнюю точку в маршруте ставит контроллер памяти: он переводит адрес в конкретные координаты DRAM — канал, ранг, банк, строку и столбец.

Домас показал, что изменение одного регистра может перенастроить это преобразование уже после срабатывания вышестоящих средств защиты. В результате появляется альтернативный адрес, ведущий к тем же ячейкам DRAM. Охраняемый вход остаётся заперт, но контроллер внезапно рисует вторую дверь прямо в стене.

 

Чтобы система не рухнула, PoC отключает прерывания, подготавливает кеш и таблицы трансляции, ненадолго меняет схему адресации, читает или записывает нужные данные, а затем возвращает исходные настройки.

Для поиска адресов-двойников проект использует линейную алгебру и SMT-решатель Z3. Инструменты восстанавливают связь между обычным и изменённым отображением памяти, после чего вычисляют алиас для защищённой области.

Исследователь продемонстрировал потенциальный доступ к памяти AMD Platform Security Processor, включая данные fTPM, защищённой области System Management Mode, состояниям процессора C6 и хранилищу микрокода. Последний сценарий допускает не только извлечение копии патча, но и её возможное изменение перед восстановлением состояния ядра.

PoC проверяли только на AMD Family 16h. Данных об аналогичной уязвимости в новых AMD, Intel, ARM или RISC-V нет.

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