Ответ на вопрос
Расширения Intel SGX
Расширения Intel SGX (англ. Intel Software Guard Extensions, SGX) — это набор кодов инструкций для реализации доверенной вычислительной среды, встроенных в некоторые центральные процессоры (CPU) корпорации Intel. SGX позволяет прикладному и системному программному обеспечению определять защищённые приватные области памяти, называемые «анклавами». SGX предназначен для использования в реализации защищённых удалённых вычислений, защищённого веб-сёрфинга и управления цифровыми правами (DRM). Другими вариантами применения являются сокрытие проприетарных алгоритмов и криптографических ключей.
SGX включает в себя шифрование процессором определённой части памяти («анклава»). Данные и код, исходящие из анклава, расшифровываются «на лету» внутри процессора[1], защищая их от изучения или чтения другой программой, включая код, выполняющийся с более высоким уровнем привилегий, например, операционной системой и гипервизорами. Хотя данный механизм позволяет снизить риск многих типов атак, он не защищает от атак через сторонние каналы.
В 2021 году Intel приняла решение о прекращении поддержки SGX в клиентских процессорах Intel Core (включая 11-е, 12-е и 13-е поколения). Однако технология сохранена в серверных решениях (таких как Intel Xeon 6 и Xeon D), где SGX не вытесняется новой технологией Intel TDX, а развивается с ней параллельно[2][3][4].
Технические особенности
SGX впервые был представлен в 2015 году в шестом поколении микропроцессоров Intel Core на базе микроархитектуры Skylake.
Поддержка SGX указывается на уровне процессора через структуру расширенных признаков команды CPUID, бит 02 регистра EBX[5], однако её практическая доступность приложениям требует поддержки SGX в BIOS/UEFI и ручного включения; это не отражается прямо в битах CPUID, что усложняет механизм обнаружения поддержки функции в приложениях.
Эмуляция SGX была добавлена в экспериментальную версию эмулятора системы QEMU в 2014 году[6] (в настоящее время поддержка присутствует в основной ветке). Базовые механизмы виртуализации KVM SGX интегрированы в основную ветку ядра Linux, а для разработки приложений сохраняет актуальность официальный набор инструментов Intel SGX SDK[7][8]. В 2015 году исследователи из Технологического института Джорджии выпустили открытый симулятор под названием OpenSGX[9].
Примером использования SGX в области безопасности стала демонстрационная программа от wolfSSL, реализующая криптографические алгоритмы с применением SGX[10]. Технология также применяется в облачной платформе Microsoft Azure (виртуальные машины DCsv2-Series) для обеспечения конфиденциальных вычислений (Confidential Computing)[11].
Микроархитектура Intel Goldmont Plus (Gemini Lake) также содержит поддержку Intel SGX.
В процессорах Intel Core 11-го (Rocket Lake), 12-го (Alder Lake) и 13-го поколений SGX отмечен как «устаревший» и не поддерживается на клиентских платформах[12][13][14]. При этом аппаратная поддержка технологии сохранена в серверных процессорах, включая архитектуры Sapphire Rapids, Emerald Rapids и Granite Rapids[15]. Прекращение поддержки на клиентских платформах также привело к невозможности воспроизведения дисков Ultra HD Blu-ray на официально лицензированном программном обеспечении, таком как PowerDVD[16][17].
Механизмы аттестации
Методы аттестации Intel SGX претерпели переход от клиентской модели EPID (Intel Attestation Service, IAS) к серверной модели Data Center Attestation Primitives (DCAP). Архитектура DCAP базируется на алгоритме ECDSA и предназначена для дата-центров, позволяя провайдерам создавать собственные службы аттестации без необходимости постоянного обращения к серверам Intel[18]..
Сервис аттестации IAS (EPID) официально прекратил работу 2 апреля 2025 года[19]. Кроме того, 13 мая 2026 года достигли конца жизненного цикла (EOL) версии API v2 и v3 для сервиса предоставления сертификатов (Provisioning Certificate Service, PCS)[20].
Перечень уязвимостей SGX
Атака Prime+Probe
27 марта 2017 года исследователи из Технического университета Граца (Австрия) разработали прототип атаки, позволяющий извлечь ключи RSA из анклавов SGX, выполняемых на той же системе, в течение пяти минут, используя определённые инструкции процессора вместо точного таймера для эксплуатации сайд-каналов через кэш-память и DRAM[21][22]. Одной из контрмер, опубликованных Даниэлем Груссом с соавторами на симпозиуме USENIX Security в 2017 году, является использование аппаратных транзакций для защиты кэша[23]. Также была предложена компиляторная контрмера DR.SGX[24].
Атаки, подобные Spectre
Группа LSDS из Имперского колледжа Лондона продемонстрировала прототип атаки, в которой уязвимость спекулятивного выполнения Spectre была адаптирована для атаки анклава SGX[25]. Атака Foreshadow, опубликованная в августе 2018 года, использует спекулятивное выполнение и переполнение буфера для обхода защиты SGX[26]. Для данной уязвимости (также известной как L1 Terminal Fault) были опубликованы официальные рекомендации и меры по смягчению 14 августа 2018 года и обновлены 11 мая 2021 года[27].
Атака через анклав
8 февраля 2019 года исследователи из Технического университета Граца опубликовали результаты, показавшие, что в некоторых случаях возможно исполнение вредоносного кода внутри самого анклава[28]. Эксплойт включает просканирование памяти процесса для восстановления полезной нагрузки, после чего осуществляется запуск кода на системе. Исследование отмечает, что из-за конфиденциальности и защиты анклава антивирусное ПО не может обнаружить или удалить подобное вредоносное ПО. Intel заявила, что данная атака выходит за рамки модели угроз SGX и рекомендовала запускать только доверенный код.
Атака MicroScope
Среди множества атак через сторонние каналы MicroScope выделяется возможностью злоумышленника с помощью специально подготовленной ОС воспроизводить части кода анклава произвольное количество раз, что позволяет реализовать десятки атак такого рода вне зависимости от структуры программы[29]. В июле 2022 года Intel подготовила патч для Linux (AEX-Notify), позволяющий разработчикам анклавов SGX реагировать на подобные события[30]. К августу 2026 года был обнаружен метод обхода защиты AEX-Notify с помощью атаки AEX-NStep, позволяющей извлечь ключ ECDSA из защищённого анклава SGX[31].
Plundervolt
Исследователям безопасности удалось внедрить тайминговые ошибки в выполнение кода в анклаве, что привело к утечке информации. Атака может быть реализована удалённо, но требует привилегированного доступа к управлению электропитанием и частотой процессора[32]. Уведомления о данной уязвимости (CVE-2019-11157) были опубликованы 14 августа 2018 года, далее обновлены 20 марта 2020 года[33].
LVI
Атака Load Value Injection (LVI)[34] использует внедрение значений для подмены читаемых из памяти данных, которые используются программой в течение короткого времени до отката («rollback»); в этот момент злоумышленник получает контроль над потоками исполнения и данными. Официальное уведомление и меры по смягчению были выпущены 10 марта 2020 года и обновлены 11 мая 2021 года[35].
SGAxe
Уязвимость SGAxe[36], опубликованная в 2020 году, расширяет атаку спекулятивного выполнения на кэш[37] и позволяет атакующему получить содержимое анклава. Это обеспечивает доступ к внутренним процессорным ключам для удалённой аттестации. Тем самым злоумышленник может подделать идентификацию устройств Intel, подписывая произвольные аттестационные запросы. Соответствующая публикация по уязвимости под кодификатором 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-го, 13-го и 14-го поколений и Xeon Ice Lake, при этом для 13-го и 14-го поколений применяется программное исправление.
Извлечение приватного ключа
Подпись кода формируется приватным ключом, который хранится только в анклаве и закодирован с помощью «fuse»-элементов (плавких перемычек) на кристалле чипа. Считалось, что ключ не может быть извлечён, поскольку зашит физически, однако исследователи Марк Ермолов, Максим Горячий и Дмитрий Скляров опровергли безусловную доверенность SGX: им удалось программно извлечь мастер-ключи (Root Provisioning Key и Root Sealing Key) через микрокод на устаревших архитектурах (Goldmont, Gemini Lake), опубликовав инструмент на https://github.com/chip-red-pill/glm-ucode#[42].. В марте 2025 года стало известно об успешном извлечении ключа шифрования FEK, что позволяет расшифровать корневые ключи, однако данная атака невозможна на системах с актуальными обновлениями прошивки. В 2026 году компания Intel выпустила предупреждение безопасности, касающееся уязвимостей в старых реализациях технологии на процессорах архитектуры Gemini Lake[43]..
Отказ в обслуживании (DoS)
В феврале 2025 года была выявлена уязвимость CVE-2024-36293, связанная с неправильным контролем доступа в функции EDECCSSA для некоторых процессоров с Intel SGX. Она позволяет аутентифицированному пользователю вызвать отказ в обслуживании (DoS) при локальном доступе; для её устранения компания Intel выпустила обновление микрокода.
SGX и вредоносное ПО
Долгое время велись дискуссии, может ли SGX способствовать созданию труднообнаружимого вредоносного ПО. Исследование Оксфордского университета, опубликованное в октябре 2022 года[44], рассмотрело плюсы и минусы злоупотребления SGX при разработке вредоносного ПО. Авторы заключили, что при наличии кратковременных уязвимостей в экосистеме SGX концепция доверенных вычислений не делает вредоносные программы более опасными по сравнению с традиционными вариантами и не способствует существенному совершенствованию вредоносного ПО. В период до 2026 года не было зафиксировано подтверждённых случаев использования Intel SGX для скрытия вредоносного ПО в реальных условиях (in-the-wild), включая криптомайнеры и программы-вымогатели. Это подтверждает выводы исследователей о том, что использование аппаратных анклавов для подобных атак лишено практического смысла для злоумышленников[45][46].
Примечания
Литература
- Intel Software Guard Extensions (Intel SGX) // ISA Extensions, Intel
- Intel Software Guard Extensions (Intel SGX) Programming Reference (Intel, октябрь 2014) (недоступная ссылка)
- IDF 2015 — Tech Chat: A Primer on Intel Software Guard Extensions (Intel, постер) (недоступная ссылка)
- ISCA 2015 tutorial slides for Intel SGX (Intel, июнь 2015) (недоступная ссылка)
- McKeen, Frank, и др. (Intel). Innovative Instructions and Software Model for Isolated Execution // Proceedings of the 2nd International Workshop on Hardware and Architectural Support for Security and Privacy. ACM, 2013.
- Джексон, Алон (диссертация PhD). Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity, май 2017.
- Йоанна Рутковска, Thoughts on Intel’s upcoming Software Guard Extensions (Part 1), август 2013.
- SGX: the good, the bad and the downright ugly / Шон Девенпорт, Ричард Форд (Florida Institute of Technology) // Virus Bulletin, 7 января 2014.
- Victor Costan, Srinivas Devadas. Intel SGX Explained. Январь 2016.
- wolfSSL, октябрь 2016.
- The Security of Intel SGX for Key Protection and Data Privacy Applications / профессор Йехуда Линделл (Bar Ilan University & Unbound Tech), январь 2018.
- Intel SGX Technology and the Impact of Processor Side-Channel Attacks, март 2020.
- How Confidential Computing Delivers A Personalised Shopping Experience, январь 2021.
- Realising the Potential of Data Whilst Preserving Privacy with EyA and Conclave from R3, декабрь 2021.
- [ Introduction to Intel Software Guard Extensions], июнь 2020.