És possible que la velocitat del teu processador sigui precisament allò que comprometi la teva seguretat? Per entendre el com els processadors aconsegueixen la seva rapidesa , hem de tenir en compte que aquests treballen «endevinant el futur»… No, no és que siguin mà gics o tinguin una petita espera de vidre…
La manera com treballen els processadors és qu i en lloc d'esperar per saber quin camà prendrà un programa, el xip prediu la ruta probable i s'avança. Si la predicció és incorrecta, la feina es descarta, però queden rastres a la memòria. Aquà és on entra Spectre , una de les vulnerabilitats més importants descoberta en els darrers anys. I és que des del seu descobriment els atacants han sabut com llegir aquests rastres creant variants cada cop més sofÃstiques, TONTOU és una d'aquestes noves vulnerbilitats.
Investigadors del MIT han descobert TONTOU (Time-of-Neutralization to Time-of-Use), una nova i sofisticada tècnica per explotar vulnerabilitats de la classe Spectre v2 , permetent llegir la memòria del nucli des de l'espai d'usuari.
I és que encara que durant anys els fabricants i desenvolupadors han dissenyat diversos mecanismes de protecció contra els atacs de predicció, els atacants han aconseguit descobrir noves rutes i aquest nou estudi de CSAIL demostra com burlar aquestes proteccions.
Els investigadors van descobrir que hi ha una bretxa de temps inevitable entre el moment en què es neteja el memòria intermèdia i l'instant en què s'utilitzen les prediccions i en aquesta petita escletxa és on s'aprofita per injectar codi (de vegades de només un grapat d'instruccions) a través d'interrupcions del sistema, és possible tornar a contaminar el maquinari i extreure'n dades.
Sobre l'Atac: Interrupcions i la Bretxa a Safe-RET
AMD compta amb una defensa contra les vulnerabilitats SRSO (Speculative Return Stack Overflow), anomenada saferet, aquesta s'encarrega de netejar la maquinà ria de predicció immediatament abans de cada ús. Això deixa una finestra de vulnerabilitat que es pot executar en unes poques desenes de nanosegons. Per atacar una finestra tan petita, els investigadors van desenvolupar una tècnica que van anomenar INTERRUPT INJECTION.
Els processadors pausen constantment les seves tasques per gestionar interrupcions i els programes comuns poden configurar aquests temporitzadors . Amb això al cap, els investigadors van ajustar un temporitzador amb extrema precisió i utilitzant una tècnica per alentir la CPU van aconseguir que el processador es desviés exactament en el moment incorrect . Durant aquesta interrupció, l'atacant pot forçar a executar una gran quantitat de trucades, desbordant la pila d'adreces. En finalitzar l'execució errònia, el processador descarta el procés, però les dades consultades romanen a les memòries cau compartides, d'on es poden extreure analitzant els temps d'accés.
Extracció de Contrasenyes i Proves en Sistemes Reals
Per demostrar la gravetat de TONTOU, l' equip va construir un exploit funcional sobre un sistema AMD executant un nucli de Linux actual. El primer obstacle va ser evadir la defensa que aleatoritza la posició del sistema operatiu a la memòria, la qual cosa van aconseguir en els seus deu intents, prenent uns nou minuts per prova.
Posteriorment, van demostrar un atac local com a usuari no privilegiat per determinar el hash de la contrasenya root aconseguint extreure dades a una velocitat de 5.47 bytes per segon amb una precisió del 91.97%. En el 50% de les proves (que van fer una mitjana de 18 minuts), van detectar i van extreure amb èxit el contingut de l'arxiu de contrasenyes. Tot i que és una velocitat lenta, és més que suficient per comprometre crÃticament un servidor.
Impacte a Intel, AMD i el pegat de mitigació
L'equip va provar quatre generacions de processadors d'Intel i AMD, aconseguint errors de predicció a les dues arquitectures. Mentre que en AMD la tècnica es va demostrar viable a les famÃlies Zen 1 a 4 , en els xips d' Intel l'atac va superar dues proteccions diferents , encara que es va observar un comportament inconsistent entre diferents generacions d'Intel, cosa que suggereix que les defenses nominals s'implementen de forma diferent al maquinari.
Com a solució, els investigadors suggereixen netejar la maquinà ria de predicció per segona vegada en finalitzar la interrupció. Mentre que aquesta mesura sembla viable per a AMD, a Intel podria ser contraproduent, ja que l'atac depèn que la interrupció deixi un estat consistent i podria fer l'atac més fiable.
Els investigadors van notificar a AMD i Intel a principis de febrer i als mantenidors del nucli de Linux al març. Com a resultat, el bloqueig de codi per mitigar la vulnerabilitat es va integrar al nucli de Linux el 5 d'agost passat.
Finalment, si estàs interessat en poder conèixer més sobre això pots consultar els detalls al següent enllaç.