AMD SEV и Intel SGX снова оказались уязвимы, но на этот раз патчи не помогут

 

Технологии AMD SEV и Intel SGX позволяют создавать защищённые и зашифрованные области в памяти с ограниченным доступом. Первая в большей степени ориентирована на виртуализацию, вторая — на конфиденциальные вычисления. И для обеих исследователи нашли способ обойти защиту и ограничения, причём в обоих случаях используются атаки на аппаратном уровне с манипуляцией напряжением.

В статье, озаглавленной One Glitch to Rule Them All (Один глитч чтобы править всеми), исследователи из Берлинского технического университета (TU Berlin) описывают метод атаки на AMD Platform Secure Processor (PSP), независимый чип, присутствующий во всех процессорах EPYC всех поколений. PSP отвечает за безопасность платформы в целом, и за работу технологии SEV (Secure Encrypted Virtualization) во всех её вариантах. PSP проверяет целостность и корректность прошивок, загружаемых по цепочке во время старта системы.

Первичный загрузчик считывается из необновляемой ROM-области, после чего управление передаётся следующему загрузчику. Он проверяет и запускает внутреннюю ОС (PSP OS) и прошивку SEV, образы которых находятся уже в отдельной флеш-памяти на шине SPI. Атака, упрощённо говоря, сводится к инициированному сбою во время первичного общения PSP c ROM, что позволяет с некоторой долей вероятности заставить PSP посчитать ключ атакующего корректным и затем без проблем загрузить подписанные этим ключом и модифицированные по желанию атакующего образы из флеш-памяти на SPI.

Указанный сбой можно вызвать, точно манипулируя напряжением питания PSP. Для этого исследователи задействовали микроконтроллер Teensy 4.0, который подключался к шинам управления регулятором напряжения и SPI, а также к линии ATX для сброса CPU по питанию. Так как каждый сервер уникален, нужно время на первичную настройку параметров (около получаса), после чего микроконтроллер в автоматическом режиме начнёт атаковать систему со скоростью порядка 1100 попыток в час.

Ограничением в данном случае является тайм-аут линии ATX, поскольку после каждой неудачной попытки необходимо сбрасывать питание CPU. Это увеличивает время загрузки — от старта атаки до получения полного контроля проходит в среднем от 13,5 (Zen 1) до 46,5 (Zen 3) минут. Исследователи оговариваются, что это именно средние значения, так как разброс достаточно велик и неравномерен и не даёт даже приблизительно оценить время успешной атаки.

Схема атаки

Схема атаки

Тем не менее, есть шанс, что увеличенное время загрузки никто не заметит, поскольку крупные системы (в первую очередь с большим объёмом памяти) и так могут загружаться не один десяток минут. В случае успешной атаки её будет весьма трудно обнаружить, поскольку появляется возможность подавить любые дальнейшие проверки и подменить данные внутренней телеметрии.

Основную опасность данный метод атаки представляет для облачных провайдеров и крупных корпоративных заказчиков — модификация сервера может быть произведена в цепочке поставок или сотрудником компании с нужными полномочиями. На подготовку тестовой системы на базе платы Supermicro H11DSU-iN и AMD EPYC 72F3 исследователям понадобилось менее четырёх часов. При это атака очень дешёвая — никакого особого оборудования не нужно, а из расходных материалов требуется только микроконтроллер (примерно $30) и SPI-программатор (около $12).

Маскировка лишних чипов на плате тоже вряд ли вызовет особые проблемы. В целом, данный сценарий очень напоминает историю Bloomberg от 2018 года о «жучках» в серверах Supermicro, поставляемых крупным американским IT-игрокам, которая не нашла официального подтверждения со стороны упомянутых в ней компаний.

Атака на AMD PSP была вдохновлена работой исследователей из Бирмингемского университета, которые развили идеи Plundervolt (CVE-2019-11157) и назвали свой метод VoltPillager. В случае Plundervolt точное манипулирование напряжением CPU позволяла нарушить корректность работы SGX (Software Guard Extensions) и целостность защищённых анклавов памяти, что в итоге позволяло восстановить ключи и получить содержимое анклавов.

Тестовый вариант VoltPillager

Тестовый вариант VoltPillager

Атака требовала привилегированного доступа к системе и точно так же задействовала шину регулятора напряжения (SVID, Serial Voltage Identification). Доступ к этой шине можно было получить программно, так что Intel выпустила соответствующие патчи, позволяющие принудительно отключить эту возможность. Но против модификации «железа» они не помогают. В данном случае требуется только микроконтроллер (тот же Teensy 4.0) и доступ к системе.

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

Что касается описанных выше методов, то AMD пока никак не прокомментировала ситуацию, а Intel сообщила, что данный метод находится вне фокуса защиты SGX, поскольку подразумевает модификацию «железа». За последние полгода это уже четвёртая атака на AMD SEV — для двух, выявленных весной, и ещё одной, под названием CIPHERLEAKS, признанной на днях, компания уже выпустила патчи и обновления. А Intel SGX успела пострадать и от Spectre, и от других уязвимостей.

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER. | Можете написать лучше? Мы всегда рады новым авторам.

Источник:

Постоянный URL: https://servernews.ru/1046589

Комментарии

Система Orphus