Расширения 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
27 марта 2017 года исследователи из Технического университета Граца (Австрия) разработали прототип атаки, позволяющий извлечь ключи RSA из анклавов SGX, выполняемых на той же системе, в течение пяти минут, используя определённые инструкции процессора вместо точного таймера для эксплуатации сайд-каналов через кэш-память и DRAM[18][19]. Одной из контрмер, опубликованных Даниэлем Груссом с соавторами на симпозиуме USENIX Security в 2017 году, является использование аппаратных транзакций для защиты кэша[20]. Также была предложена компиляторная контрмера DR.SGX[21].
Группа LSDS из Имперского колледжа Лондона продемонстрировала прототип атаки, в которой уязвимость спекулятивного выполнения Spectre была адаптирована для атаки анклава SGX[22]. Атака Foreshadow, опубликованная в августе 2018 года, использует спекулятивное выполнение и переполнение буфера для обхода защиты SGX[23]. Для данной уязвимости (также известной как L1 Terminal Fault) были опубликованы официальные рекомендации и меры по смягчению 14 августа 2018 года и обновлены 11 мая 2021 года[24].
8 февраля 2019 года исследователи из Технического университета Граца опубликовали результаты, показавшие, что в некоторых случаях возможно исполнение вредоносного кода внутри самого анклава[25]. Эксплойт включает просканирование памяти процесса для восстановления полезной нагрузки, после чего осуществляется запуск кода на системе. Исследование отмечает, что из-за конфиденциальности и защиты анклава антивирусное ПО не может обнаружить или удалить подобное вредоносное ПО. Intel заявила, что данная атака выходит за рамки модели угроз SGX и рекомендовала запускать только доверенный код[26].
Среди множества атак через сторонние каналы MicroScope выделяется возможностью злоумышленника с помощью специально подготовленной ОС воспроизводить части кода анклава произвольное количество раз, что позволяет реализовать десятки атак такого рода вне зависимости от структуры программы[27]. В июле 2022 года Intel подготовила патч для Linux (AEX-Notify), позволяющий разработчикам анклавов SGX реагировать на подобные события[28].
Исследователям безопасности удалось внедрить тайминговые ошибки в выполнение кода в анклаве, что привело к утечке информации. Атака может быть реализована удалённо, но требует привилегированного доступа к управлению электропитанием и частотой процессора[29]. Уведомления о данной уязвимости (CVE-2019-11157) были опубликованы 14 августа 2018 года, далее обновлены 20 марта 2020 года[30].
Атака Load Value Injection (LVI)[31][32] использует внедрение значений для подмены читаемых из памяти данных, которые используются программой в течение короткого времени до отката («rollback»); в этот момент злоумышленник получает контроль над потоками исполнения и данными. Официальное уведомление и меры по смягчению были выпущены 10 марта 2020 года и обновлены 11 мая 2021 года[33].
Уязвимость SGAxe[34], опубликованная в 2020 году, расширяет атаку спекулятивного выполнения на кэш[35] и позволяет атакующему получить содержимое анклава. Это обеспечивает доступ к внутренним процессорным ключам для удалённой аттестации[36]. Тем самым злоумышленник может подделать идентификацию устройств Intel, подписывая произвольные аттестационные запросы[37]. Соответствующая публикация по уязвимости под кодификатором CVE-2020-0549 появилась 27 января 2020 года и обновлена 11 мая 2021 года[38].
В 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 концепция доверенных вычислений не делает вредоносные программы более опасными по сравнению с традиционными вариантами и не способствует существенному совершенствованию вредоносного ПО.
Примечания
Литература
- 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.
Ссылки
- Intel Software Guard Extensions (Intel SGX) — официальный сайт


