Как скальпелем по ядрам: управляемый вольтмод позволил взломать защиту Intel SGX

2

Ты в безопасности, пока тобой не заинтересовались. Это понятие хорошо описывает состояние дел с защищёнными вычислениями на процессорах Intel и других компаний. Если хорошо покопаться даже в самых, казалось бы, надёжных технологиях защиты данных, там всегда можно обнаружить дыру той или иной степени опасности. Свежим примером этому стало сообщение об обнаруженной уязвимости в технологии Intel SGX (Software Guard Extensions), которая появилась в процессорах с архитектурой Skylake. Не первая атака на SGX, кстати.

Как скальпелем по ядрам: управляемый вольтмод позволил взломать защиту Intel SGX


Технология SGX и соответствующий набор инструкций позволяет создать в физической памяти защищённую область или анклав, как называет её Intel. Важно отметить, что эта область защищена от доступа с верхних уровней или, если говорить проще, от доступа со стороны злоумышленника, который уже получил привилегированный доступ к системе. Например, технология позволяет защитить данные на сервере от недобросовестных работников ЦОД и от удалённого взлома. Данные в анклаве шифруются (программная защита) и аппаратно защищены инструкциями SGX от доступа с верхних уровней. Но теперь аппаратную защиты SGX удалось сломать интересным способом.

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

Эта уязвимость получила имя Plundervolt и номер CVE-2019-11157. Она обнаружена сводной командой исследователей из британского Университета Бирмингема бельгийского Левенского университета австрийского Грацского технического университета. Идеей воспользоваться серией пониженных и повышенных напряжений питания процессора для нарушения целостности данных в памяти послужили уже обнаруженные ранее уязвимости Rowhammer, CLKSCREW и VoltJockey.

Для начала исследователи выяснили, какие регистры модели (MSR, ModelSpecific Registers) используются для управления динамическим масштабированием напряжения с помощью программного обеспечения. Такие регистры существуют во всех процессорах Intel. Используя этот интерфейс и манипулируя напряжением питания, удалось вызвать ошибки во время вычислений с использованием инструкций SGX. Поскольку вычисления проводятся в процессоре до выгрузки данных в защищённый анклав памяти, технология SGX оказывается беззащитна для данного вида атаки (данные в процессоре она не защищает).

Как скальпелем по ядрам: управляемый вольтмод позволил взломать защиту Intel SGX

С помощью атаки Plundervolt исследователи добились следующих результатов. Во-первых, разрушается гарантия целостности процессов Intel SGX, поскольку ошибки можно прямо внедрять в работающий процессор. Во-вторых, внедрение сбоев в процессы Intel RSA-CRT и AES-NI в анклаве SGX дают возможность восстановить криптографические ключи с «незначительными вычислительными усилиями». В-третьих, защищённые данные удалось перенаправить в незащищённые области памяти и извлечь их.

Перед публикацией информации о Plundervolt исследователи поставили об этом в известность компанию Intel. Последняя уже выпустила обновлённый микрокод для процессоров Core и Xeon на архитектуре Skylake. Все заинтересованные должны установить обновление и найти обновлённую версию BIOS у производителей материнских плат.

Источник