Security Week 2224: аппаратная уязвимость в Apple M1

Security Week 2224: аппаратная уязвимость в Apple M1

На прошлой неделе исследователи из США обнародовали ( сайт проекта, научная работа ) детали аппаратной уязвимости в микропроцессорах на базе архитектуры ARM. Используя методы, впервые показанные для атаки SPECTRE в 2018 году, исследователи смогли обойти важный механизм защиты, известный как Pointer Authentication. Атака, получившая название PACMAN, была смоделирована на устройстве с процессором Apple M1.

Система проверки указателей была впервые представлена в архитектуре ARMv8.3 в 2017 году. Она серьезно затрудняет эксплуатацию уязвимостей, приводящих к повреждению содержимого памяти. Для указателей генерируется так называемый Pointer Authentication Code, криптографический хэш, который делает практически невозможной их модификацию: если код аутентификации неверный, выполнение программы прекращается. Соответственно, становится значительно сложнее эксплуатировать ошибку в коде и инициировать выполнение произвольного кода по указанному атакующим адресу. Исследователи из института MIT нашли способ подбора «правильного» кода аутентификации, пользуясь возможностями спекулятивного выполнения инструкций.

В нормальных условиях подобрать правильный PAC теоретически можно, но на практике каждая попытка перехода с неверным кодом будет приводить к падению программы с ошибкой. При перезапуске программы (что само по себе затрудняет потенциальную атаку) меняются и коды Pointer Authentication. Как выяснилось, можно создать такие условия, в которых операция перехода с аутентификацией выполняется спекулятивно. Ошибки от неправильного кода PAC при этом не происходит, а многократное спекулятивное выполнение операции позволяет подобрать код аутентификации. Анализ работы процессора по сторонним каналам позволяет определить, с каким кодом операции перехода будет дан «зеленый свет».


Принцип работы PACMAN очень похож на таковой у атаки SPECTRE: там также создаются условия для спекулятивного выполнения кода, но по сторонним каналам «вытаскивается» секретная информация. Здесь же просто обходится механизм безопасности, который в теории позволяет воспользоваться уязвимостью в ПО и, например, выполнить произвольный код в системе с привилегиями ядра. Показанная исследователями модель атаки достаточно базовая: авторы работы загружают так называемый Kernel Extension, содержащий все необходимое для проведения атаки, то есть уже пользуются максимальными привилегиями в системе. В реальности уязвимость, создающую подходящие условия, пришлось бы искать в ядре операционной системы (в данном случае Mac OS). Найти такую ошибку, впрочем, вполне возможно.

Компания Apple утверждает , что непосредственного риска для пользователей нет. Скорее всего, это действительно так: как и в случае атак семейства SPECTRE, слишком много условий должно совпасть, чтобы атаку можно было эксплуатировать. Есть небольшая вероятность, что в будущем будет найдена именно такая уязвимость в коде, которая позволит, например, получить системные права после загрузки вредоносной страницы в браузере. Но и такая серьезная проблема будет решена обычными методами — исправлением багов в браузере и в ядре ОС. Если отвлечься от этих практических трудностей, атака PACMAN выглядит красиво и слегка устрашающе: это же получается механизм обхода ключевой системы защиты, притом работающий на аппаратном уровне — его не получится «пропатчить» в существующих системах, в отличие от уязвимостей в ПО. Помимо Apple M1, механизм Pointer Authentication внедрен или планируется к внедрению и в других чипах на архитектуре ARM.

Что еще произошло:

Исследователи обнаружили (подробная статья на ArsTechnica, обсуждение на Хабре) грандиозную ошибку в логике открытия автомобилей Tesla при помощи карточки с NFC-меткой. В прошлом году использование NFC для разблокировки автомобиля было упрощено: в течение 130 секунд после открытия автомобиля можно было начать движение без дополнительной авторизации (до этого метку надо было положить на считыватель внутри авто). Как выяснилось, в течение этих же 130 секунд можно добавить новый ключ. Для проведения атаки автор работы написал приложение, которое прописывает в автомобиле новую NFC-метку. Находясь в зоне действия Bluetooth-приемника автомобиля, можно прописать в системе новый ключ, пока владелец открывает автомобиль собственной карточкой с NFC, а позднее — угнать машину.

Новое исследование показывает, как радиосигналы, передаваемые Bluetooth-модулями, встроенными в телефоны и другую технику, могут быть использованы для создания уникального паттерна, однозначно идентифицирующего конкретное устройство. Такой аналог «отпечатков пальцев» может в дальнейшем использоваться для отслеживания перемещений владельца.

apple m1 pointer authentication codes
Alt text

Ваш провайдер знает о вас больше, чем ваша девушка?

Присоединяйтесь и узнайте, как это остановить!