Кілька тижнів тому ми поділилися тут, у блозі, новиною про Уразливість EntrySign що дозволяє обійти механізм перевірки цифрового підпису під час оновлення мікрокоду в процесорах AMD.
Що Спочатку здавалося, що помилка обмежена поколіннями Zen 1–Zen 4, Тепер він поширюється на такі сучасні чіпи, як Ryzen 9000, EPYC 9005, Ryzen AI 300 і Ryzen 9000HX. Цей недолік дозволяє, за певних умов, змінювати мікрокод процесора в обхід механізму перевірки цифрового підпису, що має серйозні наслідки для безпеки віртуалізованих систем.
Корінь проблеми знаходиться в невідповідне використання алгоритму CMAC під час процесу перевірки мікрокоду. AMD традиційно використовує закритий ключ RSA цифровий підпис вмісту цих оновлень, а також відкритий ключ, включений у патч для перевірки автентичності мікрокоду на момент завантаження. Однак хеш відкритого ключа, який має гарантувати цю цілісність, генерується за допомогою AES-CMAC, криптографічного MAC, який, на відміну від надійної хеш-функції, не пропонує жодних гарантій проти колізій.
Цей дизайн, до того ж факту, що AMD використовувала загальний ключ шифрування для всіх ваших процесорів, починаючи з Zen 1, дозволив дослідникам отримати ключ з будь-якого ураженого процесора і повторно використовувати його для маніпулювання патчами мікрокоду на інших комп’ютерах. Дивно, але цей ключ відповідає загальнодоступному прикладу методів шифрування NIST SP 800-38B, демонструючи недбале використання належної криптографічної практики.
Фальшивий мікрокод, дійсні підписи
З цієї слабкості, Дослідникам вдалося згенерувати відкриті ключі, які створюють той самий хеш, що й оригінальний ключ AMD., яку вони дозволено створювати підроблені патчі, здатні обходити контроль цілісності. Ці зіткнення досягаються шляхом вставки додаткових блоків у кінці мікрокоду, здавалося б, випадкових, але ретельно розрахованих, що дозволяє цифровому підпису залишатися очевидно недоторканим. Таким чином можна змінити внутрішню поведінку процесора без запуску механізмів попередження.
Цей процес полегшили інструменти аналізу наприклад Zentool, набір утиліт з відкритим кодом, який дозволяє вивчати мікрокод AMD і готувати модифіковані виправлення. Щоб цей тип атаки матеріалізувався, зловмисник повинен мати привілеї Ring 0, тобто доступ до найвищого рівня операційної системи, що можливо у віртуалізованих середовищах, якщо гіпервізор скомпрометовано або через незахищені конфігурації технологій, таких як VT-x або AMD-V.
Вплив на AMD SEV і безпечну віртуалізацію
Крім маніпулювання мікрокодом, EntrySign становить пряму загрозу для AMD SEV (Secure Encrypted Virtualization) і її розширення SEV-SNP (Secure Nested Paging), технологій, призначених для забезпечення цілісності та конфіденційності віртуальних машин навіть у разі атак з боку гіпервізора або хост-системи. Ця вразливість дає змогу втручатися в захищені регістри процесора, змінювати вкладені таблиці сторінок і змінювати поведінку гостьових систем, підриваючи їх безпеку на глибокому рівні.
Заходи реагування та пом’якшення наслідків AMD
Зіткнувшись із цією ситуацією, AMD почала поширювати оновлення мікрокоду, які виправляють помилку.або, хоча в системах, що використовують SEV-SNP, також необхідно оновити мікропрограму модуля SEV, для чого потрібне оновлення BIOS. Компанія вже відправила нову упаковку виробникам називається ComboAM5PI 1.2.0.3c AGESA, але за оцінками, остаточні виправлення стануть доступними для кінцевих користувачів.
На додаток до цього, Інженери AMD запропонували патч для ядра Linux, який блокує завантаження мікрокоду. неофіційний. Цей захід має на меті запобігти поширенню сторонніх модифікованих патчів, наприклад, створених ентузіастами з вилучених фрагментів BIOS. А поки настійно рекомендуємо дочекатися офіційних оновлень BIOS і утриматися від встановлення неперевірених версій.
Нарешті, якщо вам цікаво дізнатись більше про це, ви можете перевірити деталі в наступне посилання.