- PVSM.RU - https://www.pvsm.ru -
Исследователи из трёх европейских университетов раскрыли детали [1] первой известной атаки на SGX [2].
Набор инструкций SGX (Software Guard eXtensions) позволяет приложению создавать анклавы — области в виртуальном адресном пространстве, защищённые от чтения и записи извне этой области другими процессами, включая ядро операционной системы. Анклавы изолированы на аппаратном и программном уровне: эта память физически отделена от остальной памяти процессора и зашифрована.
Атака Plundervolt [1] (CVE-2019-11157) использует интерфейс ОС для управления напряжением и частотой процессора Intel — тот же интерфейс, который используется для разгона CPU при оверклокинге. Изменяя напряжение CPU, она за несколько минут извлекает данные из анклава, в том числе ключи шифрования.
Код демонстрационного эксплоита опубликован на GitHub [3]. Уязвимые процессоры:
Исследователям удалось объединить концепции двух известных атак:
Plundervolt сочетает в себе принципы, лежащие в основе этих двух атак. Через DVFS она изменяет напряжение в ячейках памяти SGX, что приводит к нежелательным изменениям данных в анклаве.
Работа основана на проведённом ранее реверс-инжиниринге процессоров Intel. Тот выявил, какие регистры MSR (ModelSpecific Register) отвечают за динамическое изменение напряжения CPU после программной команды. Такие регистры есть во всех процессорах Intel.
Схема недокументированного регистра MSR c адресом 0x150
Как выяснилось, в уязвимых процессорах происходит предсказуемая замена бит. Например, в процессоре Core i3-7100U при понижении напряжения на 118 мВ операция 0x80D36 * 0x21 = 0x109b3f6
даёт предсказуемо сбойное значение 0xffffffffe109b417
на частоте 2 ГГц.
Другие примеры сбойных умножений в Core i3-7100U на частоте 2 ГГц:
Эти небольшие изменения не нарушают секретность SGX. Вместо этого они вводят ошибки в операции SGX по обработке данных. Другими словами, Plundervolt не взламывает SGX, а изменяет результат: «Понижение напряжения индуцирует изменение битов в инструкциях процессора, таких как умножение или раунды шифрования AES (AES-NI)», — объясняет Дэвид Освальд, академик из Бирмингемского университета, один из авторов научной работы. — Поскольку SGX шифрует данные только при чтении и записи в память (но не внутри процессора), то защита памяти SGX не предотвращает эти ошибки (так как неисправные значения сами записываются в память)».
Plundervolt позволяет увидеть шифрованные сообщения на выходе из анклава SGX, а затем восстановить секретный ключ, который изначально использовался для шифрования данных.
Исследователи продемонстрировали эффективность атаки, введя ошибки в реализации Intel RSA-CRT и AES-NI, работающие в анклаве SGX. Им удалось восстановить полные криптографические ключи с незначительными вычислительными усилиями.
Код для проверки атаки (репозиторий на GitHub) [3]
Описанная атака не требует радикального повышения напряжения, так что не угрожает физической безопасности чипа. На самом деле этой свойство Plundervolt делает атаку ещё опаснее. Ещё одно опасное свойство — она гораздо быстрее, чем большинство других атак на процессоры Intel, таких как Spectre, Meltdown, Zombieload, RIDL и прочие. В таблице указано количество итераций до появления ошибки умножения (0xAE0000 * 0x18
) на разных значениях пониженного напряжения в I3-7100U на 2 ГГц:
Изменение битов в умножениях AES осуществляются очень быстро. Например, извлечение ключа AES занимает несколько минут, включая вычисление, необходимое для получения ключа из неисправного шифротекста, говорит Освальд.
К сожалению для злоумышленников, атаку Plundervolt трудно провести удалённо. Нельзя заманить пользователя на веб-сайт и запустить JavaScript. Напряжение CPU таким методом не изменяется. Для работы Plundervolt требует наличия на компьютере жертвы приложения на с правами root или admin. Это требует социальной инженерии и применения дополнительных эксплоитов.
Plundervolt не работает в виртуализированных средах, таких как виртуальные машины и службы облачных вычислений, где у гостевой ОС нет доступа к интерфейсу, управляющему напряжением процессора.
Тем не менее, Plundervolt является серьёзной проблемой. Исследовательская группа уведомила Intel об уязвимости в июне 2019 года, и с тех пор производитель CPU работал над патчами. Обновления микрокода и BIOS выпущены 10 декабря 2019 года в рамках рекомендаций по безопасности INTEL-SA-00289 [6]. После установки патчей в BIOS можно отключить интерфейс по управлению напряжением и тактовой частотой.
Техническое описание атаки см. в научной статье (pdf) [7], которая выйдет в сборнике Proceedings of the 41st IEEE Symposium on Security and Privacy [8].
Автор: Дата-центр "Миран"
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/340155
Ссылки в тексте:
[1] раскрыли детали: https://www.plundervolt.com/
[2] SGX: https://en.wikipedia.org/wiki/Software_Guard_Extensions
[3] опубликован на GitHub: https://github.com/KitMurdock/plundervolt
[4] Rowhammer: https://en.wikipedia.org/wiki/Row_hammer
[5] CLKSCREW: https://www.bleepingcomputer.com/news/security/clkscrew-attack-can-hack-modern-chipsets-via-their-power-management-features/
[6] INTEL-SA-00289: https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00289.html
[7] научной статье (pdf): https://plundervolt.com/doc/plundervolt.pdf
[8] Proceedings of the 41st IEEE Symposium on Security and Privacy: https://www.ieee-security.org/TC/SP2020/
[9] Источник: https://habr.com/ru/post/480526/?utm_source=habrahabr&utm_medium=rss&utm_campaign=480526
Нажмите здесь для печати.