НЕДОКУМЕНТИРОВАННЫЕ ИНСТРУКЦИИ Х86 ДЛЯ УПРАВЛЕНИЯ CPU НА УРОВНЕ МИКРОАРХИТЕКТУРЫ В СОВРЕМЕННЫХ ПРОЦЕССОРАХ INTEL

Марк М. Ермолов, Дмитрий В. Скляров, Максим С. Горячий

Аннотация


В рамках исследования, целью которого стало выявление ранее неизвестных уязвимостей, вызванных ошибками реализации или внедренными программно-аппаратными закладками в системном, прикладном и аппаратном обеспечении, был обнаружен режим отладки Red Unlock, который позволяет извлекать микрокод (ucode) и применим к процессорам Intel Atom. Используя данный режим отладки, удалось исследовать внутреннюю структуру микрокода и реализацию инструкций x86, в результате чего были найдены две недокументированные инструкции x86. Найденные недокументированные инструкции архитектуры x86 в современных процессорах Intel, которые были названы udbgrd и udbgwr, предназначены для чтения и записи данных микроархитектуры. Предполагается, что данные инструкции предназначены для отладки микроархитектуры процессоров инженерами Intel, но при этом их наличие является опасным с точки зрения безопасности, так как в публичном доступе имеется рабочая демонстрация, выполняющая активацию режима Red Unlocked для одной из актуальных платформ Intel. В работе представлены обнаруженные инструкции, приводится объяснение условий, при которых они могут быть использованы на общедоступных платформах. Подобные исследования могут быть использованы в целях развития методов и средств обеспечения информационной безопасности систем и сетей в части выработки решений, направленных на противодействие угрозам, обусловленных вновь выявляемыми уязвимостями, вызванными ошибками реализации или внедренными программно-аппаратными закладками в системном, прикладном и аппаратном обеспечении.


Ключевые слова


архитектура x86, недокументированная инструкция, угроза, уязвимость, Intel.

Полный текст:

PDF

Литература


1. Intel Corp. Intel 64 and IA-32 Architectures Software Developer’s Manual. 2021.
URL: https://software.intel.com/content/dam/develop/external/us/en/documents-tps/325462-sdm-vol-1-2abcd-3abcd.pdf (дата обращения: 20.08.2022).

2. Easdon C. Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64. 2020.
URL: https://www.cattius.com/images/undocumented-cpu-behavior.pdf (дата обращения: 20.08.2022).

3. Collins R. Undocumented OpCodes. 1995.
URL: http://www.rcollins.org/secrets/OpCodes.html (дата обращения: 20.08.2022).

4. Domas C. Breaking the x86 ISA. 2017.
URL: https://www.blackhat.com/docs/us-17/thursday/us-17-Domas-Breaking-The-x86-Instruction-Set-wp.pdf (дата обращения: 20.08.2022).

5. Intel Corp. Intel Converged Security and Management Engine (IntelR CSME) [Security White Paper].2020.
URL: https://www.intel.com/content/dam/www/public/us/en/security-advisory/documents/intel-csme-security-white-paper.pdf (дата обращения: 20.08.2022).

6. Ermolov M., Goryachy M. How to Hack a Turned-Off Computer, or Running Unsigned Code in Intel Management Engine. 2017. URL: https://www.blackhat.com/docs/eu-17/materials/eu-17-Goryachy-How-To-Hack-A-Turned-Off-Computer-Or-Running-Unsigned-Code-In-Intel-Management-Engine.pdf (дата обращения: 20.08.2022).

7. Intel Corp. The Intel Converged Security and Management Engine (CSME) Delayed Authentication Mode (DAM) vulnerability - CVE-2018-3659 and CVE-2018-3643. 2020.
URL: https://www.intel.com/content/dam/www/public/us/en/security-advisory/documents/the-intel-csme-dam-vulnerability-cve-2018-3659-and-cve-2018-3643-whitepaper.pdf (дата обращения: 20.08.2022).

8. Positive Research. IntelTXE-PoC. 2020.
URL: https://github.com/ptresearch/IntelTXE-PoC (дата обращения: 20.08.2022).

9. Ermolov Mark, Sklyarov Dmitry, Goryachy Maxim. Undocumented x86 instructions to control the CPU at the microarchitecture level in modern Intel processors. 2022.
DOI: http://dx.doi.org/10.1007/s11416-022-00438-x.

10. Intel Corp. Intel 64 and IA-32 Architectures Software Developer’s Manual. Vol 3. Chap 2.2. Modes of Operation. 2022. URL: https://software.intel.com/content/dam/develop/external/us/en/documents-tps/325462-sdm-vol-1-2abcd-3abcd.pdf#page=2881 (дата обращения: 20.08.2022).

11. Intel Corp. Intel 64 and IA-32 Architectures Software Developer’s Manual. Vol 3. Chap 23.3. Introduction to VMX Operation. 2022.
URL: https://software.intel.com/content/dam/develop/external/us/en/documents-tps/325462-sdm-vol-1-2abcd-3abcd.pdf#page=3733 (дата обращения: 20.08.2022).

12. Intel Corp. Intel 64 and IA-32 Architectures Software Developer’s Manual. Vol 3. Chap 33.1 Introduction to Intel Software Guard Extensions. 2022.
URL: https://software.intel.com/content/dam/develop/external/us/en/documents-tps/325462-sdm-vol-1-2abcd-3abcd.pdf#page=4035 (дата обращения: 20.08.2022).

13. IEEE 1149.1 Working Group Official Webpage. 2021.
URL: https://grouper.ieee.org/groups/1149/1 (дата обращения: 20.08.2022).

14. Ucode Research Team. Ucode Disassembler. 2021.
URL: https://github.com/chip-red-pill/uCodeDisasm (дата обращения: 20.08.2022).

15. Easdon C. Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64. 2020.
URL: https://www.cattius.com/images/undocumented-cpu-behavior.pdf#page=17 (дата обращения: 20.08.2022).

16. Ucode Research Team. Microarchitecture Debug PoC.
URL: https://github.com/chip-red-pill/udbgInstr/tree/main/udebug (дата обращения: 20.08.2022).

17. Boluk C. Speculating The Entire X86-64 Instruction Set In Seconds With This One Weird Trick. 2021.
URL: https://blog.can.ac/2021/03/22/speculating-x86-64-isa-with-one-weird-trick (дата обращения: 20.08.2022).

18. Ucode Research Team. Ucode Disassembler. The Structure and the Binary Format of Intel Atom Goldmont Microcode. 2021. URL: https://github.com/chip-red-pill/uCodeDisasm#the-structure-and-the-binary-format-of-intel-atom-goldmont-microcode (дата обращения: 20.08.2022).




DOI: http://dx.doi.org/10.26583/bit.2022.4.03

Ссылки

  • На текущий момент ссылки отсутствуют.


Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.