Новая уязвимость "GoFetch" в чипах Apple серии M приводит к утечке секретных ключей шифрования

Teacher

Professional
Messages
2,677
Reputation
9
Reaction score
632
Points
113
Новый недостаток безопасности, обнаруженный в чипах Apple серии M, может быть использован для извлечения секретных ключей, используемых во время криптографических операций.

Получившая название GoFetch, уязвимость относится к микроархитектурной атаке по побочному каналу, которая использует функцию, известную как предварительная выборка, зависящая от памяти данных (DMP), для атаки на криптографические реализации с постоянным временем и захвата конфиденциальных данных из кэша процессора. Apple была поставлена в известность о результатах в декабре 2023 года.

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

DMP - это тип предварительной выборки, который учитывает содержимое памяти на основе ранее наблюдавшихся шаблонов доступа при определении того, что следует предварительно выбрать. Такое поведение делает его пригодным для атак на основе кэша, которые обманом заставляют программу предварительной выборки раскрывать содержимое, связанное с процессом-жертвой, которое в противном случае должно быть недоступно.

GoFetch также основывается на другой микроархитектурной атаке под названием Augury, которая использует DMP для спекулятивной утечки данных.

"DMP активирует загруженные из памяти данные (и пытается разыменовать их), которые "выглядят как" указатель", - сообщила команда из семи ученых из Иллинойского университета Урбана-Шампейн, Техасского университета, Технологического института Джорджии, Калифорнийского университета, Беркли, Вашингтонского университета и Университета Карнеги-Меллона.

"Это явно нарушает требование парадигмы программирования с постоянным временем, которая запрещает смешивать схемы доступа к данным и памяти".

Как и при других атаках подобного рода, установка требует, чтобы у жертвы и злоумышленника были два разных процесса, расположенных на одном компьютере и в одном кластере процессоров. В частности, злоумышленник может заманить цель в загрузку вредоносного приложения, использующего GoFetch.

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

вкратце, GoFetch демонстрирует, что "даже если жертва правильно отделяет данные от адресов, следуя парадигме постоянного времени, DMP будет генерировать доступ к памяти, зависящий от секрета, от имени жертвы", что делает его уязвимым для атак с извлечением ключей.

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

"GoFetch показывает, что DMP значительно более агрессивен, чем считалось ранее, и, следовательно, представляет гораздо больший риск для безопасности", - отметили исследователи.

Фундаментальный характер ошибки означает, что она не может быть исправлена в существующих процессорах Apple, требуя, чтобы разработчики криптографических библиотек предприняли шаги для предотвращения условий, позволяющих успешно использовать GoFetch, что также может привести к снижению производительности. С другой стороны, пользователям настоятельно рекомендуется поддерживать свои системы в актуальном состоянии.

Однако в чипах Apple M3 было обнаружено, что включение синхронизации, независимой от данных (DIT), отключает DMP. Это невозможно в процессорах M1 и M2.

"Кремний Apple обеспечивает синхронизацию, независимую от данных (DIT), при которой процессор выполняет определенные инструкции за постоянный промежуток времени", - отмечает Apple в своей документации. "При включенном DIT процессор использует более длительное время для выполнения инструкции, независимо от входных данных".

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

Другая группа исследователей из Технологического университета Граца в Австрии и Университета Ренна во Франции продемонстрировали новую атаку на графический процессор (GPU), поражающую популярные браузеры и видеокарты, которая использует специально созданный код JavaScript на веб-сайте для получения конфиденциальной информации, такой как пароли.

Метод, не требующий взаимодействия с пользователем, был описан как первая атака по побочному каналу кэша GPU из браузера.

"Поскольку вычисления на графическом процессоре также могут предложить преимущества для вычислений на веб-сайтах, производители браузеров решили предоставить GPU доступ к JavaScript через API, такие как WebGL и предстоящий стандарт WebGPU", - сказали исследователи.

"Несмотря на ограничения, присущие среде JavaScript и WebGPU, мы создаем новые примитивы атаки, позволяющие проводить атаки по побочным каналам кэширования с эффективностью, сопоставимой с традиционными атаками на базе центрального процессора".

Злоумышленник может использовать ее в качестве оружия с помощью обходной атаки, позволяющей извлекать ключи AES или добывать криптовалюты во время работы пользователей в Интернете. Она затрагивает все операционные системы и браузеры, реализующие стандарт WebGPU, а также широкий спектр устройств с графическими процессорами.

В качестве контрмер исследователи предлагают рассматривать доступ к видеокарте хост-системы через браузер как конфиденциальный ресурс, требуя, чтобы веб-сайты запрашивали разрешение пользователей (например, в случае с камерой или микрофоном) перед использованием.
 
Top