В чипах серии M от Apple обнаружена неустранимая уязвимость, позволяющая злоумышленникам извлекать секретные ключи шифрования из Mac при определенных условиях, согласно недавно опубликованной академической исследовательской работе (через ArsTechnica).
Названная «GoFetch«, описанный тип кибератаки включает в себя предикторы предвыборки данных памяти (DMP), которые пытаются предсказать, какие данные компьютеру потребуются в следующий раз, и заранее их извлекают. Это предназначено для ускорения обработки, но может непреднамеренно раскрывать информацию о том, что делает компьютер.
В исследовании говорится, что DMP, особенно в процессорах Apple, представляют серьезную угрозу для безопасности, обеспечиваемой моделями программирования с постоянным временем выполнения, которые используются для написания программ таким образом, чтобы они выполнялись одинаковое количество времени, независимо от обрабатываемых данных.
Модель программирования с постоянным временем выполнения предназначена для защиты от атак по сторонним каналам, или типов атак, при которых злоумышленник может получить конфиденциальную информацию из компьютерной системы без прямого доступа к ней (например, наблюдая за определенными закономерностями). Идея состоит в том, что если все операции занимают одинаковое время, злоумышленнику остается меньше для наблюдения и использования.
Однако в исследовании говорится, что DMP, особенно в Apple Silicon, могут утекать информацию, даже если программа разработана так, чтобы не раскрывать никаких закономерностей в доступе к памяти. Новое исследование обнаружило, что DMP иногда могут путать содержимое памяти, что приводит к тому, что данные обрабатываются как адрес для выполнения доступа к памяти, что противоречит модели постоянного времени выполнения.
Авторы представляют GoFetch как новый тип атаки, который может использовать эту уязвимость в DMP для извлечения ключей шифрования из защищенного программного обеспечения. Атака работает против некоторых популярных алгоритмов шифрования, которые считаются устойчивыми к атакам по сторонним каналам, включая как традиционные (например, обмен ключами Диффи-Хеллмана OpenSSL, дешифрование Go RSA), так и постквантовые (например, CRYSTALS-Kyber и CRYSTALS-Dilithium) криптографические методы.
В электронном письме ArsTechnica авторы объяснили:
Предикторы предвыборки обычно смотрят на адреса извлекаемых данных (игнорируя значения извлекаемых данных) и пытаются угадать будущие адреса, которые могут быть полезны. DMP отличается в этом смысле тем, что помимо адресов он также использует значения данных для прогнозирования (прогнозирование адресов и предвыборка). В частности, если значение данных «выглядит как» указатель, оно будет рассматриваться как «адрес» (хотя на самом деле им не является!) и данные из этого «адреса» будут загружены в кэш. Прибытие этого адреса в кэш видимо и утекает через каналы кэша.
Наша атака использует этот факт. Мы не можем напрямую утекать ключи шифрования, но мы можем манипулировать промежуточными данными внутри алгоритма шифрования, чтобы они выглядели как указатель через атаку с выбранным входным значением. Затем DMP видит, что значение данных «выглядит как» адрес, и загружает данные из этого «адреса» в кэш, что приводит к утечке «адреса». Нас не волнует значение данных, которое предварительно выбирается, но тот факт, что промежуточные данные выглядели как адрес, виден через кэш-канал и достаточен для раскрытия секретного ключа со временем.
Таким образом, в исследовании показано, что функция DMP в процессорах Apple Silicon может быть использована для обхода мер безопасности в криптографическом программном обеспечении, которые, как считалось, защищают от таких утечек, потенциально позволяя злоумышленникам получить доступ к конфиденциальной информации, такой как 2048-битный RSA-ключ, в некоторых случаях менее чем за час.
По словам авторов, недостаток в чипах Apple нельзя исправить напрямую. Вместо этого вектор атаки можно только снизить за счет создания средств защиты в стороннем криптографическом программном обеспечении, что может привести к крайнему снижению производительности при выполнении криптографических операций, особенно на более ранних чипах M1 и M2. DMP в M3, новейшем чипе Apple, имеет специальный бит, который разработчики могут использовать для его отключения, но исследователи пока не уверены, какие именно последствия будут при отключении этой оптимизации производительности.
Как отмечает ArsTechnica, это не первый раз, когда исследователи обнаруживают угрозы в DMP Apple. Исследование, задокументированное в 2022 году, выявило одну такую угрозу как в M1, так и в чипе Apple A14 Bionic для iPhone, что привело к атаке «Augury«. Однако эта атака в конечном итоге не смогла извлечь конфиденциальные данные при использовании практик постоянного времени выполнения.
«GoFetch показывает, что DMP значительно агрессивнее, чем считалось ранее, и поэтому представляет гораздо больший риск для безопасности», — утверждают исследователи на своем веб-сайте. «В частности, мы обнаружили, что любое значение, загруженное из памяти, является кандидатом на разыменование (буквально!). Это позволяет нам обойти многие ограничения Augury и продемонстрировать атаки сквозной обработки на реальный код с постоянным временем выполнения.»
Атаки типа DMP не являются распространенными, и исследователи уведомили Apple об уязвимости в декабре 2023 года. Пользователям, обеспокоенным уязвимостью, рекомендуется проверять наличие обновлений для смягчения последствий GoFetch, которые станут доступны в будущих обновлениях macOS для любых протоколов шифрования, известных как уязвимые. Представители Apple отказались от комментариев по этому поводу, когда ArsTechnica запросила их мнение об исследовании.