SQUIP - atac asupra procesoarelor AMD, care duce la scurgeri de date prin canale terțe

O echipă de cercetători de la Universitatea Tehnică din Graz (Austria), cunoscută anterior pentru dezvoltarea atacurilor MDS, NetSpectre, Throwhammer și ZombieLoad, a dezvăluit informații despre o nouă metodă de atac pe canal lateral (CVE-2021-46778) pe procesorul AMD coada de planificare, folosită pentru a programa execuția instrucțiunilor în diferite unități de execuție ale CPU. Atacul, numit SQUIP, vă permite să determinați datele folosite în calcule într-un alt proces sau mașină virtuală sau să organizați un canal de comunicare ascuns între procese sau mașini virtuale, permițându-vă să faceți schimb de date ocolind mecanismele de control al accesului la sistem.

Problema afectează procesoarele AMD bazate pe microarhitecturi Zen de prima, a doua și a treia generație (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) când se utilizează simultan tehnologia multi-threading (SMT). Procesoarele Intel nu sunt susceptibile la atac deoarece folosesc o singură coadă de planificare, în timp ce procesoarele AMD vulnerabile folosesc cozi separate pentru fiecare unitate de execuție. Ca o soluție pentru a bloca scurgerea de informații, AMD a recomandat dezvoltatorilor să folosească algoritmi în care calculele matematice sunt întotdeauna efectuate în timp constant, indiferent de natura datelor care sunt procesate și, de asemenea, să evite ramificarea bazată pe date secrete.

Atacul se bazează pe evaluarea nivelului de dispută în diferite cozi de planificare și se realizează prin măsurarea întârzierilor la lansarea operațiunilor de verificare efectuate într-un alt thread SMT pe același CPU fizic. Pentru analiza conținutului s-a folosit metoda Prime+Probe, care presupune completarea cozii cu un set standard de valori și detectarea modificărilor prin măsurarea timpului de acces la acestea la reîncărcarea acestora.

În timpul experimentului, cercetătorii au reușit să recreeze complet cheia RSA privată de 4096 de biți utilizată pentru a crea semnături digitale folosind biblioteca criptografică mbedTLS 3.0, care utilizează algoritmul Montgomery pentru a ridica un număr modulo. A fost nevoie de 50500 de urme pentru a determina cheia. Timpul total de atac a durat 38 de minute. Sunt demonstrate variante de atac care asigură scurgeri între diferite procese și mașini virtuale gestionate de hypervisorul KVM. De asemenea, se arată că metoda poate fi folosită pentru a organiza transferul de date ascunse între mașini virtuale la o viteză de 0.89 Mbit/s și între procese la o viteză de 2.70 Mbit/s cu o rată de eroare mai mică de 0.8%.

Sursa: opennet.ru

Adauga un comentariu