CROSSTalk — o vulnerabilitate în CPU Intel, care duce la scurgeri de date între nuclee

Un grup de cercetători de la Universitatea Liberă din Amsterdam a identificat o nouă vulnerabilitatea (CVE-2020-0543) în structurile microarhitecturale ale procesoarelor Intel, remarcabilă prin faptul că permite recuperarea rezultatelor execuției unor instrucțiuni care sunt executate pe un alt nucleu CPU. Aceasta este prima vulnerabilitate a mecanismului de execuție speculativă a instrucțiunilor care permite scurgeri de date între nuclee CPU separate (anterior, scurgerile erau limitate la diferite fire ale unui singur nucleu). Cercetătorii i-au atribuit problemei numele CROSSTalk, dar în documentele Intel vulnerabilitatea este menționată ca SRBDS (Special Register Buffer Data Sampling).

Vulnerabilitatea este asociată cu clasa de probleme MDS (Microarchitectural Data Sampling) prezentată cu un an în urmă și se bazează pe aplicarea metodelor de analiză prin canale laterale asupra datelor în structurile microarhitecturale. Principiul de funcționare CROSSTalk este similar cu vulnerabilitatea RIDL, dar diferă în ceea ce privește sursa scurgerii.
Noua vulnerabilitate manipulează scurgerea dintr-un buffer intermediar anterior nedeclarat, utilizat în comun de toate nuclee CPU.

CROSSTalk - o vulnerabilitate în CPU Intel care duce la scurgeri de date între nucleele

Substanța problemei constă în faptul că anumite instrucțiuni ale microprocesorului, inclusiv RDRAND, RDSEED și SGX EGETKEY, sunt implementate folosind o operațiune microarhitecturală internă SRR (Special Register Reads). Pe procesoarele vulnerabile, datele returnate pentru SRR se acumulează într-un buffer intermediar, comun pentru toate nuclee CPU, după care sunt transmise într-un buffer de completare, legat de un nucleu fizic specific al CPU pe care a fost inițiată operațiunea de citire. Ulterior, din bufferul de completare, valoarea este copiată în registre vizibile aplicațiilor.

Dimensiunea bufferului intermediar comun corespunde liniei de cache, ceea ce este de obicei mai mare decât dimensiunea datelor citite, iar diferite operațiuni de citire afectează diferite ofseturi din buffer. Deoarece bufferul comun este copiat întreg în bufferul de completare, nu doar porțiunea necesară pentru operațiunea curentă este mutată, ci și datele rămase în urma executării altor operațiuni, inclusiv cele efectuate pe alte nuclee CPU.

CROSSTalk - o vulnerabilitate în CPU Intel care duce la scurgeri de date între nucleele

CROSSTalk - o vulnerabilitate în CPU Intel care duce la scurgeri de date între nucleele

În cazul în care atacul este organizat cu succes, un utilizator local autentificat în sistem poate determina rezultatul executării instrucțiunilor RDRAND, RDSEED și EGETKEY într-un proces străin sau în cadrul unui enclave Intel SGX, indiferent de nucleul CPU pe care se execută codul.
Cercetătorii care au identificat problema au publicat prototipul unui exploit care demonstrează posibilitatea scurgerii de informații despre valori aleatoare obținute prin instrucțiunile RDRAND și RDSEED, pentru a recupera cheia privată ECDSA, procesată în enclava Intel SGX, după ce în sistem a fost efectuată o singură operație de semnătură digitală.


Redați video

Problema este afectată un gamă largă de procesoare Intel, inclusiv Core i3, i5, i7, i9, m3, Celeron (serii J, G și N), Atom (serii C, E și X), Xeon (familiile E3, E5, E7, W și D), Xeon Scalable etc. Este remarcabil că Intel a fost notificată despre vulnerabilitate în septembrie 2018, iar în iulie 2019 a fost prezentat un prototip de exploit care demonstrează scurgeri de date între nucleele CPU, dar dezvoltarea unei soluții a durat din cauza complexității implementării acesteia. În actualizarea de microcod propusă astăzi, problema este blocată prin modificarea comportamentului instrucțiunilor RDRAND, RDSEED și EGETKEY pentru a suprascrie excessiv datele din bufferul comun pentru a preveni sedimentarea informațiilor reziduale. În plus, a fost aplicată suspendarea accesului la buffer până la finalizarea operațiunilor de citire și scriere a conținutului.

Un efect secundar al acestei protecții este creșterea întârzierilor în execuția RDRAND, RDSEED și EGETKEY, precum și reducerea lățimii de bandă la încercarea de a executa simultan aceste instrucțiuni pe diferite procesoare logice. Execuția RDRAND, RDSEED și EGETKEY suspendă, de asemenea, accesul la memorie din alte procesoare logice. Aceste caracteristici pot afecta negativ performanța unor aplicații server, de aceea firmware-ul include un mecanism (RNGDS_MITG_DIS) pentru a dezactiva protecția instrucțiunilor RDRAND și RDSEED, care sunt executate în afara enclavei Intel SGX.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster