SmashEx, un atac a Intel SGX per extreure dades o executar codi

investigadors de la Universitat de Ciència i Tecnologia de Defensa de l'Exèrcit Popular d'Alliberament, la Universitat Nacional de Singapur i l'Escola Tècnica Superior Suïssa de Zuric han desenvolupat un nou mètode per atacar enclavaments aïllats d'Intel SGX (Software Guard eXtensions).

L'atac es va anomenar SmashEx i va ser causat per problemes de reentrada en manejar excepcions durant el treball dels components en temps dexecució per a Intel SGX. El mètode d'atac proposat permet, si hi ha control sobre el sistema operatiu, determinar les dades confidencials ubicats a l'enclavament, u organitzar la còpia del codi a la memòria de l'enclavament i la seva execució.

Recordem que la tecnologia SGX va aparèixer als processadors Intel Core de sisena generació (Skylake) i ofereix una sèrie d'instruccions que permeten que a les aplicacions de nivell d'usuari se'ls assignin àrees privades de memòria, enclavaments, el contingut dels quals no es pot llegir ni canviar ni tan sols mitjançant el nucli i el codi executat en els modes ring0, SMM i VMM.

És impossible transferir el control al codi a l'enclavament utilitzant funcions de transició tradicionals i manipulacions amb registres i la pila; per transferir el control a l'enclavament, s'utilitzen noves instruccions creades especialment EENTER, EEXIT i ERESUM que fan verificacions d'autorització. Al mateix temps, el codi col·locat a l'enclavament pot utilitzar mètodes de trucada clàssics per trucar a funcions dins de l'enclavament i una instrucció especial per trucar a funcions externes. El xifratge de memòria Enclavament s'utilitza per protegir contra atacs de maquinari, com ara connectar-se a un mòdul DRAM.

El problema està relacionat amb el fet que la tecnologia SGX permet que el sistema operatiu interrompi l'execució d'un enclavament llançant una excepció de maquinari, i les primitives per al maneig atòmic d'aquestes excepcions no s'implementen adequadament als enclavaments. A diferència del nucli del sistema operatiu i les aplicacions regulars, el codi dins dels enclavaments no té accés a primitives per organitzar accions atòmiques durant el maneig asincrònic d'excepcions. Sense les primitives atòmiques especificades, l'enclavament pot interrompre's en qualsevol moment i tornar a executar-se, fins i tot quan s'executen seccions crítiques a l'enclavament i es troba en un estat insegur (per exemple, quan els registres de la CPU no es guarden/restauren) .

Per a un funcionament normal, la tecnologia SGX permet interrompre l'execució d'un enclavament amb excepcions de maquinari configurables. Aquesta característica permet que els entorns d'execució d'enclavament implementin el maneig d'excepcions o el maneig de senyals dins de l'enclavament, però també pot causar errors de reentrada. L'atac SmashEx es basa en l'explotació de falles a l'SDK pel fet que la situació de la trucada repetida del controlador d'excepcions no es maneja adequadament. És important que per aprofitar la vulnerabilitat l‟atacant ha de poder interrompre l‟execució de l‟enclavament, és a dir, ha de controlar el treball de l‟entorn del sistema.

Després de llançar una excepció, l'atacant rep una petita finestra de temps durant la qual és possible interceptar el flux dexecució mitjançant la manipulació dels paràmetres dentrada. En particular, si teniu accés al sistema (l'entorn fora de l'enclavament), podeu crear una nova excepció immediatament després d'executar la instrucció per ingressar a l'enclavament (EENTER), cosa que conduirà al retorn del control al sistema en l'etapa en què encara no s'ha completat la configuració de la pila per a l'enclavament, es desa l'estat dels registres de la CPU.

Després, el sistema pot tornar el control a l'enclavament, però atès que la pila de l'enclavament no estava configurada al moment de la interrupció, l'enclavament s'executarà amb la pila que resideix a la memòria del sistema, que es pot utilitzar per aplicar la programació orientada al retorn (ROP) tècniques d'explotació. Programació Orientada).

Quan s'usa la tècnica ROP, l'atacant no intenta col·locar el codi a la memòria, sinó que opera sobre les parts de les instruccions de la màquina que ja estan disponibles a les biblioteques carregades, acabant amb una instrucció de retorn de control (com a regla , aquests són el final de la biblioteca funcions). El treball de l'exploit es redueix a construir una cadena de trucades a blocs similars (gadgets) per obtenir la funcionalitat requerida.

Els prototips d'exploits es preparen per enclavaments amb temps d'execució basat en Intel SGX SDK (CVE-2021-0186) i Microsoft Open Enclavament (CVE-2021-3376).

En el primer cas, es va demostrar la capacitat d'extreure la clau RSA utilitzada al servidor web per a HTTPS, i en el segon cas, va ser possible determinar el contingut rebut per la utilitat cURL que s'executa dins de l'enclavament.

La vulnerabilitat ja ha estat pegat en programari a les versions Intel SGX SDK 2.13 i Open Enclavament 0.17.1.

font: https://jasonyu1996.github.io


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.