В процессорах Apple M1 нашли аппаратную уязвимость

Исследователи Лаборатории компьютерных наук и искусственного интеллекта (CSAIL) при Массачусетском технологическом институте изложили сценарий атаки PACMAN, которая возможна благодаря аппаратной уязвимости процессоров серии Apple M1. Такая атака производится при помощи комбинации аппаратных и программных средств, её можно провести удалённо. 

67d3399ec04eaee97c2a37d432950635.jpg

При успешной реализации PACMAN позволяет злоумышленнику получить доступ к ядру ОС и даёт полный контроль над атакованным устройством, утверждают исследователи. 

Данную уязвимость в процессоре нельзя исправить программными средствами. 

По словам исследователей, уязвимыми могут оказаться и Arm-чипы других производителей, включая Qualcomm и Samsung, если в них используется аутентификация указателей. Однако пока они проработали сценарий атаки только для Apple M1.

Атака осуществляется благодаря функции безопасности Pointer Authentication (аутентификация указателя), которая используется для проверки исполняемого ПО посредством криптографических подписей или кодов аутентификации указателя (PAC или Pointer Authentication Codes). Это требуется для защиты системы от атак с подменой указателей адресов памяти, которые контролируются значениями PAC. 

8361bbcd2cb5662038cfcda063741abd.jpg

Разработанная исследователями техника позволяет «подбирать» значения PAC, что напоминает эксплойты уязвимостей Spectre и Meltdown. 

Авторы отмечают, что PACMAN работает на разных уровнях привилегий.

Исследователи уже сообщили Apple о своём открытии несколько месяцев назад. Пока уязвимость не зарегистрировали в общедоступной CVE-базе, но авторы проекта обещают сделать это в ближайшее время. 

Учёные представят подробности об уязвимости в докладе на Международном симпозиуме по компьютерной архитектуре (ISCA 2022) 18 июня в Нью-Йорке.

В 2021 году исследователь рассказал о другой уязвимости открытого канала в архитектуре чипа Apple М1, которую нельзя исправить. M1racles позволяла осуществлять быструю скрытую передачу данных между двумя приложениями различных пользователей в системе на уровне одного из каналов в вычислительном ядре чипа.

© Habrahabr.ru