Группа исследователей из Университета Бирмингема (Великобритания), Левенского университета (Бельгия) и Грацского технического университета (Австрия) раскрыла данные об атаке Plundervolt (CVE-2019-11157), которая представляет угрозу для процессоров Intel и влияет на целостность данных в анклавах Intel SGX и опубликовала на GitHub PoC-эксплоит.

С релизом архитектуры Skylake компания Intel представила технологию, получившую название SGX (Software Guard Extensions). SGX – это набор инструкций процессора, благодаря которым приложения могут создавать защищенные зоны (анклавы) в адресном пространстве приложения, внутри которых под надежной защитой могут храниться различные конфиденциальные данные. Анклавы SGX обычно изолированы на аппаратном уровне (память SGX отделена от остальной памяти процессора) и на программном уровне (данные SGX зашифрованы). Сами разработчики описывают технологию как своеобразную "обратную песочницу" (inverse sandbox).

Plundervolt строится на злоупотреблении интерфейсом, посредством которого операционная система может контролировать напряжение и частоту процессора. Фактически исследователи доказали, что корректируя напряжение и частоту процессора, они могут изменять биты внутри SGX, что приводит к возникновению ошибок, которые могут быть использованы позднее, после того как данные покинут безопасный анклав. В итоге атака Plundervolt может использоваться для восстановления ключей шифрования или привнесения багов в ранее надежное ПО.

Авторы Plundervolt объясняют, что их разработка объединяет в себе идеи ранее известных атак Rowhammer, CLKSCREW и VoltJockey: использует интерфейс управления энергопотреблением ЦП для изменения электрического напряжения и частоты внутри ячеек памяти SGX и это провоцирует изменение данных. Эти изменения не нарушают секретность SGX, но они привносят ошибки в операции SGX не нарушая саму защиту, а саботируя результаты работы операций SGX.

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

Также Plundervolt можно применить для внесения ошибок в ранее защищенные приложения, что позволит злоумышленнику атаковать их после выхода из SGX.

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

Исследователи отмечают, что Plundervolt работает куда быстрее других "процессорных" атак, таких как Spectre, Meltdown, Zombieload, RIDL и так далее. Переворот битов удается осуществить очень быстро, и, к примеру, для извлечения ключа AES понадобится всего несколько минут, включая вычисления, необходимые для получения ключа из поврежденного зашифрованного блока.

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

Представители Intel сообщили, что для атак Plundervolt уязвимы следующие процессоры:

  • Процессоры Intel® 6, 7, 8, 9 и 10 поколений CoreTM
  • Процессор Intel® Xeon® E3 v5 и v6
  • Семейства процессоров Intel® Xeon® E-2100 и E-2200

Инженеры Intel были предупреждены о Plundervolt еще в июне 2019 года, так что у компании было время на разработку обновленного микрокода для процессоров. Обновления микрокода и BIOS уже опубликованы на сайте производителя.

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