Zraniteľnosť čipov Qualcomm, ktorá umožňuje extrahovanie súkromných kľúčov z úložiska TrustZone

Výskumníci z NCC Group odkryté podrobnosti zraniteľnosti (CVE-2018 11976,) v čipoch Qualcomm, ktorý vám umožňuje určiť obsah súkromných šifrovacích kľúčov nachádzajúcich sa v izolovanej enkláve Qualcomm QSEE (Qualcomm Secure Execution Environment), založenej na technológii ARM TrustZone. Problém sa prejavuje v väčšina Snapdragon SoC, ktorý sa rozšíril v smartfónoch založených na platforme Android. Opravy, ktoré riešia problém, už existujú zahrnuté v aprílovej aktualizácii systému Android a nových verziách firmvéru pre čipy Qualcomm. Príprava opravy spoločnosti Qualcomm trvala viac ako rok; informácie o zraniteľnosti boli spoločnosti Qualcomm pôvodne odoslané 19. marca 2018.

Pripomeňme, že technológia ARM TrustZone umožňuje vytvárať hardvérovo izolované chránené prostredia, ktoré sú úplne oddelené od hlavného systému a bežia na samostatnom virtuálnom procesore pomocou samostatného špecializovaného operačného systému. Hlavným účelom TrustZone je poskytovať izolované spracovanie procesorov pre šifrovacie kľúče, biometrické overovanie, platobné údaje a ďalšie dôverné informácie. Interakcia s hlavným OS sa vykonáva nepriamo cez dispečerské rozhranie. Súkromné ​​šifrovacie kľúče sú uložené v hardvérovo izolovanom úložisku kľúčov, ktoré, ak je správne implementované, môže zabrániť ich úniku v prípade ohrozenia základného systému.

Zraniteľnosť je spôsobená chybou v implementácii algoritmu spracovania eliptických kriviek, ktorá viedla k úniku informácií o postupe spracovania dát. Výskumníci vyvinuli techniku ​​útoku na bočný kanál, ktorá umožňuje využiť existujúce nepriame úniky na obnovenie obsahu súkromných kľúčov umiestnených v hardvérovo izolovanom Android Keystore. Úniky sa určujú na základe analýzy aktivity bloku predikcie vetvenia a zmien v čase prístupu k údajom v pamäti. V experimente vedci úspešne demonštrovali obnovu 224- a 256-bitových kľúčov ECDSA z hardvérovo izolovaného úložiska kľúčov používaného v smartfóne Nexus 5X. Obnova kľúča si vyžiadala vygenerovanie asi 12 tisíc digitálnych podpisov, čo trvalo viac ako 14 hodín. Nástroje použité na vykonanie útoku Cachegrab.

Hlavnou príčinou problému je zdieľanie spoločných hardvérových komponentov a vyrovnávacej pamäte pre výpočty v TrustZone a v hlavnom systéme - izolácia sa vykonáva na úrovni logického oddelenia, ale pomocou bežných výpočtových jednotiek a so stopami výpočtov a informácií o pobočke adresy ukladané do spoločnej vyrovnávacej pamäte procesora. Pomocou metódy Prime+Probe, založenej na hodnotení zmien v prístupovom čase k informáciám uloženým vo vyrovnávacej pamäti, je možné pomocou kontroly prítomnosti určitých vzorov vo vyrovnávacej pamäti monitorovať dátové toky a znaky spúšťania kódu spojené s výpočtami digitálnych podpisov v TrustZone s pomerne vysokou presnosťou.

Väčšinu času na generovanie digitálneho podpisu pomocou kľúčov ECDSA v čipoch Qualcomm strávite vykonávaním operácií násobenia v slučke s použitím inicializačného vektora, ktorý je nezmenený pre každý podpis (nuncius). Ak útočník dokáže obnoviť aspoň niekoľko bitov s informáciami o tomto vektore, je možné vykonať útok na postupné obnovenie celého súkromného kľúča.

V prípade Qualcommu boli v multiplikačnom algoritme identifikované dve miesta, kde takéto informácie unikli: pri vykonávaní operácií vyhľadávania v tabuľkách a v kóde podmieneného získavania údajov na základe hodnoty posledného bitu vo vektore „nonce“. Napriek tomu, že kód Qualcomm obsahuje opatrenia na zamedzenie úniku informácií cez kanály tretích strán, vyvinutá metóda útoku vám umožňuje obísť tieto opatrenia a určiť niekoľko bitov hodnoty „nonce“, ktoré stačia na obnovenie 256-bitových kľúčov ECDSA.

Zdroj: opennet.ru

Pridať komentár