Microcode Decryptor, інструмент, який дозволяє декодувати мікрокод процесорів Intel

Група Випущено дослідників безпеки з команди uCode випуск вихідного коду проекту дешифратор мікрокоду і це дозволяє робити саме те, що підказує назва: це інструмент, який складається з трьох сценаріїв Python і доступний на GitHub.

Дешифратор мікрокоду дозволяє декодувати мікрокод деяких процесорів Intel як-от Atom, Pentium і Celeron на основі мікроархітектур Goldmont і Goldmont Plus, що відкриває двері для різних сценаріїв, таких як розуміння того, як Intel реалізувала певні функції процесора або реалізувала різні функції та виправлення безпеки.

Розроблено техніку Red Unlock тими ж дослідниками у 2020 році можна використовувати для вилучення зашифрованого мікрокоду. Запропонована можливість дешифрування мікрокоду дозволяє досліджувати внутрішню структуру мікрокоду та методи реалізації машинних інструкцій x86. Крім того, дослідники відновили формат оновлення прошивки, алгоритм шифрування та ключ, який використовувався для захисту мікрокоду (RC4).

Щоб визначити, який ключ шифрування використовувати, уразливість в Intel TXE була використана для ввімкнення недокументованого режиму налагодження, під кодовою назвою «Red Unlock» дослідниками. У режимі налагодження нам вдалося завантажити дамп з робочим мікрокодом безпосередньо з ЦП і витягти з нього алгоритм і ключі.

Дешифратор мікрокоду він дозволяє лише розшифрувати мікрокод, але не дозволяє змінити його, оскільки цілісність мікрокоду додатково перевіряється цифровим підписом на основі алгоритму RSA.

Щодо того, як стала можливою розробка Microcode Decryptor, вони згадують, що це сталося три роки тому, коли Горячий і Єрмолов знайшли критичну вразливість, індексовану як Intel SA-00086, яка дозволила їм виконати код за власним вибором у незалежних від чіпів системах. ядро, яке включало підсистему, відому як Intel Management Engine.

Intel виправила помилку та випустила патч, але оскільки чіпи завжди можна відкотити до попередньої версії прошивки, а потім використати, неможливо ефективно усунути вразливість.

Після цього (п’ять місяців тому) тріо вчених змогли використати вразливість для доступу до сервісного режиму, вбудованого в чіпи Intel, на згадку про фільм «Матриця», дослідники назвали свій інструмент для доступу до цього налагоджувача раніше недокументованим Chip Red. Пігулка, оскільки вона дозволяє дослідникам відчути внутрішню роботу чіпа, який зазвичай недоступний.

Представник Intel сказав, що:

«Не повинно бути жодного ризику безпеці» через доступність інструменту. Фактично, компанія заявила, що дозволити більшій кількості людей переглядати мікрокод Intel може допомогти виробнику чіпів виявити більше вразливостей у майбутньому. Для кожного, хто досяг успіху в цьому, це означає потенційний заробіток грошей через програму винагороди за помилки Intel.

«Здатність дослідників аналізувати мікрокод може дозволити виявити нові вразливості. Оскільки цей мікрокод було розкрито, Intel запрошує дослідників взяти участь у програмі винагороди за помилки мікрокоду у разі виявлення будь-яких проблем», — сказали нам вони.

Зі свого боку, це прокоментували розробники цього інструменту

«Можливість читати мікрокод процесора може допомогти зрозуміти, як Intel реалізувала такі технології, як Intel Trusted Execution Technology (TXT), або пом’якшила серйозні вразливості, такі як Meltdown і Spectre».

Єрмолов, один з інших учених, додав, що доступність інструменту означає що народ тепер ви можете досліджувати XuCode, варіант коду x86 у 64-розрядному режимі, який використовується для реалізації частин Intel SGX, який завантажується як оновлення мікрокоду. SGX — це технологія Intel для створення захищених анклавів пам’яті: це захищені області, в які інші програми та користувачі, включаючи операційну систему або гіпервізор, не можуть втручатися.

XuCode досить цікавий: специфічні для x86 інструкції для керування анклавами SGX настільки складні, що вони розбиті на послідовності інструкцій XuCode, які виконують необхідні операції.

Ці інструкції XuCode є стандартними для 86-розрядної архітектури x64 з деякими розширеннями та розбиваються процесором на звичайні мікрооперації x86. Коли програма використовує інструкцію SGX високого рівня, процесор може перейти до її XuCode для роботи.

Ці послідовності XuCode зберігаються в мікрокоді, і тепер їх можна витягнути за допомогою вищевказаних сценаріїв Python і проаналізувати за допомогою стандартних наборів зворотного проектування x86.

В кінці кінців якщо вам цікаво дізнатись більше про це Детальніше про інструмент ви можете дізнатися на за наступним посиланням.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.