Расширения Intel SGX

Расширения Intel SGX (англ. Intel Software Guard Extensions, SGX) — это набор кодов инструкций для реализации доверенной вычислительной среды, встроенных в некоторые центральные процессоры (CPU) корпорации Intel. SGX позволяет прикладному и системному программному обеспечению определять защищённые приватные области памяти, называемые «анклавами»[1][2]. SGX предназначен для использования в реализации защищённых удалённых вычислений, защищённого веб-сёрфинга и управления цифровыми правами (DRM)[3]. Другими вариантами применения являются сокрытие проприетарных алгоритмов и криптографических ключей[4].

SGX включает в себя шифрование процессором определённой части памяти («анклава»). Данные и код, исходящие из анклава, расшифровываются «на лету» внутри процессора[4], защищая их от изучения или чтения другой программой[4], включая код, выполняющийся с более высоким уровнем привилегий, например, операционной системой и гипервизорами[1][4][2]. Хотя данный механизм позволяет снизить риск многих типов атак, он не защищает от атак через сторонние каналы[5].

В 2021 году Intel приняла решение о прекращении поддержки SGX в процессорах Intel Core 11-го и 12-го поколений, однако дальнейшее развитие SGX продолжается для серверных процессоров Intel Xeon, предназначенных для облачных и корпоративных решений[6][7].

Технические особенности

SGX впервые был представлен в 2015 году в шестом поколении микропроцессоров Intel Core на базе микроархитектуры Skylake.

Поддержка SGX указывается на уровне процессора через структуру расширенных признаков команды CPUID, бит 02 регистра EBX[8], однако её практическая доступность приложениям требует поддержки SGX в BIOS/UEFI и ручного включения; это не отражается прямо в битах CPUID, что усложняет механизм обнаружения поддержки функции в приложениях[9].

Эмуляция SGX была добавлена в экспериментальную версию эмулятора системы QEMU в 2014 году[10]. В 2015 году исследователи из Технологического института Джорджии выпустили открытый симулятор под названием OpenSGX[11].

Примером использования SGX в области безопасности стала демонстрационная программа от wolfSSL, реализующая криптографические алгоритмы с применением SGX[12].

Микроархитектура Intel Goldmont Plus (Gemini Lake) также содержит поддержку Intel SGX[13].

В процессорах Intel Core 11-го поколения (Rocket Lake) и 12-го поколения (Alder Lake) SGX отмечен как «устаревший» и не поддерживается на клиентских платформах[6][14][15]. Это также привело к невозможности воспроизведения дисков Ultra HD Blu-ray на официально лицензированном программном обеспечении, таком как PowerDVD[16][17].

Перечень уязвимостей SGX

Атака Prime+Probe

27 марта 2017 года исследователи из Технического университета Граца (Австрия) разработали прототип атаки, позволяющий извлечь ключи RSA из анклавов SGX, выполняемых на той же системе, в течение пяти минут, используя определённые инструкции процессора вместо точного таймера для эксплуатации сайд-каналов через кэш-память и DRAM[18][19]. Одной из контрмер, опубликованных Даниэлем Груссом с соавторами на симпозиуме USENIX Security в 2017 году, является использование аппаратных транзакций для защиты кэша[20]. Также была предложена компиляторная контрмера DR.SGX[21].

Атаки, подобные Spectre

Группа LSDS из Имперского колледжа Лондона продемонстрировала прототип атаки, в которой уязвимость спекулятивного выполнения Spectre была адаптирована для атаки анклава SGX[22]. Атака Foreshadow, опубликованная в августе 2018 года, использует спекулятивное выполнение и переполнение буфера для обхода защиты SGX[23]. Для данной уязвимости (также известной как L1 Terminal Fault) были опубликованы официальные рекомендации и меры по смягчению 14 августа 2018 года и обновлены 11 мая 2021 года[24].

Атака через анклав

8 февраля 2019 года исследователи из Технического университета Граца опубликовали результаты, показавшие, что в некоторых случаях возможно исполнение вредоносного кода внутри самого анклава[25]. Эксплойт включает просканирование памяти процесса для восстановления полезной нагрузки, после чего осуществляется запуск кода на системе. Исследование отмечает, что из-за конфиденциальности и защиты анклава антивирусное ПО не может обнаружить или удалить подобное вредоносное ПО. Intel заявила, что данная атака выходит за рамки модели угроз SGX и рекомендовала запускать только доверенный код[26].

Атака MicroScope

Среди множества атак через сторонние каналы MicroScope выделяется возможностью злоумышленника с помощью специально подготовленной ОС воспроизводить части кода анклава произвольное количество раз, что позволяет реализовать десятки атак такого рода вне зависимости от структуры программы[27]. В июле 2022 года Intel подготовила патч для Linux (AEX-Notify), позволяющий разработчикам анклавов SGX реагировать на подобные события[28].

Plundervolt

Исследователям безопасности удалось внедрить тайминговые ошибки в выполнение кода в анклаве, что привело к утечке информации. Атака может быть реализована удалённо, но требует привилегированного доступа к управлению электропитанием и частотой процессора[29]. Уведомления о данной уязвимости (CVE-2019-11157) были опубликованы 14 августа 2018 года, далее обновлены 20 марта 2020 года[30].

LVI

Атака Load Value Injection (LVI)[31][32] использует внедрение значений для подмены читаемых из памяти данных, которые используются программой в течение короткого времени до отката («rollback»); в этот момент злоумышленник получает контроль над потоками исполнения и данными. Официальное уведомление и меры по смягчению были выпущены 10 марта 2020 года и обновлены 11 мая 2021 года[33].

SGAxe

Уязвимость SGAxe[34], опубликованная в 2020 году, расширяет атаку спекулятивного выполнения на кэш[35] и позволяет атакующему получить содержимое анклава. Это обеспечивает доступ к внутренним процессорным ключам для удалённой аттестации[36]. Тем самым злоумышленник может подделать идентификацию устройств Intel, подписывая произвольные аттестационные запросы[37]. Соответствующая публикация по уязвимости под кодификатором CVE-2020-0549 появилась 27 января 2020 года и обновлена 11 мая 2021 года[38].

ÆPIC leak

В 2022 году исследователи выявили уязвимость в расширенном программируемом прерывателе (APIC), позволяющую злоумышленнику с root- или admin-доступом получать криптографические ключи, анализируя обмен данными между кэш-памятью L1/L2 и APIC[39]. Это первая известная архитектурная уязвимость в процессорах x86, отличающаяся от таких атак как Spectre и Meltdown, использующих шумные сторонние каналы[40][41]. Уязвимость затрагивает процессоры Intel Core 10-го, 11-го и 12-го поколений и Xeon Ice Lake.

Извлечение приватного ключа

Подпись кода формируется приватным ключом, который хранится только в анклаве и закодирован с помощью «fuse»-элементов (плавких перемычек) на кристалле чипа. Ключ не может быть извлечён, поскольку зашит физически, однако исследователи Марк Ермолов, Максим Горячий и Дмитрий Скляров опровергли безусловную доверенность SGX, опубликовав инструмент на https://github.com/chip-red-pill/glm-ucode#.

SGX и вредоносное ПО

Долгое время велись дискуссии, может ли SGX способствовать созданию труднообнаружимого вредоносного ПО. Исследование Оксфордского университета, опубликованное в октябре 2022 года[42], рассмотрело плюсы и минусы злоупотребления SGX при разработке вредоносного ПО. Авторы заключили, что при наличии кратковременных уязвимостей в экосистеме SGX концепция доверенных вычислений не делает вредоносные программы более опасными по сравнению с традиционными вариантами и не способствует существенному совершенствованию вредоносного ПО.

Примечания

  1. 1 2 Intel SGX for Dummies (Intel SGX Design Objectives). intel.com (26 сентября 2013). Дата обращения: 20 апреля 2015. Архивировано 29 апреля 2014 года.
  2. 1 2 johnm Properly Detecting Intel Software Guard Extensions (Intel SGX) in Your Applications (англ.). software.intel.com (8 августа 2017). Дата обращения: 15 февраля 2019. Архивировано 24 апреля 2019 года.
  3. Intel SGX Details. intel.com (5 июля 2017). Дата обращения: 12 сентября 2024. Архивировано 1 декабря 2017 года.
  4. 1 2 3 4 Researchers Use Intel SGX To Put Malware Beyond the Reach of Antivirus Software - Slashdot. it.slashdot.org (12 февраля 2019). Дата обращения: 19 апреля 2019. Архивировано 26 октября 2021 года.
  5. Intel SGX and Side-Channels. intel.com (28 февраля 2020). Дата обращения: 28 февраля 2020. Архивировано 28 февраля 2020 года.
  6. 1 2 New Intel chips won't play Blu-ray disks due to SGX deprecation. Дата обращения: 17 января 2022. Архивировано 16 января 2022 года.
  7. anrilr Rising to the Challenge — Data Security with Intel Confidential Computing (англ.). community.intel.com (20 января 2022). Дата обращения: 20 апреля 2022. Архивировано 19 мая 2022 года.
  8. Intel Architecture Instruction Set Extensions Programming Reference. intel.com. Дата обращения: 28 сентября 2015. Архивировано 28 сентября 2015 года.
  9. Properly Detecting Intel Software Guard Extensions in Your Applications. intel.com (13 мая 2016). Дата обращения: 13 мая 2016. Архивировано 24 апреля 2019 года.
  10. Intel SGX Emulation using QEMU. tc.gtisc.gatech.edu. Дата обращения: 2 ноября 2018. Архивировано 10 августа 2024 года.
  11. sslab-gatech/opensgx. GitHub. Дата обращения: 15 августа 2016. Архивировано 11 июня 2018 года.
  12. wolfSSL At IDF. wolfssl (11 августа 2016). Дата обращения: 12 сентября 2024. Архивировано 27 сентября 2017 года.
  13. Intel Pentium Silver J5005 Processor. Дата обращения: 10 июля 2020. Архивировано 16 мая 2019 года.
  14. 11th Generation Intel Core Processor Datasheet. Дата обращения: 15 января 2022.
  15. 12th Generation Intel Core Processors Datasheet. Дата обращения: 15 января 2022.
  16. Intel прекращает поддержку UHD Blu-ray в новых чипах. whathifi (21 января 2022). Дата обращения: 8 декабря 2022. Архивировано 22 марта 2023 года.
  17. CyberLink Support Center. www.cyberlink.com. Дата обращения: 11 сентября 2024. Архивировано 13 сентября 2025 года.
  18. Boffins show Intel's SGX can leak crypto keys, The Register (7 марта 2017). Архивировано 11 июля 2019. Дата обращения: 1 мая 2017.
  19. Schwarz, Michael; Weiser, Samuel; Gruss, Daniel; Maurice, Clémentine & Mangard, Stefan (2017), Malware Guard Extension: Using SGX to Conceal Cache Attacks, arΧiv:1702.08719 [cs.CR]. 
  20. Strong and Efficient Cache Side-Channel Protection using Hardware Transactional Memory. USENIX (16 августа 2017). Дата обращения: 26 октября 2017. Архивировано 27 июля 2020 года.
  21. Brasser, Ferdinand; Capkun, Srdjan; Dmitrienko, Alexandra; Frassetto, Tommaso; Kostiainen, Kari; Müller, Urs; Sadeghi, Ahmad-Reza (28 сентября 2017). DR.SGX: Hardening SGX Enclaves against Cache Attacks with Data Location Randomization. ACSAC '19: Proceedings of the 35th Annual Computer Security Applications Conference December 2019. pp. 788—800. arXiv:1709.09917. DOI:10.1145/3359789.3359809. S2CID 19364841.
  22. Sample code demonstrating a Spectre-like attack against an Intel SGX enclave. (19 декабря 2021). Дата обращения: 12 января 2018. Архивировано 7 мая 2020 года.
  23. Peter Bright - Jul 10, 2018 9:00 pm UTC. New Spectre-like attack uses speculative execution to overflow buffers. Ars Technica (10 июля 2018). Дата обращения: 2 ноября 2018. Архивировано 23 ноября 2018 года.
  24. CVE - CVE-2018-3615. cve.mitre.org. Дата обращения: 17 октября 2022. Архивировано 17 октября 2022 года.
  25. Schwarz, Michael; Weiser, Samuel & Gruss, Daniel (8 февраля 2019), Practical Enclave Malware with Intel SGX, arΧiv:1902.03256 [cs.CR]. 
  26. Bright, Peter Researchers use Intel SGX to put malware beyond the reach of antivirus software (амер. англ.). Ars Technica (12 февраля 2019). Дата обращения: 15 февраля 2019. Архивировано 15 февраля 2019 года.
  27. Skarlatos, Dimitrios. MicroScope // Proceedings of the 46th International Symposium on Computer Architecture : [англ.] / Dimitrios Skarlatos, Mengjia Yan, Bhargava Gopireddy … [et al.]. — Phoenix, Arizona : ACM Press, 2019. — P. 318–331. — ISBN 978-1-4503-6669-4. — doi:10.1145/3307650.3322228.
  28. [PATCH] x86/sgx: Allow enclaves to use Asynchrounous Exit Notification. lore.kernel.org. Дата обращения: 17 октября 2022. Архивировано 17 октября 2022 года.
  29. Plundervolt steals keys from cryptographic algorithms (амер. англ.). Rambus Blog (11 декабря 2019). Дата обращения: 20 марта 2020. Архивировано 23 октября 2021 года.
  30. CVE - CVE-2019-11157. cve.mitre.org. Дата обращения: 17 октября 2022. Архивировано 24 мая 2025 года.
  31. LVI: Hijacking Transient Execution with Load Value Injection. lviattack.eu. Дата обращения: 12 марта 2020. Архивировано 1 января 2022 года.
  32. Load Value Injection. software.intel.com. Дата обращения: 12 марта 2020. Архивировано 12 июля 2020 года.
  33. CVE - CVE-2020-0551. cve.mitre.org. Дата обращения: 17 октября 2022. Архивировано 16 июля 2020 года.
  34. SGAxe. sgaxe.com. Дата обращения: 10 июня 2020. Архивировано 10 июня 2020 года.
  35. CacheOut. cacheoutattack.com. Дата обращения: 12 сентября 2024.
  36. Towards Formalization of Enhanced Privacy ID (EPID)-based Remote Attestation in Intel SGX. Дата обращения: 12 сентября 2024.
  37. SGAxe & CrossTalk Attacks: New Intel SGX Vulnerability Leaks Data (англ.). Hack Reports (12 июня 2020). Дата обращения: 12 июня 2020. Архивировано 16 июля 2020 года.
  38. CVE - CVE-2020-0549. cve.mitre.org. Дата обращения: 17 октября 2022. Архивировано 28 января 2020 года.
  39. Intel SGX: Not So Safe After All, ÆPIC Leak (амер. англ.). The New Stack (16 августа 2022). Дата обращения: 29 августа 2022. Архивировано 29 августа 2022 года.
  40. Wilson, Jason R. ÆPIC Leak is an Architectural CPU Bug Affecting 10th, 11th, and 12th Gen Intel Core CPUs (амер. англ.). Wccftech (11 августа 2022). Дата обращения: 29 августа 2022. Архивировано 29 августа 2022 года.
  41. ÆPIC Leak. aepicleak.com. Дата обращения: 29 августа 2022. Архивировано 29 августа 2022 года.
  42. Küçük, Kubilay Ahmet; et, al. SoK: How 'Not' to Architect Your Next-Generation TEE Malware. Hardware and Architectural Support for Security and Privacy (HASP) 2022 (октябрь 2022). Дата обращения: 17 апреля 2023. Архивировано 21 апреля 2023 года.

Литература

Ссылки