Ranljivost v čipih Qualcomm, ki omogoča ekstrahiranje zasebnih ključev iz shrambe TrustZone

Raziskovalci iz skupine NCC odkrito podrobnosti ranljivosti (CVE-2018-11976) v čipih Qualcomm, ki omogoča določanje vsebine zasebnih šifrirnih ključev, ki se nahajajo v izolirani enklavi Qualcomm QSEE (Qualcomm Secure Execution Environment), ki temelji na tehnologiji ARM TrustZone. Težava se kaže v večina Snapdragon SoC, ki je postal razširjen v pametnih telefonih, ki temeljijo na platformi Android. Popravki, ki odpravljajo težavo, so že vključeno v aprilski posodobitvi za Android in nove izdaje vdelane programske opreme za čipe Qualcomm. Qualcomm je potreboval več kot eno leto, da je pripravil popravek; informacije o ranljivosti so bile prvotno poslane Qualcommu 19. marca 2018.

Naj spomnimo, da tehnologija ARM TrustZone omogoča ustvarjanje strojno izoliranih zaščitenih okolij, ki so popolnoma ločene od glavnega sistema in delujejo na ločenem virtualnem procesorju z uporabo ločenega specializiranega operacijskega sistema. Glavni namen TrustZone je zagotoviti izolirano izvajanje procesorjev za šifrirne ključe, biometrično avtentikacijo, podatke o plačilih in druge zaupne informacije. Interakcija z glavnim OS se izvaja posredno prek dispečerskega vmesnika. Zasebni šifrirni ključi so shranjeni v strojno izolirani shrambi ključev, ki lahko, če je pravilno implementirana, prepreči njihovo uhajanje, če je osnovni sistem ogrožen.

Ranljivost je posledica napake v implementaciji algoritma obdelave eliptične krivulje, ki je povzročila uhajanje informacij o poteku obdelave podatkov. Raziskovalci so razvili tehniko napada stranskega kanala, ki omogoča uporabo obstoječih posrednih uhajanj za obnovitev vsebine zasebnih ključev, ki se nahajajo v strojno izolirani Android Keystore. Puščanja so določena na podlagi analize aktivnosti bloka napovedovanja vej in sprememb v dostopnem času do podatkov v pomnilniku. V poskusu so raziskovalci uspešno dokazali obnovitev 224- in 256-bitnih ključev ECDSA iz strojno izolirane shrambe ključev, ki se uporablja v pametnem telefonu Nexus 5X. Obnovitev ključa je zahtevala generiranje približno 12 tisoč digitalnih podpisov, kar je trajalo več kot 14 ur. Orodja, uporabljena za izvedbo napada Cachegrab.

Glavni vzrok težave je souporaba skupnih komponent strojne opreme in predpomnilnika za izračune v TrustZone in v glavnem sistemu - izolacija se izvaja na ravni logične ločitve, vendar z uporabo skupnih računalniških enot in s sledmi izračunov in informacijami o veji naslovi, ki se shranijo v skupni predpomnilnik procesorja. Z uporabo metode Prime+Probe, ki temelji na ocenjevanju sprememb dostopnega časa do predpomnjenih informacij, je mogoče s preverjanjem prisotnosti določenih vzorcev v predpomnilniku spremljati tokove podatkov in znake izvajanja kode, povezane z izračuni digitalnih podpisov v TrustZone z dokaj visoko natančnostjo.

Večino časa za ustvarjanje digitalnega podpisa z uporabo ključev ECDSA v čipih Qualcomm porabimo za izvajanje operacij množenja v zanki z uporabo inicializacijskega vektorja, ki je nespremenjen za vsak podpis (nuncij). Če lahko napadalec obnovi vsaj nekaj bitov z informacijami o tem vektorju, postane mogoče izvesti napad za zaporedno obnovitev celotnega zasebnega ključa.

V primeru Qualcomma sta bili v algoritmu množenja identificirani dve mesti, kjer so takšne informacije uhajale: pri izvajanju operacij iskanja v tabelah in v kodi za pogojno iskanje podatkov na podlagi vrednosti zadnjega bita v vektorju »nonce«. Kljub dejstvu, da koda Qualcomm vsebuje ukrepe za preprečevanje uhajanja informacij prek kanalov tretjih oseb, vam razvita metoda napada omogoča, da obidete te ukrepe in določite več bitov vrednosti »nonce«, ki zadostujejo za obnovitev 256-bitnih ključev ECDSA.

Vir: opennet.ru

Dodaj komentar