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

AdBlock в Chrome жив: специалисты не нашли минусов у Manifest v3

Вокруг Manifest v3 в Chrome было много шума: ожидалось, что новый стандарт для браузерных расширений всерьёз ударит по блокировщикам рекламы и трекеров. Но свежее академическое исследование показывает: паника, похоже, была преждевременной. Учёные из Университета имени Гёте во Франкфурте сравнили эффективность аддонов на базе старого Manifest v2 и нового Manifest v3.

Результаты они опубликовали в журнале Proceedings on Privacy Enhancing Technologies (PoPETs). И главный вывод звучит обнадёживающе: заметной разницы между MV2 и MV3 они не нашли.

По словам авторов исследования, Карло Лукича и Лазароса Пападопулоса, блокировка рекламы и трекеров в MV3 работает не хуже, чем в MV2. Более того, в отдельных сценариях расширения на базе Manifest v3 даже показывали небольшой плюс: в среднем они блокировали на 1,8 трекера больше на каждом сайте.

Напомним, Google анонсировала Manifest v3 ещё в 2019 году, объясняя переход заботой о производительности и безопасности. Ключевым изменением стало отключение синхронного API chrome.webRequest, который позволял расширениям гибко перехватывать сетевой трафик. Вместо него появился асинхронный chrome.declarativeNetRequest — быстрее и безопаснее, но, как считали разработчики, куда менее гибкий.

Именно это изменение тогда и вызвало волну критики со стороны авторов блокировщиков рекламы. Многие опасались, что Google просто защищает рекламную модель своего бизнеса. Однако, судя по результатам независимого исследования, реального «обрушения» не произошло.

Важно, что учёные тестировали расширения с настройками по умолчанию — так, как их использует большинство обычных пользователей. При этом они подчёркивают: исследование — это «срез во времени». Будущие изменения в Manifest v3, лимиты на правила фильтрации или другие правки теоретически могут повлиять на эффективность.

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

Впрочем, проблемы у экосистемы Chrome-расширений всё ещё остаются. Разработчики по-прежнему жалуются на медленные улучшения API и слабый контроль в Chrome Web Store. Тем не менее Google постепенно наводит порядок: появляются верифицированные загрузки, страницы издателей и более жёсткие правила против злоупотреблений с партнёрскими ссылками.

Кстати, недавно YouTube начал выводить ошибку «контент недоступен» из-за блокировщиков рекламы.

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