Неустранимая уязвимость безопасности в Mac с Apple Silicon нарушает шифрование

Исследователи из университетов обнаружили неустранимую уязвимость безопасности в Mac с Apple Silicon, которая позволила бы злоумышленнику обойти шифрование и получить доступ к криптографическим ключам.

Уязвимость присутствует в чипах M1, M2 и M3, и поскольку проблема является частью архитектуры чипов, Apple не может исправить ее в текущих устройствах…

Уязвимость заключается в процессе, известном как DMP

Прежде чем объяснить уязвимость, мы должны понять процесс, используемый в самых современных чипах, известный как предварительная выборка данных с зависимостью от памяти (Data Memory-dependent Prefetchers, DMP). Вот как ArsTechnica объясняет эту концепцию:

Угроза заключается в предварительной выборке данных с зависимостью от памяти в чипах, аппаратной оптимизации, которая предсказывает адреса памяти данных, к которым выполняющийся код, скорее всего, обратится в ближайшем будущем. Загружая содержимое в кэш ЦП до того, как оно фактически потребуется, DMP, как сокращенно называется эта функция, уменьшает задержку между основной памятью и ЦП, что является распространенным узким местом в современных вычислениях. DMP — это относительно новое явление, обнаруженное только в чипах серии M и микроархитектуре Intel Raptor Lake 13-го поколения, хотя более старые формы предварительной выборки распространены уже много лет.

Проблема возникает из-за ошибки в DMP.

Неустранимая уязвимость безопасности

Семь исследователей из шести разных университетов совместно выявили уязвимость и создали приложение, которое успешно ее использовало: GoFetch.

Подробности довольно технические, но вкратце: данные, хранящиеся в чипе, иногда ошибочно принимаются за адрес памяти и кэшируются. Если вредоносное приложение многократно вызывает эту ошибку, то со временем оно может расшифровать ключ.

Вот как исследователи описывают это более подробно:

Предварительные выборщики обычно смотрят на адреса полученных данных (игнорируя значения полученных данных) и пытаются угадать будущие адреса, которые могут быть полезны. DMP отличается в этом смысле, поскольку помимо адресов он также использует значения данных для прогнозирования (прогнозирование адресов для перехода и предварительной выборки). В частности, если значение данных «выглядит как» указатель, оно будет рассматриваться как «адрес» (хотя на самом деле это не так!), и данные из этого «адреса» будут помещены в кэш. Прибытие этого адреса в кэш видимо, утекая через побочные каналы кэша.

Наша атака использует этот факт. Мы не можем напрямую утечь ключи шифрования, но мы можем манипулировать промежуточными данными внутри алгоритма шифрования, чтобы они выглядели как указатель посредством атаки выбранного ввода. Затем DMP видит, что значение данных «выглядит как» адрес, и помещает данные из этого «адреса» в кэш, что приводит к утечке «адреса». Нам не важно значение предварительно выбранных данных, но тот факт, что промежуточные данные выглядели как адрес, видим через канал кэша и со временем достаточен для раскрытия секретного ключа.

Это не первый случай обнаружения уязвимости DMP в Apple Silicon. Еще в 2022 году другая исследовательская группа обнаружила уязвимость под названием Augury.

Возможно обходное решение, но оно повлияет на производительность

Исследователи говорят, что поскольку проблему нельзя исправить, Apple сможет лишь реализовать обходные пути — но это сильно повлияет на производительность.

Одна из наиболее эффективных мер защиты, известная как затуманивание шифротекста (ciphertext blinding), является хорошим примером. Затуманивание работает путем добавления/удаления масок к чувствительным значениям до/после их сохранения/загрузки из памяти. Это фактически рандомизирует внутреннее состояние криптографического алгоритма, не позволяя злоумышленнику контролировать его и, таким образом, нейтрализуя атаки GoFetch. К сожалению, как заявили исследователи, эта защита является специфичной для алгоритма и часто дорогостоящей, в некоторых случаях, например, для обмена ключами Диффи — Хеллмана, она может удвоить требуемые вычислительные ресурсы.

Другая мера защиты — выполнение криптографических процессов на ранее упомянутых энергоэффективных ядрах, также известных как ядра Icestorm, которые не имеют DMP. Один из подходов — выполнять весь криптографический код на этих ядрах. Эта защита также далека от идеальной. Не только возможно, что неуказанные изменения добавят функциональность DMP к энергоэффективным ядрам, но и выполнение криптографических процессов здесь, вероятно, значительно увеличит время, необходимое для завершения операций.

Но риски в реальном мире невелики

Чтобы использовать уязвимость, злоумышленнику пришлось бы обманом заставить пользователя установить вредоносное приложение, а неподписанные приложения Mac блокируются по умолчанию.

Кроме того, время, необходимое для проведения атаки, весьма значительно — от 54 минут до 10 часов по результатам тестов, проведенных исследователями, поэтому приложение должно было бы работать в течение значительного времени.

Apple до сих пор решила не внедрять защиту от эксплойта DMP Augury, вероятно, потому, что снижение производительности не было бы оправдано очень низким реальным риском реальной атаки. Исследователи поделились своими выводами с Apple еще в декабре, и пока никакого обходного пути не реализовано, несомненно, по той же причине. Компания публично не комментировала.

Долгосрочным решением будет устранение уязвимости в реализации DMP при проектировании будущих чипов Apple.

Фото: Али Махмуди на Unsplash