SQUIP, un nou atac que afecta processadors AMD i condueix a la fuga de dades

Un grup de iinvestigadors de la Universitat Tecnològica de Graz (Àustria), anteriorment conegut per desenvolupar els atacs MDS, NetSpectre, Throwhammer i ZombieLoad, ha revelat un nou atac de canal lateral (CVE-2021-46778) a la cua del programador del processador AMD utilitzada per programar l'execució d'instruccions a diferents unitats d'execució de la CPU.

L'atac, anomenat SQUIP, permet determinar les dades utilitzades en els càlculs en un altre procés o màquina virtual o organitzar un canal de comunicació ocult entre processos o màquines virtuals que permet intercanviar dades sense passar pels mecanismes de control daccés al sistema.

Els CPU d'AMD basades en microarquitectures Zen de 1a, 2a i 3a generació (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) es veuen afectades quan es fa servir la tecnologia Simultaneous Multithreading (SMT).

Les CPU modernes utilitzen un disseny superescalar on s'executen múltiples instruccions simultàniament per maximitzar l'actuació. Aquestes CPU processen instruccions en una canalització a través de diverses etapes: (1) cercar, (2) descodificar, (3) programar/executar i (4) retirar.

L'atac es basa a avaluar el nivell d'ocurrència de contenció (contention level) a diferents cues del planificador i es realitza a través del mesurament de retards en iniciar operacions de verificació realitzades en un altre fil SMT a la mateixa CPU física. Per analitzar el contingut es va utilitzar el mètode Prime+Probe, que implica omplir la cua amb un conjunt de valors de referència i determinar els canvis mesurant-ne el temps d'accés al moment de la recàrrega.

L'etapa de programació/execució pot processar instruccions desordenades per maximitzar la instrucció paral·lelisme de nivells. Descrivim breument cadascuna d'aquestes etapes:

-Cerca. La CPU cerca la següent instrucció a executar de la memòria cau L1i. 
-Decodificar. Per permetre una execució eficient, les instruccions obtingudes (operacions macro) es descodifiquen en una o diverses microoperacions més simples (µops) i es col·loquen en una cua µop. Aquests µops són alimentats al backend, on es programen i executen.
-Programar/Executar. El(s) programador(s) rastreja(n) quins µops estan preparats per a la seva execució (tenir entrades disponibles) i dinàmicament els programa (de manera desordenada) a les unitats d'execució disponibles. Un nucli de CPU té múltiples unitats dexecució i pot tenir múltiples unitats aritmètiques i lògiques (ALU), branques dunitats dexecució (BRU), unitats de generació dadreças (AGU).

Durant l'experiment, els investigadors van poder recrear per complet la clau RSA privada de 4096 bits utilitzada per crear signatures digitals utilitzant la biblioteca criptogràfica mbedTLS 3.0, que utilitza l'algorisme de Montgomery per elevar un número a un mòdul de potència. Es van necessitar 50.500 rastres per determinar-ne la clau.

El temps total d'atac va prendre 38 minuts. Es demostren variants d'atac que proporcionen una fugida entre diferents processos i màquines virtuals controlades per l'hipervisor KVM. També es mostra que el mètode es pot utilitzar per organitzar la transferència de dades encoberta entre màquines virtuals a una velocitat de 0,89 Mbit/si entre processos a una velocitat de 2,70 Mbit/s amb una taxa d'error inferior al 0,8, XNUMX%.

El nucli de la CPU es divideix en múltiples nuclis lògics o subprocessos, executant fluxos d'instruccions independents però compartint recursos com la memòria cau L1i. µops d'aquests fils també comparteixen les unitats d'execució dinàmicament per permetre més utilització. La partició de diferents parts del nucli.
es fa mitjançant l'intercanvi competitiu. Les arquitectures AMD Zen permeten dos fils
per nucli. Aquests fils poden ser d'un sol programa o de diferents programes, segons el que gestiona el sistema operatiu.

Els processadors Intel no són susceptibles a atacs, ja que utilitzen una única cua de programació, mentre que els processadors AMD vulnerables utilitzen cues independents per a cada unitat dexecució.

Com a solució per bloquejar la fugida d'informació, AMD va recomanar que els desenvolupadors utilitzin algorismes que sempre facin càlculs matemàtics en temps constant, independentment de la naturalesa de les dades que es processin, i que també evitin la bifurcació basada en dades secretes.

Finalment si estàs interessat a poder conèixer més sobre això, pots consultar els detalls al següent enllaç.


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: Miguel Ángel Gatón
  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ó.