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

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!