категории | RSS

Google представила инструментарий Zentool для анализа и изменения микрокода процессоров AMD микроархитектуры Zen (1-4)

Google представила открытый инструментарий под названием Zentool под лицензией Apache 2.0 для анализа и изменения микрокода процессоров AMD на базе 1–4 поколений микроархитектуры Zen. Специалисты компании опубликовали руководство по микроархитектуре RISC86, применяемой в микрокоде AMD, а также выложили в общий доступ документацию по созданию собственного микрокода для энтузиастов и исследователей.

В наработках проекта Zentool используется уязвимость CVE-2024–56 161, позволяющая обойти механизм проверки цифровой подписи при обновлении микрокода в процессорах AMD. Это способ обхода системы безопасности AMD SEV или Secure Encrypted Virtualization. По данным Google, потенциальный злоумышленник для загрузки вредоносного микрокода должен иметь права администратора в системе. Оказалось, что AMD применяло для AES‑CMAC единый ключ шифрования, поставляемый на всех CPU, начиная с Zen 1 и заканчивая Zen 4. Таким образом, достаточно извлечь данный ключ из любого CPU AMD и он будет применим ко всем остальным CPU. Исследователи Google обнаружили, что в поколениях процессоров с Zen 1 по Zen 4 для шифрования AES‑CMAC использован известный ключ, взятый из примера, упомянутого в рекомендациях по использованию блочных шифров NIST SP 800–38B. В AMD устранили уязвимость CVE-2024–56 161 в декабрьском обновлении микрокода для процессоров путём замены CMAC на криптографически стойкую хэш‑функцию.

В Google показали, что Zentool успешно работает не только для серверных процессорах AMD EPYC, но и на потребительском процессоре AMD Ryzen 9 7940HS. В компании показали, как с помощью патча заставить генератор случайных чисел RDRAND на процессоре AMD всегда возвращать одно и то же число, например 4, вместо псевдослучайных последовательностей.

В состав Zentool входят такие команды, как zentool edit (редактирует параметры файлов с микрокодом, изменяет микрокод и заменяет отдельные инструкции), zentool print (выводит информацию о структурах и параметрах микрокода), zentool load (загружает микрокод в CPU), zentool resign (корректирует цифровую подпись с учётом добавленных в микрокод изменений).

Также в проекте Zentool есть утилиты mcas и mcop с реализациями ассемблера и дизассемблера для микрокода. В текущей реализации возможностей Zentool уже достаточно для подготовки и загрузки в процессор своих патчей с микрокодом на свой страх и риск. Разработчики из Google планируют дорабатывать возможности инструментария и предоставить своеобразный аналог binutils, но не для традиционного машинного кода, а для микрокода процессоров AMD.



Источник новости: habr.com

DimonVideo
2025-03-06T18:50:04Z

Здесь находятся
всего 0. За сутки здесь было 0 человек
Яндекс.Метрика