На прошлой неделе исследователи из США обнародовали (сайт проекта, научная работа) детали аппаратной уязвимости в микропроцессорах на базе архитектуры 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-модулями, встроенными в телефоны и другую технику, могут быть использованы для создания уникального паттерна, однозначно идентифицирующего конкретное устройство. Такой аналог «отпечатков пальцев» может в дальнейшем использоваться для отслеживания перемещений владельца.