Una vulnerabilità di classa Meltdown hè stata scuperta in i processori AMD basati in microarchitetture Zen + è Zen 2.

Un gruppu di circadori di l'Università Tecnica di Dresda hà identificatu una vulnerabilità (CVE-2020-12965) in i processori AMD basati in microarchitetture Zen + è Zen 2, chì permette un attaccu di classi Meltdown. In u principiu, era presumitu chì i prucessori AMD Zen + è Zen 2 ùn sò micca suscettibili à a vulnerabilità Meltdown, ma i circadori anu identificatu una funzione chì porta à l'accessu speculativu à e spazii di memoria prutetti quandu utilizanu indirizzi virtuali non canonichi.

L'architettura AMD64 usa solu i primi 48 bits di l'indirizzu virtuale è ignora i 16 bits restante. Hè specificatu chì i bits da 48 à 63 deve sempre copià u valore di u bit 47 (estensione di bit di signu). Se sta cundizione hè violata è un tentativu hè fattu per accede à un indirizzu cù valori arbitrarii di i bits superiori, u processatore genera una eccezzioni. Riempite ripetutamente i bits superiori face chì u spaziu di l'indirizzu dispunibule sia divisu in dui blocchi - un più bassu (da 0 à 00007FFFFFFFFFFFFF), in quale i bits superiori sò messi à 800000000000, è un superiore (da FFFFFF1 à FFFFFFFFFFFFFF), in quale. tutti i bits superiori sò posti à XNUMX.

L'indirizzi chì cadenu in i blocchi specificati sò chjamati canonichi, è l'indirizzi sbagliati cù cuntenutu arbitrariu di i bits superiori sò chjamati non canonichi. A gamma più bassa di l'indirizzi canonichi hè tipicamente attribuita per i dati di prucessu, è a gamma superiore hè utilizata per i dati di u kernel (l'accessu à questi indirizzi da u spaziu di l'utilizatori hè bluccatu à u livellu di separazione di privilegi).

A vulnerabilità classica di Meltdown hè basatu annantu à u fattu chì durante l'esekzione speculativa di l'istruzzioni, u processatore pò accede à una zona di dati privati ​​​​è poi scaccià u risultatu perchè i privilegii stabiliti pruibiscenu tali accessu da u prucessu di l'utilizatore. In u prugramma, u bloccu eseguitu speculatively hè siparatu da u codice principale da un ramu cundizionale, chì in cundizioni reali sempre u focu, ma per u fattu chì a dichjarazione cundizionale usa un valore calculatu chì u processatore ùn cunnosci micca durante l'esekzione preventiva di u codice, tutte l'opzioni di ramu sò realizati speculatively.

Siccomu l'operazioni eseguite speculativamente utilizanu a stessa cache cum'è l'istruzzioni normalmente eseguite, hè pussibule durante l'esekzione speculativa per stabilisce marcatori in a cache chì riflettenu u cuntenutu di i bits individuali in una zona di memoria privata, è dopu in codice normalmente eseguitu per determinà u so valore attraversu u timing. analisi accessi à dati cached è uncached.

Una caratteristica di a nova vulnerabilità chì affetta i processori AMD Zen + è Zen 2 hè chì i CPU permettenu operazioni speculative di lettura è scrittura chì accede à a memoria utilizendu indirizzi non canonichi invalidi, solu ignurà i 16 bits superiore. Cusì, durante l'esekzione di codice speculativu, u processatore usa sempre solu i 48 bits più bassi, è a validità di l'indirizzu hè verificata separatamente. Se, quandu traduce un indirizzu virtuale non canonicu à un indirizzu fisicu in u buffer di traduzzione assuciativa (TLB), una partita hè rilevata in a parte canonica di l'indirizzu, allora l'operazione di carica speculativa restituverà u valore senza piglià in contu u cuntenutu. di i 16 bits superiore, chì permette di scaccià a spartera di memoria trà i fili. In seguitu, l'operazione serà cunsiderata invalida è scartata, ma l'accessu à a memoria serà cumpletu è e dati finiscinu in a cache.

Duranti l'esperimentu, aduprendu a tecnica di determinà u cuntenutu di u cache FLUSH + RELOAD, i circadori anu pussutu urganizà un canali per u trasferimentu di dati nascosti à una velocità di 125 bytes per seconda. In più di chips AMD, u prublema afecta ancu tutti i processori Intel, chì sò suscettibili à a vulnerabilità classica Meltdown. I stessi tecnichi chì aiutanu à bluccà l'attacchi di Meltdown, cum'è l'usu di l'istruzzioni LFENCE, ponu esse aduprati per pruteggiri contra stu novu tipu d'attaccu. Per esempiu, se un processore Intel include a prutezzione di hardware contra Meltdown o u sistema hà attivatu a prutezzione di u software, allora tali cunfigurazioni ùn sò micca suscettibili à a nova variante d'attaccu.

À u listessu tempu, i circadori notanu chì, cumparatu cù i prucessori Intel, l'architettura di i prucessori AMD limita a pussibilità di realizà attacchi veri, ma ùn esclude micca l'usu di un novu metudu in cumbinazioni cù altri attacchi microarchitecturali per aumentà a so efficacità. In particulare, l'attaccu prupostu ùn permette micca di determinà u cuntenutu di e zoni di memoria di u kernel è altri prucessi, ma hè limitatu à l'abilità di accede à l'altri fili di u stessu prugramma in u stessu spaziu di memoria virtuale.

Siccomu un prugramma senza una vulnerabilità hà a capacità di acquistà l'accessu à i so fili, da un puntu di vista praticu, u metudu hè d'interessu per passà l'isolamentu di sandbox è urganizà l'interferenza cù u travagliu di altri fili in prugrammi chì permettenu l'esekzione di terzu. codice, cum'è i navigatori web è i motori JIT. I ricercatori anu esaminatu a vulnerabilità di u mutore JavaScript SpiderMonkey è u kernel Linux per attaccà, ma ùn anu micca truvatu sequenze di codice vulnerabile chì puderia esse usatu per fà un attaccu. In più di attaccà l'applicazioni, u metudu pò ancu esse usatu per furzà i flussi di dati inaccettabili trà elementi microarchitecturali di u processatore mentre sfruttendu altre vulnerabili microarchitectural.

Source: opennet.ru

Add a comment