Mayhem, una vulnerabilitat potencial de distorsió de bits 

vulnerabilitat

Si s'exploten, aquestes falles poden permetre als atacants obtenir accés no autoritzat a informació confidencial o, en general, causar problemes

Fa pocs dies es va donar a conèixer informació sobre la creació d' un nou tipus d'atac mitjançant la tècnica de Rowhammer (conegut per induir falles de maquinari mitjançant l'accés ràpid a dades de xips de memòria DRAM).

Batejada com a Mayhem, la vulnerabilitat recentment identificada per investigadors de l'Institut Politècnic de Worcester, revela un nivell de gravetat significatiu per la seva capacitat per eludir les comprovacions d'autenticació SUDO i SSH.

Els investigadors esmenten que Mayhem utilitza la tècnica de distorsió de bits de la memòria dinàmica d'accés aleatori (DRAM) de Rowhammer per canviar els valors de les variables de pila utilitzades com a indicadors al programa per decidir si l'autenticació ha passat els controls de seguretat. Aquest atac s'adreça específicament a aplicacions que empren comprovacions per comparar valors diferents de zero.

En un escenari típic, l'èxit de l'atac implica la corrupció de qualsevol bit associat amb la variable d'autenticació de 32 bits a la pila. Si algun bit d'aquesta variable es fa malbé, el valor ja no serà zero, cosa que portarà a la conclusió amb èxit de l'autenticació. Aquest patró de validació es troba comunament en aplicacions com SUD, OpenSSH, MySQL i OpenSSL.

És important destacar que l'atac també es pot dirigir a comparacions més específiques, com a «if(auth == 1)», encara que la seva implementació en aquest cas es torna més complexa. En aquest escenari, cal distorsionar no només qualsevol bit de 32, sinó l'últim bit del valor zero.

A més, el mètode pot influir en els valors de les variables als registres del processador, ja que els valors dels registres s'emmagatzemen temporalment a la pila durant canvis de context, trucades a funcions o controladors de senyals. Durant aquest període, es poden introduir distorsions a la memòria, i el valor modificat es restaurarà al registre corresponent.

La vulnerabilitat Rowhammer explota la naturalesa física de la memòria DRAM, que consisteix en una matriu bidimensional de cel·les, cadascuna composta per un capacitor i un transistor. Realitzar lectures repetides a la mateixa regió de la memòria provoca fluctuacions de voltatge i anomalies, generant una petita pèrdua de càrrega a les cel·les adjacents.

Quan la intensitat de lectura és alta, la cel·la veïna pot experimentar una pèrdua significativa de càrrega, i el següent cicle de regeneració no tindrà temps de restaurar el seu estat original, cosa que conduirà a un canvi en el valor de les dades emmagatzemades a la cel·la . Aquest fenomen condueix a un canvi en el valor de les dades emmagatzemades a la cel·la, donant lloc a la vulnerabilitat coneguda com a Rowhammer.

Mayhem s'introdueix en sistemes mitjançant un script PHP, que els atacants carreguen als servidors aprofitant contrasenyes FTP compromeses, vulnerabilitats al lloc web o mitjançant lobtenció de credencials dadministració del lloc mitjançant atacs de força bruta.

El component principal de Mayhem és un fitxer ELF maliciós que, després de la instal·lació, aquest fitxer baixa complements addicionals i els desa en un sistema de fitxers ocult i xifrat. La presència d'aquests complements ofereix als atacants la capacitat d'utilitzar els servidors recentment infectats per dur a terme atacs i comprometre llocs addicionals.

Per protegir-se contra Mayhem, es recomana utilitzar a les comparacions no una avaluació de les diferències des de zero o una coincidència amb un, sinó una verificació de coincidència utilitzant un valor inicial aleatori amb octets diferents de zero. En aquest cas, per establir el valor desitjat de la variable, cal distorsionar amb precisió un nombre significatiu de bits, cosa que no és realista, a diferència de la distorsió d'un bit.

Els investigadors esmenten que per mitigar el risc d'atacs com Mayhem se suggereix:

Canviar lestratègia en les comparacions, davaluació de les diferències des de zero o la coincidència amb un. En canvi, es recomana fer servir una verificació de coincidència que involucri un valor inicial aleatori amb octets diferents de zero. En aquest enfocament, establir el valor desitjat de la variable requeriria la distorsió precisa d'un nombre significatiu de bits, cosa que resulta poc realista en comparació amb la distorsió d'un sol bit.

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