The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google опубликовал инструментарий для анализа и изменения микрокода AMD

06.03.2025 15:41

Инженеры из компании Google раскрыли детали уязвимости (CVE-2024-56161), позволяющей обойти механизм проверки цифровой подписи при обновлении микрокода в процессорах AMD на базе 1-4 поколений микроархитектуры Zen. Одновременно под лицензией Apache 2.0 опубликован инструментарий Zentool, разработанный в процессе исследования методов работы с микрокодом в процессорах AMD. Также подготовлено руководство по микроархитектуре RISC86, применяемой в микрокоде AMD, и заметка по созданию собственного микрокода. Показано как можно создавать собственные процессорные инструкции, реализуемые на микрокоде RISC86, менять поведение существующих инструкций и загружать изменения микрокода в процессор.

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

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

Возможностей zentool достаточно для подготовки и загрузки в процессор своих патчей c микрокодом. В качестве примера подготовлен патч к микрокоду, меняющий логику работы процессорной инструкции RDRAND. После изменения микрокода инструкция RDRAND начинает возвращать вместо псевдослучайных последовательностей только число 4.

Загрузка собственных патчей для микрокода процессоров AMD Zen 1-4 стала возможна благодаря уязвимости, вызванной использованием в процессе верификации алгоритма имитовставки CMAC вместо надёжной хэш-функции. Компания AMD устранила уязвимость в декабрьском обновлении микрокода путём замены CMAC на криптографически стойкую хэш-функцию.

Для заверения загружаемого в процессор микрокода цифровой подписью AMD использует закрытый ключ RSA, а в составе патча с микрокодом добавляет открытый ключ. Для проверки, что открытый ключ соответствует оригинальной паре RSA-ключей, процессор выполняет сопоставление хэша от открытого ключа AMD, вшитого во время производства в CPU, с хэшем от открытого ключа, указанного в патче.

Проверка подлинности микрокода в патче осуществляется путём сравнения значения хэша, заверенного цифровой подписью, и хэша, вычисленного на основе фактически поставляемого в патче микрокода. Если эталонный и вычисленный хэши совпадают - патч загружается во внутреннюю память CPU. Таким образом, для организации загрузки фиктивного патча с микрокодом требуется или взлом цифровой подписи на базе RSA или взлом хэш-функции.

В CPU AMD Zen задействован стандартный алгоритм цифровой подписи RSASSA-PKCS1-v1_5, но вместо использования рекомендованных хэш-функций применён алгоритм CMAC, не рассчитанный на подобные операции и не защищённый от подбора коллизий. CMAC не является хэш-функцией, а реализует имитовставку (Message Authentication Code), зависящую от ключа шифрования. Работа AES-CMAC сводится к использованию криптографического алгоритма AES и объединению результата его применения со следующим блоком данных при помощи операции XOR.

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

AMD применяет для AES-CMAC единый ключ шифрования, поставляемый на всех CPU, начиная с Zen 1 и заканчивая Zen 4. Таким образом, достаточно извлечь данный ключ из любого CPU AMD и он будет применим ко всем остальным CPU. Исследователи обнаружили, что в поколениях процессоров c Zen 1 по Zen 4 для шифрования AES-CMAC использован известный ключ, взятый из примера, упомянутого в рекомендациях по использованию блочных шифров NIST SP 800-38B.

Так как AES-CMAC используется для хэширования вшитого в патч RSA-ключа и содержимого микрокода, определив ключ шифрования AES-CMAC, появилась возможность подстановки в патч другого открытого RSA-ключа и изменения содержимого микрокода. Для создания фиктивного патча достаточно сформировать новый открытый ключ, генерирующий тот же хэш, что формировался подлинным открытым ключом AMD, а также подобрать коллизии для цифровой подписи. Коллизии формируются путём прикрепления к микрокоду добавочного блока, выглядящего как набор случайных данных. Подобным образом можно подготовить изменённый патч с микрокодом, соответствующий цифровой подписи, которой был заверен оригинальный патч от AMD.

  1. Главная ссылка к новости (https://bughunters.google.com/...)
  2. OpenNews: Уязвимость в загрузчике микрокода в CPU AMD, позволяющая обойти изоляцию SEV-SNP
  3. OpenNews: Обход защиты от атак Spectre и эксплоит для извлечения данных из памяти другого процесса
  4. OpenNews: Sinkclose - уязвимость в CPU AMD, позволяющая получить доступ к SMM
  5. OpenNews: В ядрe Linux 6.6 убрана возможность сборки без поддержки загрузки микрокода для систем x86
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62838-zentool
Ключевые слова: zentool, microcode, amd, google
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:37, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И кстати, в прошлом году Google представили свой arm-процессор Axion:
    https://cloud.google.com/products/axion
     
  • 1.3, Neon (??), 16:51, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > Исследователи обнаружили, что в поколениях процессоров c Zen 1 по Zen 4 для шифрования AES-CMAC использован известный ключ, взятый из примера, упомянутого в рекомендациях по использованию блочных шифров NIST SP 800-38B

    Мда, просто одаренные, сильно одаренные, альтернативно)))

     
     
  • 2.28, Ivan_83 (ok), 18:40, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы просто не понимаете процессов :)

    Скорее всего цели надёжно запереть процесс не стояло в принципе и это использовали как средство чтобы совсем мусор не загружали.

    Где то на этапе проектирования это отдали в работу со словами: "надо как то верифицировать микрокод", и кто то не сильно напрягаясь по простому и быстрому это сделал.
    Аудит проводить не стали.

    Я не исключаю и того что изначально стояла возможность сделать так, чтобы можно было грузить любой микрокод и потом правдопобно отрицать авторство/одобрение АМД.

     
     
  • 3.31, DeerFriend (?), 18:58, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Более вероятно, что сидящему отдельно от разработчиков безопаснику была поставлена задача сделать безопасно, как в NIST SP 800-38B.
    Ну он взял и сделал всё по инструкции.
     
  • 3.34, Аноинм (-), 19:26, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    да куль они, вообще, в оупен-сорс прошивки процессов/материнок/видюх не выкинут - убили бы сразу этот штеуд, с завистью на пару
     
     
  • 4.45, Ivan_83 (ok), 19:52, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Убивать нельзя, иначе придёт антимонопольная служба и заставить отпилить себе ногу вместе с половиной попы.
    Да и для потребителя будет так себе - амд в монопольной позе будет не лучше интела с их одноразовыми сокетами, и креативным порезанием фич, когда купить ты хочешь камень за не дорого а при просмотре сравнений поднимаешься до самого топа через 10 мелких шагов.
     
     
  • 5.47, Аноним (47), 20:09, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это всё мелочи по сравнению с тем если бы они открыли все прошивки.
     
  • 2.54, User (??), 20:23, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И ведь даже на чатжопэтэ не свалишь!
     

  • 1.4, Аноним (4), 16:56, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    AMD все для людей делает. Даже можно менять поведение инструкций и загружать изменения в микрокод. Вот она - открытость! Шах и мат интелбои! =)
     
     
  • 2.13, Аноним (13), 17:39, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Обычные люди с Intel, этим и не заморачиваются.
    Пользуются и ладно.
     
     
  • 3.24, Афроним (?), 18:34, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот, зачем так маркетоулха пнул,а?
     
     
  • 4.26, Аноним (13), 18:38, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну это, пепси или кола. Кола против пепси.
     
  • 3.32, DeerFriend (?), 19:00, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Обычные люди с Intel, этим и не заморачиваются.

    у вас в слове apple ошибка

     
  • 2.23, Афроним (?), 18:33, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Позволит из в1 сделать в3 или что, чем это поможет хомячку? Эти АМД днем с огнем в магазине не найдешь, как они всем нужны оказывается.
     
     
  • 3.49, Аноним (47), 20:12, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Хомячки должны только страдать, в этом мире такие не выживают...
     
     
  • 4.59, Афроним (?), 20:42, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Фрикам с дырявым опен сурс сильно помогает убить время?
     

  • 1.5, Шарп (ok), 16:58, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Наконец то открытый микрокод. Теперь Столлману можно переходить на амуде.
     
     
  • 2.7, Аноним (1), 17:13, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Приходите в мой дом, мои двери открыты... (с) Лиза Су
     
     
  • 3.17, Аноним (-), 18:21, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В гости к Лизе Су, Столлман придёт тогда, когда AMD выпуситит свой микрокод с копилефтной лицензией.
     
     
  • 4.29, Аноним (13), 18:40, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы понимаете о чем я.
     
  • 3.35, Аноинм (-), 19:27, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    чё уж не бесплатные видюхи, сразу
     
     
  • 4.55, Аноним (47), 20:25, 06/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 5.56, Аноним (47), 20:28, 06/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.6, Zulu (?), 17:02, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > вместо псевдослучайных последовательностей только число 4

    Почему 4? Надо было 9...
    https://imgur.com/random-number-generator-bwFWMqQ

     
     
  • 2.11, Аноним (11), 17:30, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Классика же: https://imgs.xkcd.com/comics/random_number.png
     
     
  • 3.36, Аноинм (-), 19:28, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    почему классика? нужно модерн
     

  • 1.8, Аноним (8), 17:16, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Изменение микрокода может привести к увеличению хешрейта?
     
     
  • 2.38, Аноинм (-), 19:28, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    к увеличению хешрейта может привести даже погода за окном
     

  • 1.9, Аноним (9), 17:22, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Инженеры из компании Google раскрыли, что они занимаются снижением капитализации AMD, чтобы потом выкупить её с потрохами вместе с Intel.
     
     
  • 2.14, Аноним (1), 17:44, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Денег у них и правда очень много, данные за 2024:
    >Consolidated Alphabet revenues in Q4 2024 increased 12% year over year to $96.5 billion

    https://abc.xyz/2025-0204/
    Но выкупить кого-то из топ-10 это вряд ли:
    https://3dnews.ru/assets/external/illustrations/2025/02/05/1117756/gartner_01.

     
  • 2.30, Афроним (?), 18:47, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Просто закопать хотят и все. 164 лярда немного синих денег одна частная компания по производству чипов инвесирует в Трампанию,наверное что-то знают.
     

  • 1.16, Аноним (16), 18:19, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > задействован стандартный алгоритм цифровой подписи RSASSA-PKCS1-v1_5, но вместо использования рекомендованных хэш-функций применён алгоритм CMAC, не рассчитанный на подобные операции и не защищённый от подбора коллизий

    Ну явная же закладка...

     
     
  • 2.21, Анонимище (?), 18:25, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И давно Google стал зуб точить на американские спецслужбы? Или может сами признаете глупость такой версии?
     
     
  • 3.51, Аноним (47), 20:16, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну может это комунистический шпион засланный в AMD встроил?
     
     
  • 4.57, Анонимище (?), 20:35, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком круто для Кубы. А других таких стран в нашем мире не осталось, есть лишь имитаторы
     

  • 1.18, Аноним (18), 18:21, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь на этом микрокоде можно реализовать arm-инструкции. Получится arm-десктоп.
     
     
  • 2.20, Аноним (20), 18:23, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зрите в корень! На этом получится импортозамещение (E2K).
     
  • 2.22, Анонимище (?), 18:33, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я не больно спец по процам, но там же наверняка устройство процессора всё другое. ARM-программы рискуют сильно подофигеть от такого "ARM" процессора, они наверняка созданы из других представлений об том как устроен процессор на котором они должны работать
     
     
  • 3.52, Аноним (47), 20:18, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так они и не узнають :)
     
     
  • 4.58, Анонимище (?), 20:40, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сомнительно. Для меня это похоже на мнение что иврит это тот же русский, просто с другими буквами и словами. И если сделать замену, то сразу получишь перевод и всё станет понятно
     
  • 2.25, Афроним (?), 18:38, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Дум и Квик потянет?
     
  • 2.37, Аноним (18), 19:28, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Или risc-v сделать
     
  • 2.41, Аноинм (-), 19:34, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    можно коретудуо возродить
     

  • 1.27, Songo (ok), 18:38, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Статья называется: Покупайте Zen 5.
    p.s. Когда выйдет Zen 6, то в Zen 5 тоже найдут уязвимость эту или другую.
     
  • 1.33, Аноним (33), 19:23, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А я как дурак всё думаю, прошивать мне новые микрокоды на проц и уефи или посидеть на дырявых? Прошьешь новье - залатают дыры, и уже не прошить свободное/открытое
     
     
  • 2.46, Анонимище (?), 19:53, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть компьютеры на открытом IBM-ском Power ISA. Стоят правда 10 000 долларов и нет совместимости с x86, но если есть деньги и готовность переехать на другую архитектуру, то как вариант
     

  • 1.39, Аноним (39), 19:32, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чисто теоретический вопрос. Насколько быстрее может работать проц, если из него убрать прослойку микрокода и сделать по старинке - прямо на железе?
     
     
  • 2.44, Аноинм (-), 19:37, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ты имеешь в виду убрать все защитные и тп функции, которые затормаживают?
     
  • 2.48, Аноним (48), 20:09, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нинасколько, микрокод отвечает за работу процессора, не будет микрокода - проц просто не заведется. А то что опционально съэкономит тебе максимум секунду времени загрузки ОС.
    И современный проц иначе сделать нельзя, потому что вагон оптимизаций плюс часть блоков отключена ибо багнутые, плюс всякие защиты от перегрева/сбоя/внутренние тесты при инициализации и т.д.
     
  • 2.50, Анонимище (?), 20:15, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Погуглите споры между CISC vs RISC архитектурой. Микрокод нужен для богатого набора инструкций, без него получится уже нечто ближе к RISC
     

  • 1.53, Тоже_Аноним_Естественно (?), 20:21, 06/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите несведующему: сия новость каким-либо образом может помочь священному делу борьбы с трояном AMD PSP (аналог Intel ME)? А то всё плохо на фронте.
     
     
  • 2.60, Анонимище (?), 20:45, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я не в курсе, но если есть деньги и готовность сменить архитектуру,то могу предложить гуглить TALOS II workstation
     
  • 2.61, Афроним (?), 20:46, 06/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.на 20 летних платах их не было, а на других опен сурс не работает.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру