Опубликована техника обхода 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-код в пространстве пользователя.

Троян Android.MagicAd пролез в официальные магазины Xiaomi и Samsung

Пользователям Android снова напомнили, что даже официальный магазин приложений не всегда гарантирует безопасность. Специалисты «Доктор Веб» обнаружили семейство троянов Android.MagicAd, которое научилось показывать рекламу поверх других приложений, обходя встроенные защитные механизмы операционной системы.

Особенность Android.MagicAd в том, что он действует максимально скрытно. Вредоносный код хранится внутри зашифрованных нативных библиотек и расшифровывается только во время работы приложения.

Перед активацией троян проверяет окружение: ищет признаки виртуальных машин, анализирует способ установки приложения и даже проверяет IP-адрес устройства. Если всё выглядит безопасно для злоумышленников, вредонос приступает к работе.

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

 

Вместо этого троян использует целый набор нестандартных приёмов. Например, на устройствах Xiaomi он взаимодействует с браузером Mi Browser и компонентами MIUI, на смартфонах Vivo использует системные сервисы через механизм Binder, а на устройствах Amazon эксплуатирует домашний экран Fire TV.

Есть и универсальный метод. Вредонос запускает медиаплеер с практически нулевой громкостью, имитирует нажатие мультимедийных кнопок и использует системные механизмы управления воспроизведением как точку входа для показа рекламы. Со стороны всё выглядит как обычная работа мультимедийных функций Android.

По данным Doctor Web, заражённые приложения распространялись через официальный магазин Xiaomi GetApps, а также были замечены в Samsung Galaxy Store. Всего исследователи насчитали более 50 вредоносных приложений.

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

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

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