Опубликована техника обхода SMEP-защиты при эксплуатации Linux уязвимостей

Опубликована техника обхода SMEP-защиты при эксплуатации Linux уязвимостей

В ядре Linux 3.0 была представлена поддержка режима SMEP (Supervisor Mode Execution Protection), присутствующего в процессорах Intel на базе архитектуры Ivy Bridge. Использование SMEP не даёт переходить из режима ядра к выполнению кода, находящегося на пользовательском уровне, что позволяет блокировать эксплуатацию многих уязвимостей в ядре Linux (shell-код не будет выполнен, так как он находится в пространстве пользователя).

Один из исследователей безопасности опубликовал интересный способ эксплуатации уязвимостей в ядре в обход защиты SMEP (существуют и другие пути обхода SMEP, но данный метод заслуживает внимания в силу своей оригинальности), сообщает opennet.ru.

Метод построен на основе организации подстановки последовательности инструкций в исполняемую область JIT-компилятора (например, подсистемы BPF - Berkeley Packet Filter), генерирующего код на основе входных данных, которые могут контролироваться атакующим. Так как JIT-компилятор контролирует генерацию кода, так просто подставить инструкции не получится. Но можно воспользоваться тем, что входящие данные используются в качестве аргументов генерируемых инструкций. Например, для входных данных "$0xa8XXYYZZ" и "$0xa8PPQQRR" будет сгенерирован код:

b8 ZZ YY XX a8 mov $0xa8XXYYZZ, %eax
b8 RR QQ PP a8 mov $0xa8PPQQRR, %eax
b8 ...

Если пропустить байт с кодом инструкции mov (b8) и передать управление на следующий за ним байт (ZZ) будет выполнен машинный код "ZZ YY XX". При этом переданные в хвосте данные "a8" будут обработаны как ничего не значащая команда test с аргументом из кода команды mov (b8):

ZZ YY XX (подконтрольные атакующему инструкции)
a8 b8 test $0xb8, %al
RR QQ PP (подконтрольные атакующему инструкции)
a8 b8 test $0xb8, %al

Таким образом у злоумышленника появляется возможность формирования произвольной последовательности трёхбайтовых команд, выполняемой в пространстве ядра. При эксплуатации уязвимости, управление может быть передано на данные команды, в которых можно повысить привилегии процесса или отключить SMEP и передать управление на обычный shell-код в пространстве пользователя.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

В npm нашли пакет, ставивший AdaptixC2 на компьютеры разработчиков

Специалисты «Лаборатории Касперского» в октябре 2025 года обнаружили в популярном репозитории npm злонамеренный пакет под названием https-proxy-utils. Он маскировался под легитимные библиотеки для работы с прокси, но внутри прятал постинсталляционный скрипт, который загружал и запускал AdaptixC2.

AdaptixC2 представляет собой опенсорсный фреймворк командования и управления, похожий на Cobalt Strike и уже используемый в реальных атаках. Пакет уже удалён из npm.

Схема выглядела просто и опасно: название пакета имитировало привычные пакеты с похожими именами, поэтому разработчики могли взять его по невнимательности.

После установки вредоносный скрипт скачивал компонент AdaptixC2 и разворачивал его на машине жертвы, давая злоумышленникам удалённый доступ, возможность управлять файлами и процессами и закрепляться в системе для дальнейших действий.

Авторы кампании подстраивали способ доставки в зависимости от операционной системы жертвы: на Windows использовались техники, позволяющие запустить вредоносную библиотеку вместе с легитимным приложением (DLL sideloading), а для Linux и macOS применялись свои варианты загрузки и запуска. Именно такая адаптивность делает подобные цепочки особенно коварными.

«Инцидент с AdaptixC2 показывает, что хранилища опенсорс-пакетов всё чаще используют как вектор атак», — отмечает Владимир Гурский из «Лаборатории Касперского. — Злоумышленники применяют более изощрённые приёмы маскировки известных инструментов, а техники вроде sideloading становятся всё более популярны. Без современных средств защиты такие кампании тяжело обнаружить».

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

Во-вторых, автоматические проверки и сканеры зависимостей в CI/CD помогают ловить подозрительные действия. И, конечно, на конечных машинах полезны средства мониторинга и EDR, которые заметят необычную сеть- или процессную активность.

Несколько простых правил, которые помогут снизить риск: использовать lock-файлы и проверенные версии библиотек, ограничивать права среды сборки, включать анализ зависимостей в пайплайны, не запускать установку пакетов под правами админа без необходимости и регулярно сканировать проекты на предмет подозрительных скриптов.

Случай с https-proxy-utils — ещё один напоминание: опенсорс полезен и удобен, но требует осторожности. Проверяйте пакеты и следите за зависимостями — ведь одно случайное «npm install» может дорого обойтись.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

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