Ataque a Intel SGX para extraer datos confidenciais ou executar código nun enclave

Investigadores da Universidade de Ciencia e Tecnoloxía da Defensa do Exército Popular de Liberación de China, a Universidade Nacional de Singapur e a ETH Zurich desenvolveron un novo método de ataque contra enclaves illados de Intel SGX (Software Guard eXtensions). O ataque chamouse SmashEx e foi causado por problemas de reentrada no manexo de excepcións durante a operación de compoñentes de execución para Intel SGX. O método de ataque proposto permite, se hai control sobre o sistema operativo, determinar os datos confidenciais localizados no enclave, ou organizar a copia do propio código na memoria do enclave e a súa execución.

Preparáronse prototipos de explotación para enclaves de execución baseados en Intel SGX SDK (CVE-2021-0186) e Microsoft Open Enclave (CVE-2021-33767). No primeiro caso, demostrouse a capacidade de extraer a clave RSA utilizada no servidor web para HTTPS e, no segundo, foi posible determinar o contido obtido pola utilidade cURL que se executa dentro do enclave. A vulnerabilidade xa foi corrixida mediante programación nas versións Intel SGX SDK 2.13 e Open Enclave 0.17.1. Ademais de Intel SGX SDK e Microsoft Open Enclave, a vulnerabilidade tamén aparece no Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX e Veracruz.

Lembremos que a tecnoloxía SGX (Software Guard Extensions) apareceu nos procesadores Intel Core de sexta xeración (Skylake) e ofrece unha serie de instrucións que permiten ás aplicacións a nivel de usuario asignar áreas de memoria pechadas, enclaves cuxos contidos non poden ser lidos nin cambiados nin sequera polo usuario. núcleo e código executados por nos modos ring0, SMM e VMM. É imposible transferir o control ao código no enclave utilizando funcións de salto e manipulacións tradicionais con rexistros e a pila: utilízanse novas instrucións especialmente creadas EENTER, EEXIT e ERESUME para transferir o control ao enclave, que realizan comprobacións de autorización. Neste caso, o código colocado no enclave pode usar os métodos de chamada clásicos para chamar funcións dentro do enclave e unha instrución especial para chamar funcións externas. O cifrado da memoria Enclave úsase para protexerse contra ataques de hardware como a conexión DRAM.

Ataque a Intel SGX para extraer datos confidenciais ou executar código nun enclave

O problema é que a tecnoloxía SGX permite que o sistema operativo interrompa a execución do enclave lanzando unha excepción de hardware, e os enclaves non implementan correctamente as primitivas para manexar atomicamente tales excepcións. A diferenza do núcleo do sistema operativo e das aplicacións normais, o código dentro dos enclaves non ten acceso a primitivas para organizar accións atómicas durante o manexo de excepcións levantadas de forma asíncrona. Sen as primitivas atómicas especificadas, o enclave pódese interromper e volver á execución en calquera momento, mesmo nos momentos nos que se están executando seccións críticas no enclave e estea nun estado inseguro (por exemplo, cando non se gardan/restauran os rexistros da CPU). .

Ataque a Intel SGX para extraer datos confidenciais ou executar código nun enclave

Para o funcionamento normal, a tecnoloxía SGX permítelle interromper a execución do enclave con excepcións de hardware configurables. Esta característica permite que os tempos de execución do enclave implementen o manexo de excepcións ou o manexo de sinal dentro do enclave, pero tamén pode introducir erros de reentrada. O ataque SmashEx baséase na explotación de fallos no SDK debido aos cales a situación de recuperación do controlador de excepcións non se xestiona correctamente. É importante que para explotar a vulnerabilidade, o atacante debe ser capaz de interromper a execución do enclave, é dicir. debe controlar o funcionamento do entorno do sistema.

Despois de lanzar unha excepción, o atacante obtén unha pequena xanela de tempo durante a cal é posible interceptar o fluxo de execución mediante a manipulación dos parámetros de entrada. En particular, se tes acceso ao sistema (entorno fóra do enclave), podes crear unha nova excepción inmediatamente despois de executar a instrución para entrar no enclave (EENTER), que devolverá o control ao sistema na fase na que se configura a pila. para o enclave aínda non se completou, no que Este número almacena o estado dos rexistros da CPU.

O sistema pode entón devolver o control ao enclave, pero dado que a pila do enclave non estaba configurada no momento da interrupción, o enclave executarase coa pila que reside na memoria do sistema, que se pode usar para aplicar a programación orientada ao retorno ( ROP) técnicas.programación orientada). Ao usar a técnica ROP, o atacante non tenta colocar o seu código na memoria, senón que opera sobre as pezas de instrucións da máquina que xa están dispoñibles nas bibliotecas cargadas, rematando cunha instrución de retorno de control (por regra xeral, estes son os finais da biblioteca. funcións). O funcionamento do exploit redúcese a construír unha cadea de chamadas a bloques similares ("gadgets") para obter a funcionalidade desexada.

Ataque a Intel SGX para extraer datos confidenciais ou executar código nun enclave
Ataque a Intel SGX para extraer datos confidenciais ou executar código nun enclave


Fonte: opennet.ru

Engadir un comentario