Группа американских исследователей обнаружила уязвимость GoFetch в процессорах Apple M1, M2 и M3. Эксплуатация этой уязвимости позволяет злоумышленнику перехватывать криптографическую информацию из кеша процессора, восстанавливать по ней ключи шифрования и открывать доступ к конфиденциальным данным.
Уязвимость связана с работой механизма предварительной загрузки данных DMP (Data Memory-dependent Prefetcher) — он присутствует в процессорах Apple Silicon и Intel Raptor Lake, обеспечивая загрузку данных в память ещё до того, как они понадобятся. Проблема состоит в том, что DMP иногда по ошибке загружает в кеш центрального процессора неподходящие данные, из-за чего нейтрализуются защитные средства ПО: эксплуатирующие уязвимость GoFetch приложения могут обманным путём заставить криптографическое ПО загрузить в кеш конфиденциальные данные, для последующей их кражи вредоносом.
Эта серьёзная уязвимость затрагивает все виды алгоритмов шифрования, включая методы с 2048-битными ключами, которые считаются защищёнными от взлома при помощи квантовых компьютеров. Единственный способ защититься от уязвимости — смягчить её последствия, снизив производительность шифрования и дешифрования на процессорах Apple M1, M2 и M3. Разработчики могут принудительно направить компоненты шифрования на эффективные E-ядра, которые лишены DMP, но это грозит потерей производительности. Вероятным исключением также является процессор Apple M3 — он, возможно, располагает «переключателем», которым разработчики могут воспользоваться для деактивации DMP, но неизвестно, как это повлияет на скорость работы системы.
Примечательно, что процессоры на архитектуре Intel Raptor Lake (13 и 14 поколений) лишены этой уязвимости, хотя в них используется тот же механизм DMP — вероятно, Apple при проектировании чипов M4 учтёт этот аспект и выпустит их на рынок без данной ошибки. Сроков исправления проблемы для существующих процессоров Apple пока не обозначила.
Источник: