Микропрограмма безопасного процессора AMD теперь доступна благодаря новому инструменту

Исследователь безопасности по имени Cwerling выпустил новый инструмент под названием PSPTool, который исследователи могут использовать для анализа микропрограмм, используемых процессором AMD AMD для защищенных платформ (PSP).
Примечание: PSPTool не имеет никакого отношения к старому контроллеру Sony PSP.
AMD PSP является эквивалентом Intel Management Engine и подверглась критике за многие из тех же проблем, что и это решение. Исследователи в области безопасности были публично недовольны тем, что AMD и Intel решили сохранить детали работы этих чипов в тайне, поскольку они функционируют в тайне, полностью отделенные от работы основного ЦП или операционной системы. Если вы можете взломать IME или AMD PSP, теоретически вы можете запустить код на компьютере, который полностью невидим для конечного пользователя. И хотя неясно, что в дикой природе существуют практические эксплойты, использующие эти возможности, их существования и запутывания достаточно, чтобы белые защитные шляпы стали причиной серьезной изжоги.
Это едва ли уникально для двух производителей x86. Разработчики программного обеспечения с закрытым исходным кодом и многие компании, выпускающие аппаратное обеспечение, часто встраивают принцип безопасности через неизвестность в свои системы безопасности, полагая, что ограничение доступной информации о решении также ограничит его адресуемую поверхность атаки. Сторонники более открытого подхода призвали Intel и AMD предоставлять гораздо больше информации публично. PSPTool предназначен для более тщательного изучения прошивки AMD, чем разрешено компанией. Автор пишет:
PSPTool — это швейцарский армейский нож для работы с микропрограммой AMD Secure Processor (ранее известный как Platform Security Processor или PSP). Он находит встроенное ПО AMD в образах UEFI как часть обновлений BIOS для платформ AMD.
Он основан на усилиях по реинжинирингу собственной файловой системы AMD, используемой для упаковки двоичных объектов встроенного ПО в образы встроенного ПО UEFI. Обычно они имеют размер 16 МБ и могут быть легко проанализированы с помощью UEFITool. Тем не менее, все двоичные двоичные объекты AMD расположены в томах заполнения, которые не могут быть разобраны UEFITool. (все акценты оригинальные)
PSPTool выгодно работает с образами UEFI, полученными с помощью обновлений BIOS.
UEFITool описан в своем собственном репозитории как кроссплатформенное приложение для изменения и извлечения образов прошивок.
Аппаратная поддержка DRM может быть реализована через PSP (и, вероятно, так и было, если говорить о схеме воспроизведения 4K в Windows 10). Возможность анализа встроенного программного обеспечения PSP может привести к взлому DRM или обнаружению дальнейших недостатков безопасности.
Архитектура ARM TrustZone
Некоторые из проблем безопасности, которые здесь обсуждаются, связаны с проблемами, поднятыми в прошлом году CTS-Labs. Эти недостатки были преданы гласности при весьма подозрительных обстоятельствах и при участии фирмы, занимающейся короткими продажами, Viceroy Research. Viceroy Research известна тем, что выпускает разрушительные отчеты в попытке поднять цены на акции танковой компании. Но хотя в этом случае процесс раскрытия информации о безопасности был невероятно подозрительным, сами фактические проблемы были подтверждены независимыми исследователями. Другими словами, есть причина сомневаться в подходе «безопасность через неизвестность», который применяли как AMD, так и Intel.
Это не означает, что исследователи автоматически обнаружат недостатки в реализации AMD PSP. Даже если будут обнаружены недостатки, вполне возможно, что в конечном итоге они будут отвечать за ARM, в зависимости от того, в чем именно заключается проблема и где она находится.
Существует аргумент, что решение этих проблем в конечном итоге принесет пользу AMD, а не ее ущерб. В настоящее время практическая подверженность AMD изощренным атакам по побочным каналам или высокому уровню корпоративного / государственного шпионажа минимальна, поскольку Intel занимает 97% рынка серверов x86 и 80-87% рынка мобильных устройств и настольных ПК. Предприятия гораздо чаще используют системы Intel, а не AMD.
Устранение любых проблем безопасности PSP до того, как его оборудование будет широко развернуто в критически важных средах, гораздо лучше, чем их принудительное исправление после этого, особенно если заказчики начнут обращаться к AMD в качестве альтернативы Intel из-за предполагаемого превосходства ситуации с безопасностью AMD. относительно продолжающегося раскрытия недостатков класса Spectre.
The AMD PSP Flaw Provides Access To Uninitialized Memory
![]()
A security flaw has been discovered in AMD processors. Here is a brief breakdown of the problem and the fix to resolve the issue. The problem affects mainly computers with an AMD processor running the Windows operating system (e.g. Windows 10).
AMDs PSP
The PSP (Platform Security Processor) is AMDs very own security module that aims to protect the CPU. It has a similar function to Intel’s IME (Intel Management Engine). Like the IME, the PSP is a coprocessor that provides on-chip management and security features. Similar to the IME, the problem is that a flaw (reported in Q3 2021) has been discovered in the PSP which affects millions of users who have an AMD CPU on their computer.
The PSP is an ARM controller that is integrated within the CPU. It has access to the main system memory, IO, and CPU registers. These are low level functions that communicate directly with hardware components. Access to the PSP can bypass the operating system, making it a viable target. In a cyberattack, this is a backdoor to the system.
The Security Flaw
The flaw (discovered by Kyriakos Economou from ZeroPeril Ltd) is related to a driver used by PSP. Affected processors include modern Ryzen CPUs to chips that date back to the AMD Athlon X4 (2013). That is quite a stretch, so older systems are quite vulnerable. When an attacker executes a low level exploit against a vulnerable system, they can access the following:
- Encryption keys
- Password hashes
- Data in unallocated RAM
This allows the attacker more low level privileges to the CPU and uninitialized memory access to dump memory pages. This is the portion of memory where data processes can be accessed only by privileged user processes like the operating system or hypervisor.
The flawed driver is what makes the attack possible. In this case, the driver is software so it can be patched as a solution. This means it does not require users to replace their existing AMD processors. All that is needed is to apply a patch which should resolve the problem.
The Fix
Download the specific chipset driver AMD Chipset Driver 3.08.17.735 (Use Windows update).
Synopsis
With the AMD patch, it removes the burden of more serious cybersecurity issues. Luckily, if the fix can be implemented in software it lessens the stress since it does not mean having to replace the existing hardware.
AMD Secure Technology (или ранее называвшуюся Platform Security Proccessor — PSP).

AMD Secure Technology (или ранее называвшуюся Platform Security Proccessor — PSP).
К омпания AMD, также встраивает в свои процессоры ( аналогичную MЕ ) систему AMD Secure Technology (раньше называвшуюся PSP ), начиная с 2013 года.
Вскоре после исправления уязвимости SA-00086, производители материнских плат для процессоров AMD стали поставлять обновления BIOS, позволяющие отключить AMD Secure Technology, эту схожую с Intel ME подсистему.
Компания AMD постоянно старается улучшить работу своих процессоров Ryzen с помощью выпуска регулярных выпусков обновления протокола AGESA. Новая версия AGESA приносит не только поддержку материнским платам с Socket AM4 будущих процессоров AMD, но также добавляет возможность отключить встроенный Secure Processor, также известный, как «процессор для обеспечения безопасности платформы» или просто PSP.
AMD Secure Processor является аналогом Intel Management Engine. Этот встроенный процессор безопасности AMD был тоже подвергнут критике, как один из возможных векторов атаки, которые невозможно обнаружить на уровне операционной системы. Процессор PSP использует технологию ARM TrustZone для хранения конфиденциальных данных, и позволяет получить удалённый доступ к системе авторизированным администраторам.
В свете недавно выявленных уязвимостей в Intel Management Engine, компания AMD, похоже, решила добавить в новую версию AGESA возможность отключения Secure Processor пользователем через BIOS. Некоторые пользователи Reddit обнаружили, что при обновлении BIOS в нём появилась настройка, позволяющая включить или отключить PSP.
С ростом количества мобильных устройств и облачных служб компьютерная среда претерпевает постоянные изменения. Растет и число угроз конфиденциальности и безопасности — они приобретают все более разнообразный и изощренный характер. Только антивирусной программы уже недостаточно для надежной защиты. Теперь необходимо надежное аппаратное решение. Встроенная система безопасности на базе технологии AMD Secure защищает непосредственно процессор. Работая совместно с обширной сетью поставщиков платформ, AMD старается обеспечить максимальной защитой всю свою продукцию.
Появилась система безопасности, встроенная в аппаратное обеспечение — AMD предлагает технологию AMD Secure Processor1 в некоторых гибридных процессорах AMD. Технология ARM® TrustZone® с системным подходом к безопасности исполняет роль защитного «слоя» на оборудовании, создавая безопасную среду за счет разделения центрального процессора на два виртуальных «мира». Важные задачи выполняются в «безопасном мире» AMD Secure Processor, а другие задачи — в обычном режиме. Это помогает обеспечить надежное хранение и обработку важных данных и проверенных приложений. Кроме того, это помогает защитить целостность и конфиденциальность таких ключевых ресурсов, как пользовательский интерфейс и материалы поставщиков услуг. Но AMD тоже отклонила запросы на открытый исходный код, который работает на PSP.
PSP похож на Intel Management Engine для процессоров Intel. Еще в сентябре 2017 года исследователь безопасности Google Сфир Коэн сообщил об уязвимости AMD в подсистеме PSP, которая может позволить злоумышленнику получить доступ к паролям, сертификатам и другой конфиденциальной информации.
В марте 2018 года израильская компания по информационной безопасности, связанная с PSP, объявила о нескольких предполагаемых серьезных недостатках в процессорах AMD Zen с архитектурой AMD ( EPYC , Ryzen , Ryzen Pro и Ryzen Mobile), которые могли позволить вредоносным программам работать и получать доступ к конфиденциальным данным.
AMD объявила об обновлениях прошивки для устранения этих недостатков, их обоснованность с технической точки зрения была подтверждена независимыми экспертами по безопасности, которые рассмотрели раскрытия.
AMD так описывает технологию защиты: «Secure Processor (ранее — процессор для обеспечения безопасности платформы, PSP) является выделенным процессором с технологией ARM TrustZone, а также программной защищённой средой Trusted Execution Environment (TEE), призванной обеспечить работу доверенных приложений сторонних разработчиков. AMD Secure Processor — технология на базе аппаратных средств, которая обеспечивает безопасную загрузку с уровня BIOS до среды TEE. Доверенные приложения сторонних разработчиков могут задействовать стандартные программные интерфейсы, чтобы воспользоваться защищённой средой TEE (функции защиты TEE работают не во всех приложениях).
Новые уязвимости можно быдо разделить на четыре основные категории. Все они по сути позволяют злоумышленникам нацелиться на самый защищённый сегмент процессора, который имеет решающее значение для хранения конфиденциальной информации на устройстве. Определить вредоносный код, хранящийся в Secure Processor, почти невозможно. Зловред может располагаться там годами и не быть обнаруженным — информировали независимые эксперты по безопасности.
Некоторые пользователи компьютеров и ноутбуков, построенных на платформе AMD, при открытии диспетчера устройств могут обнаружить там некое устройство с названием AMD PSP 3.0 Device, требующее установки драйвера. Код у него PCI\VEN_1022&DEV_1456.
Далеко не каждый знает что это за устройство и где взять для него драйвер.
Аббревиатура PSP в данном случае расшифровывается как Platform Security Processor. Это отдельный процессор для защиты программного обеспечения компании AMD. Используется в работе антивирусов, а также защищает некоторые компоненты операционной системы от вредоносного воздействия. Является аналогом Intel Management Engine и также требует установки драйвера. Он входит в состав комплекта драйверов для чипсета.
Сам драйвер нужно скачивать с официального сайта поддержки производителя материнской платы или ноутбука, определив конкретную модель. Обычно он располагается в разделе «Чипсет» (Chipset).
О безопасности UEFI, часть заключительная
Вот и подошел к концу мой опус о безопасности UEFI. В этой заключительной части осталось поговорить о перспективных технологиях и планах на будущее, да пообщаться с читателями в комментариях.
Если вам интересно, чем безопасности прошивки могут помочь STM , SGX и PSP — жду вас под катом.
Желая показать бунтарский дух и наплевательство на традиции, ссылки на предыдущие части не даю — сами ищите их там.
Часть седьмая. Технологии будущего
Несмотря на то, что все описываемые далее технологии уже давно представлены официально, рассказывать о них я все равно буду как о возможностях завтрашнего дня, по весьма прозаической причине — даже в такой быстроразвивающейся среде как UEFI от представления какой-то технологии до ее внедрения могут пройти годы (достаточно вспомнить PFAT , появившуюся еще в Haswell, но не внедренную толком до сих пор).
Про SGX и STM я уже упоминал в конце третьей части, поэтому начну рассказ с PSP, которым теперь без вариантов комплектуются все новые AMD APU.
AMD Platform Security Processor
Наблюдая за успехами Intel Management Engine, которым последние 5 лет оборудован каждый чипсет и SoC Intel, в AMD тоже решили не отставать от прогресса и встроить в свои SoC’и чего-нибудь эдакого.
Еще бы — хочется иметь аппаратный корень доверия, хочется нормальный генератор случайных чисел, хочется криптоускоритель и эмулятор TPM 2.0, в общем — много всего хочется, и реализовать это все не трудно — купи IP Core у какого-нибудь поставщика, напиши к нему прошивку и навесь на него побольше системных функций, чтобы пользователь твоей платформы даже не вздумал отключить то, за что столько денег уплочено.
В итоге в качестве IP Core купили ядро ARM Cortex-A5 с поддержкой технологии TrustZone, для эмуляции TPM 2.0 приобрели у Trustonic код TEE , остальное реализовали сами и представили получившийся SoC-внутри-SoC’а в 2013 году на очередном UEFI Plugfest.
Оригинальная схема PSP, про эмуляцию TPM речи тогда еще не шло.
Для обеспечения безопасности UEFI этот самый PSP предоставляет следующее: подсистему HVB, внутреннее хранилище для S3 BootScript, эмулятор TPM для реализации Measured Boot, генератор случайных чисел и ускоритель криптографических операций.
Hardware Validated Boot
Про эту технологию я уже рассказывал в первой части, теперь расскажу более подробно. Суть ее простая — PSP получает управление до старта BSP и проверяет, чтобы содержимое второй стадии его прошивки и стартового кода не было изменено, в случае успеха BSP стартует с ResetVector’а и машина загружается как обычно, а в случае неудачи пользователю показывают код ошибки на POST-кодере, а BSP крутит мертвый цикл до hard reset’а, после которого все повторяется заново.
HVB, таким образом, является аппаратным корнем доверия для системы, но защищает эта технология только PEI-том, проверка же всего остального — на совести авторов прошивки.
Оригинальная схема AMD HVB
По умолчанию HVB отключен на всех платформах и для включения необходима достаточно нетривиальное его конфигурирование, поэтому я пока и сам не испытывал технологию на практике (хотя непосредственно работаю с прошивками для второго поколения процессоров с PSP), и машин с включенным HVB на открытом рынке не видел.
Integrated TPM 2.0
К релизу Windows 10 рабочая группа TCG подготовила интересное нововведение: вместо использовавшегося ранее интерфейса TIS для взаимодействия с модулями TPM теперь можно использовать вызовы ACPI, что позволяет производителям процессоров реализовать TPM не на внешнем чипе, а прямо в чипсете, да еще и половину реализации сделать программной. Такое решение имеет как преимущества (заменить чипсет сложнее, чем чип TPM в корпусе SSOP-28), так и недостатки (vendor lock-in), но реализовали его на данный момент и Intel (в Skylake) и AMD (в APU с PSP). Стандарт TPM 2.0 поддерживается обоими решениями не целиком, а только настолько, чтобы система со встроенным TPM могла использовать BitLocker и получить сертификат Windows 10 Ready. Тем не менее, теперь полку пользователей TPM однозначно прибудет. Вместе с встроенным TPM появились также аппаратный ГСЧ и криптоускоритель, которые, при желании, можно использовать отдельно.
Secure S3 BootScript Storage
Еще одна фишка PSP — встроенный NVRAM, в котором можно безопасно хранить какие-то пользовательские данные. На данный момент AMD сохраняет туда S3 BootScript, что хорошо защищает систему от атак на него. При этом немного страдает время выхода из S3, но лишние 50-100 мс ради безопасности вполне можно терпеть.
К сожалению, у AMD с открытой документацией на PSP очень грустно, поэтому дать полезных ссылок не могу, все, что мог рассказать без нарушения NDA — уже рассказал.
Intel Software Guard Extensions
Вернемся теперь к технологиям Intel. Об SGX начали говорить около года назад, но для конечного пользователя она стала доступна всего несколько недель назад, когда Intel включила ее для процессоров Skylake в очередном обновлении микрокода. SGX — это новый набор инструкций, позволяющих приложениям создавать т.н. «анклавы», т.е. регионы памяти для кода и данных, аппаратно защищенные от доступа извне, даже если этот доступ производится из более привилегированных режимов исполнения вроде ring 0 и SMM.
Технология достаточно сложная для понимания и использования (почти 200 страниц Programming Reference), но потенциально очень мощная, поэтому Intel начала заниматься ее продвижением.
Принципиальная схема работы SGX, один из более 200 слайдов вот этой презентации, она же в виде 80-минутного видео.
Intel называет SGX «обратной песочницей», т.е вместо того, чтобы пытаться изолировать потенциально вредоносное или недоверенное ПО, при помощи SGX программа может изолировать себя от всего остального мира. Идея сходна с ARM TrustZone, но если у ARM мир делится на обычный и доверенный и они выполняются на разных ядрах, взаимодействуя только через вызов инструкции SMC , то у Intel ядро одно и то же, зато память делится обычную и безопасную:
Безопасный анклав посреди обычной памяти.
Мое отношение к этой технологии пока еще не сформировалось — я ее просто еще не пробовал, т.к. не работаю над Skylake в данный момент. Тем не менее, стараюсь не отставать от прогресса слишком уж сильно, поэтому читаю краем уха все, что пишут про SGX, к примеру:
Портал об SGX на сайте Intel.
Обзорная лекция об SGX с сайта Дармштадтского Технического Университета.
Обзорная статья NccGroup с кучей интересных ссылок.
Открытая платформа для написания своего кода для SGX.
И вообще, весь раздел про SGX на firmwaresecury.com.
Intel SMI Transfer Monitor
Вторая технология Intel, о которой я уже упоминал — STM. Первые упоминания о нем датированы 2009 годом, и после 6 лет разработки технология наконец-то была представлена в августе 2015. Суть ее простая: вместо диспетчера SMM в SMRAM запускается гипервизор, и все обработчики SMI выполняются в виртуализованном окружении, что позволяет запретить им вредоносные действия вроде изменения данных в памяти ядра и тому подобные.
Слайд из презентации STM на IDF2015.
Технология позволяет значительно уменьшить как «поверхность атаки» на обработчики SMM, так и разрушительность последствий взлома обработчиков SMI. К примеру, запретив доступ к MMIO чипсета для всех обработчиков, кроме используемого для обновления прошивки, можно защитить ее от остальных обработчиков, путь даже они взломаны атакующим и он имеет возможность выполнить в них произвольный код.
Самое главное преимущество — неприхотливость, для работы STM нужны только включенные VT-x/AMDV и правильные настройки уровней доступа. На данный момент предварительная поддержка STM реализована в EDK2 только для тестовой платы MinnowBoard Max, но в ближайшие полгода-год IBV адаптируют ее для своих платформ, и взлома SMM можно будет опасаться гораздо меньше. Понятно, что бесплатной безопасности не бывает, и STM вносит дополнительную сложность в итак не самый простой процесс инициализации SMM, плюс обработка SMI занимает больше времени (страшнее, на самом деле, то, что оно занимает еще более неопределенное время, опять страдают пользователи жестких ОСРВ), плюс виртуализацию незнающий пользователь платформы может отключить и STM не получится использовать в таких условиях. Тем не менее, я потыкал в STM веткой на MinnowBoard и могу сказать: чем скорее IBV внедрят её — тем лучше.
Заключение
Ну вот и подошел к концу этот цикл статей, надеюсь читателю было интересно.
Технологии развиваются быстро, и если завтра появится какая-то прорывная технология (или найдут зияющую дыру в существующих) — постараюсь о них написать.
В следующей статье будем укрощать SecureBoot — сгенерируем свои ключ PK и KEK, а параноики смогут запретить загрузку любых вещей, не подписанных их ключами. Спасибо за внимание.