AMD Platform Security Processor

AMD Platform Security Processor (PSP, с англ. — «Процессор платформенной безопасности AMD»; официальное название — AMD Secure Technology, англ. AMD Secure Technology) — подсистема доверенной среды выполнения (trusted execution environment), внедрённая примерно с 2013 года в микропроцессоры AMD.

Согласно руководству для разработчиков AMD, эта подсистема «отвечает за создание, мониторинг и поддержание безопасной среды», а её функции включают управление процессом загрузки, инициализацию различных механизмов безопасности, а также мониторинг системы на предмет активности или событий с последующим реагированием. Критики выражают опасения, что PSP может использоваться как закладка и представляет угрозу безопасности. AMD отклонила запросы на открытие исходного кода, выполняемого на PSP.

Аналогичной подсистемой в процессорах Intel является Intel Management Engine (IME).

Технические особенности

PSP представляет собой отдельное ядро ARM (ARM Cortex-A5) с расширением TrustZone, встроенное в основной кристалл процессора в качестве сопроцессора. В PSP содержится встроенное микропрограммное обеспечение (firmware), отвечающее за проверку SPI ROM и загрузку внешней прошивки из него. Также в PSP реализован загрузочный процессор, который отвечает за некоторые аппаратные задачи инициализации (например, инициализацию DRAM) в процессе загрузки. В 2019 году берлинская группа специалистов по безопасности обнаружила внешнюю прошивку PSP в обычных образах UEFI (код, запускающий операционную систему), что позволило легко её анализировать. Используя несколько самописных инструментов на Python, было выяснено, что внешняя прошивка из SPI ROM содержит приложение, напоминающее полноценную микрооперационную систему. Исследование микросхемы флэш-памяти материнской платы ноутбука Lenovo ThinkPad A285 (где хранится прошивка UEFI) показало, что ядро PSP как устройство запускается до основного процессора, а процесс загрузки его прошивки начинается непосредственно перед загрузкой базовой UEFI. Было установлено, что прошивка PSP выполняется в том же адресном пространстве памяти системы, что и пользовательские приложения, с неограниченным доступом к ней (включая MMIO), что вызывает опасения по поводу безопасности данных. Поскольку именно PSP определяет, будут ли x86-ядра запущены, он используется для аппаратного отключения ядер: отдельные ядра могут быть навсегда недоступны уже на этапе производства. PSP также предоставляет генератор случайных чисел для инструкции RDRAND и реализует функции TPM.

Производитель оборудования (OEM/ODM) может записать (OTP fuse) свой открытый ключ в FCH AMD или в сам процессор AMD, сделать обязательной цифровую подпись прошивки UEFI и тем самым исключить возможность её подмены.

Процесс загрузки

PSP является неотъемлемой частью процесса загрузки, без которой x86-ядра не будут активированы.

Встроенная фаза
ROM-прошивка, интегрированная непосредственно в чип PSP, инициализирует сам PSP, выполняет ранние аппаратные задачи (например, инициализацию системной памяти DRAM), проверяет целостность SPI ROM, с помощью различных структур данных находит внешнюю прошивку (AGESA) в SPI ROM и загружает её в память PSP.
Внешняя фаза
PSP выполняет дальнейшие аппаратные задачи (например, повторную инициализацию DRAM). Может быть проведена дополнительная проверка, и если система признана безопасной, PSP находит и загружает прошивку UEFI из SPI ROM, после чего запускает x86-ядра. Пока UEFI и x86-ядра запускаются, PSP продолжает выполнять некоторые аппаратные задачи (например, инициализацию подсистемы ввода-вывода) и взаимодействует с UEFI в процессе загрузки.

Обнаруженные уязвимости

В сентябре 2017 года исследователь безопасности Google Кфир Коэн сообщил AMD об уязвимости в подсистеме PSP, которая могла позволить злоумышленнику получить доступ к паролям, сертификатам и другой конфиденциальной информации; по слухам, исправление было предоставлено производителям в декабре 2017 года.

В марте 2018 года израильская компания в области информационной безопасности сообщила о ряде якобы серьёзных уязвимостей, связанных с PSP в процессорах AMD архитектуры Zen (EPYC, Ryzen, Ryzen Pro и Ryzen Mobile), которые могли позволить вредоносному ПО получить доступ к конфиденциальной информации. AMD объявила о выпуске обновлений прошивки для устранения этих уязвимостей. Их техническая состоятельность была подтверждена независимыми экспертами по безопасности, однако заявленные CTS Labs высокие риски были признаны преувеличенными, что привело к предположениям о публикации уязвимостей с целью манипулирования рынком[1][2].

Примечания

  1. Burke, Steve; Lathan, Patrick Assassination Attempt on AMD by Viceroy Research & CTS Labs, AMD "Should Be $0". GamersNexus (13 марта 2018). Дата обращения: 18 сентября 2018. Архивировано 20 декабря 2019 года.
  2. Zynath Investment. AMD And CTS Labs: A Story Of Failed Stock Manipulation. Seeking Alpha (16 марта 2018). Дата обращения: 18 сентября 2018. Архивировано 19 марта 2018 года.

Литература

Ссылки

Категории