Nova Tecnica per sfruttà e Vulnerabilità di Spectre Class in Chrome

Un gruppu di circadori di l'università americane, australiane è israeliane anu prupostu una nova tecnica d'attaccu di u canali laterale per sfruttà e vulnerabilità di a classe Spectre in i navigatori basati nantu à u mutore Chromium. L'attaccu, nome in codice Spook.js, vi permette di scaccià u mecanismu di isolamentu di u situ cù u codice JavaScript è leghje u cuntenutu di tuttu u spaziu di indirizzu di u prucessu attuale, i.e. accede à i dati da e pagine in esecuzione in altre tabulazioni, ma trattate in u stessu prucessu.

Siccomu Chrome gestisce diversi siti in diversi prucessi, a capacità di realizà attacchi pratichi hè limitata à i servizii chì permettenu diversi utilizatori per ospitu e so pagine. U metudu permette, da una pagina in quale l'attaccante hà l'uppurtunità di incrustà u so codice JavaScript, per determinà a presenza di altre pagine aperte da l'utilizatore da u stessu situ è ​​estrae infurmazione cunfidenziale da elli, per esempiu, credenziali o dati bancari sustituitu. da u sistema di campi di riempimentu automaticu in forme web. Comu dimustrazione, hè mostratu cumu pudete attaccà u blog di qualcunu altru nantu à u serviziu di Tumblr se u so pruprietariu apre un blog di l'attaccanti allughjatu nantu à u stessu serviziu in una altra tabulazione.

Una altra opzione per utilizà u metudu hè un attaccu à l'add-ons di u navigatore, chì permette, quandu installate un add-on cuntrullatu da l'attaccante, per estrae dati da altri add-ons. Cum'è un esempiu, mostramu cumu installendu un add-on maliziusu pudete estrae infurmazione cunfidenziale da u gestore di password LastPass.

I ricercatori anu publicatu un prototipu di sfruttamentu chì travaglia in Chrome 89 in sistemi cun CPUIntel i7-6700K è i7-7600U. Quandu creanu u sfruttamentu, i prototipi di codice JavaScript publicati prima da Google sò stati utilizati per fà attacchi Spectre-class. Hè nutatu chì i circadori sò stati capaci di preparà sfruttamenti di travagliu per sistemi basati nantu à i prucessori Intel è Apple M1, chì facenu pussibule urganizà a lettura di memoria à una velocità di 500 bytes per seconda è una precisione di 96%. Hè presumitu chì u metudu hè ancu applicabile à i prucessori AMD, ma ùn era micca pussibule di preparà un sfruttamentu cumpletamente funziunale.

L'attaccu hè applicabile à qualsiasi navigatori basati nantu à u mutore Chromium, cumpresu Google Chrome, Microsoft Edge è Brave. I circadori crèdenu ancu chì u metudu pò esse adattatu per travaglià cù Firefox, ma postu chì u mutore Firefox hè assai sfarente di Chrome, u travagliu per creà un tali sfruttamentu hè lasciatu per u futuru.

Per prutegge contra l'attacchi basati in u navigatore in relazione à l'esekzione speculativa di l'istruzzioni, Chrome implementa a segmentazione di u spaziu di l'indirizzu - l'isolazione di sandbox permette à JavaScript di travaglià solu cù puntatori di 32 bit è sparte a memoria di i gestori in cumuli disjoint 4GB. Per furnisce l'accessu à u spaziu tutale di l'indirizzu di u prucessu è bypassà a limitazione di 32-bit, i circadori anu utilizatu una tecnica chjamata Type Confusion, chì furzà u mutore JavaScript per processà un ughjettu cù un tipu incorrectu, chì permette di furmà un 64-bit. puntatore basatu nantu à una cumminazione di dui valori di 32 bit.

L'essenza di l'attaccu hè chì quandu si tratta di un ughjettu maliziusu apposta in u mutore JavaScript, e cundizioni sò create chì portanu à l'esekzione speculativa d'istruzzioni chì accede à l'array. L'ughjettu hè sceltu in tale manera chì i campi cuntrullati da l'attaccu sò posti in l'area induve u puntatore 64-bit hè utilizatu. Siccomu u tipu di l'ughjettu maliziusu ùn currisponde à u tipu di l'array chì hè trattatu, in cundizioni normali tali azzioni sò bluccati in Chrome da un mecanismu per deoptimizing u codice utilizatu per accede à l'array. Per risolve stu prublema, u codice per l'attaccu di Type Confusion hè situatu in un bloccu "si" cundizionale, chì ùn hè micca attivatu in cundizioni normali, ma hè eseguitu in modu speculativu, se u processatore predice in modu incorrectu più branching.

In u risultatu, u processatore accede in modu speculativu à u puntatore di 64-bit generatu è torna u statu dopu a determinazione di una predizione falluta, ma e tracce di l'esekzione restanu in u cache spartutu è ponu esse restaurate utilizendu metudi di rilevazione di cache di canali laterali chì analizanu cambiamenti in u cache. i tempi di accessu à i dati in cache è uncached. Per analizà u cuntenutu di u cache in cundizioni di precisione insufficiente di u timer dispunibule in JavaScript, hè utilizatu un metudu prupostu da Google, chì inganna a strategia di evacuazione di cache Tree-PLRU aduprata in i processori è permette, aumentendu u numeru di ciculi, aumenta significativamente a diffarenza di u tempu quandu un valore hè presente è assente in a cache.

Source: opennet.ru

Add a comment