SmashEx позволяет получать доступ к чувствительной информации внутри защищенных анклавов.
Специалисты Швейцарской высшей технической школы Цюриха, Национального университета Сингапура и Оборонного научно-технического университета НОАК представили атаку на процессоры Intel. Атака, получившая название SmashEx, позволяет злоумышленникам получать доступ к чувствительной информации внутри защищенных анклавов и даже запускать произвольный код на уязвимых системах.Атака возможна благодаря уязвимости CVE-2021-0186 в Intel SGX (в настоящее время исправлена в версиях SGX SDK 2.13 и 2.14 для Windows и Linux соответственно).Расширения SGX (Software Guard eXtensions) впервые были представлены в процессорах Intel Skylake.Они позволяют разработчикам запускать выбранные модули приложений в полностью изолированной защищенной области памяти под названием Trusted Execution Environment (TEE). TEE защищает эти модули от процессов, запущенных с более высокими привилегиями (например, с привилегиями ОС). SGX обеспечивает безопасность данных даже в случае, если ОС компьютера была взломана хакерами.Как пояснили исследователи, расширения SGX созданы таким образом, чтобы позволять ОС в любое время прерывать выполнение в защищенном анклаве с помощью настраиваемых исключений аппаратного обеспечения.«Эта функция позволяет средам выполнения анклава (например, Intel SGX SDK и Microsoft Open Enclave) поддерживать исключение внутри анклава и обработку сигналов, но также открывает анклавы для повторного входа. SmashEx — атака, эксплуатирующая SDK анклава, которые не обрабатывают повторный вход в своей исключительной безопасности», — сообщили исследователи.Анклав также может иметь Outside Calls (OCALLS), благодаря чему его функции могут вызывать недоверенные приложения, а затем возвращать их в анклав. Однако, когда анклав также обрабатывает исключения внутри себя, из-за уязвимости открывается короткое окно, дающее локальному злоумышленнику возможность захватывать контроль над выполнением путем внедрения в качестве асинхронного исключения сразу же после попадания в анклав.Вооружившись этой возможностью, злоумышленник может повредить внутреннюю память анклава и получить доступ к конфиденциальным данным, таким как закрытые ключи RSA, или выполнить вредоносный код.
Поскольку атака SmashEx затрагивает среду выполнения, поддерживающую обработку исключений внутри анклавов, поток возврата OCALL и поток обработки исключений должны записываться с большой осторожностью, чтобы они разделялись безопасным образом.