Ученые из университетов Китая, Сингапура и Швейцарии рассказали о новой атаке SmashEx, которая помогает скомпрометировать анклавы Intel SGX и похитить конфиденциальные данные из самой безопасной области процессора Intel.

Напомню, что еще с релизом архитектуры Skylake компания Intel представила технологию, получившую название SGX (Software Guard Extensions). SGX – это набор инструкций ЦП, благодаря которым приложения могут создавать защищенные зоны (анклавы) в адресном пространстве приложения, внутри которых, под надежной защитой, могут храниться различные конфиденциальные данные. Анклавы SGX обычно изолированы на аппаратном уровне (память SGX отделена от остальной памяти ЦП) и на программном уровне (данные SGX зашифрованы). Сами разработчики описывают эту технологию как своеобразную «обратную песочницу» (inverse sandbox).

Атака SmashEx позволяет малвари, работающей на той же ОС, злоупотреблять функцией, которая позволяет ЦП приостанавливать операции SGX для входа в анклав и получения данных. Вот как описывают это сами исследователи:

«Ради нормального функционирования конструкция SGX позволяет ОС в любой момент прерывать работу анклава с помощью настраиваемых аппаратных исключений. Эта функция позволяет runtime'ам анклава (например, Intel SGX SDK и Microsoft Open Enclave) поддерживать in-enclave исключения и обработку сигналов, но также открывает анклавы для багов типа re-entrancy.

SmashEx — это атака, которая использует SDK анклавов, которые не обрабатывают re-entrancy в своей исключительной безопасности, что является сложным для SGX. Proof-of-concept эксплоиты SmashEx позволяют повторно использовать код (например, ROP) и добиться раскрытия конфиденциальных данных в анклавах, построенных с использованием уязвимых runtime’ов».

Проведенные специалистами тесты позволили успешно извлечь ключ шифрования RSA из анклава Intel SGX, используемого сервером для шифрования HTTPS-трафика. Также они сумели извлечь содержимое, обрабатываемое приложением cURL в Microsoft Open Enclave, используемом серверами Azure.

Детали атаки SmashEx были обнародованы только на этой неделе, после того как Intel и Microsoft выпустили исправления для решения этой проблемы в своих SDK, а именно в Intel SGX SDK  (CVE-2021-0186) и Open Enclave SDK (CVE-2021-33767). При этом исследовательская группа заявляет, что существует множество других SDK, для которых атака SmashEx тоже представляет опасность, и их разработчики теперь тоже должны выпустить собственные патчи. Это относится к SGX SDK от Google, Apache и Arm.

Runtime Производитель Уязвимые поколения SGX
Intel SGX SDK Intel SGX2
Open Enclave Microsoft SGX1 and SGX2
Google Asylo Google SGX2
EdgelessRT Edgeless Systems SGX1 and SGX2
Rust SGX SDK Apache SGX2
Teaclave Apache SGX2
SGX-LKL Imperial College London SGX1 and SGX2
CoSMIX Technion SGX2
Veracruz ARM SGX2

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии