Vulnerabilitat als xips Qualcomm que permet extreure claus privades de l'emmagatzematge de TrustZone

Investigadors del Grup NCC descobert detalls vulnerabilitats (CVE-2018-11976) als xips Qualcomm, que permet determinar el contingut de les claus de xifratge privades situades en un enclavament aïllat Qualcomm QSEE (Qualcomm Secure Execution Environment), basat en la tecnologia ARM TrustZone. El problema es manifesta en la majoria Snapdragon SoC, que s'ha generalitzat als telèfons intel·ligents basats en la plataforma Android. Les solucions que solucionen el problema ja estan inclòs a l'actualització d'Android d'abril i nous llançaments de microprogramari per als xips Qualcomm. Qualcomm va trigar més d'un any a preparar una solució; la informació sobre la vulnerabilitat es va enviar inicialment a Qualcomm el 19 de març de 2018.

Recordem que la tecnologia ARM TrustZone us permet crear entorns protegits aïllats per maquinari que estan completament separats del sistema principal i que s'executen en un processador virtual independent mitjançant un sistema operatiu especialitzat independent. L'objectiu principal de TrustZone és proporcionar execució aïllada de processadors per a claus de xifratge, autenticació biomètrica, dades de pagament i altra informació confidencial. La interacció amb el sistema operatiu principal es realitza indirectament a través de la interfície d'enviament. Les claus de xifratge privades s'emmagatzemen dins d'un magatzem de claus aïllat per maquinari, que, si s'implementa correctament, pot evitar la seva fuga si el sistema subjacent està compromès.

La vulnerabilitat es deu a un defecte en la implementació de l'algoritme de processament de corbes el·líptices, que va provocar la fuga d'informació sobre el progrés del processament de dades. Els investigadors han desenvolupat una tècnica d'atac de canal lateral que permet utilitzar les filtracions indirectes existents per recuperar el contingut de les claus privades situades en un maquinari aïllat. Botiga de claus d'Android. Les fuites es determinen a partir de l'anàlisi de l'activitat del bloc de predicció de la branca i dels canvis en el temps d'accés a les dades en memòria. En l'experiment, els investigadors van demostrar amb èxit la recuperació de claus ECDSA de 224 i 256 bits de la botiga de claus aïllada per maquinari que s'utilitza al telèfon intel·ligent Nexus 5X. La recuperació de la clau va requerir generar unes 12 mil signatures digitals, que van trigar més de 14 hores. Eines utilitzades per dur a terme l'atac Cachegrab.

La causa principal del problema és compartir components de maquinari comuns i memòria cau per als càlculs a la TrustZone i al sistema principal: l'aïllament es realitza a nivell de separació lògica, però utilitzant unitats informàtiques comunes i amb rastres de càlculs i informació sobre la branca. adreces que s'estan dipositant a la memòria cau del processador comú. Mitjançant el mètode Prime+Probe, basat en l'avaluació dels canvis en el temps d'accés a la informació en memòria cau, és possible, comprovant la presència de determinats patrons a la memòria cau, controlar els fluxos de dades i els signes d'execució de codi associats als càlculs de signatures digitals en TrustZone amb una precisió bastant alta.

La majoria del temps per generar una signatura digital utilitzant claus ECDSA als xips Qualcomm es dediquen a realitzar operacions de multiplicació en un bucle mitjançant un vector d'inicialització que no canvia per a cada signatura (nunci apostòlic). Si l'atacant pot recuperar almenys uns quants bits amb informació sobre aquest vector, serà possible dur a terme un atac per recuperar seqüencialment tota la clau privada.

En el cas de Qualcomm, es van identificar dos llocs on es va filtrar aquesta informació a l'algorisme de multiplicació: quan es realitzava operacions de cerca en taules i en el codi de recuperació de dades condicional basat en el valor de l'últim bit del vector "nonce". Malgrat que el codi Qualcomm conté mesures per contrarestar les filtracions d'informació a través de canals de tercers, el mètode d'atac desenvolupat us permet evitar aquestes mesures i determinar diversos bits del valor "nonce", que són suficients per recuperar claus ECDSA de 256 bits.

Font: opennet.ru

Afegeix comentari