Un grup de cercetători de la Institutul Politehnic Worcester, Universitatea Lübeck și Universitatea din California, San Diego metoda de atac prin canale externe, care permite recuperarea valorilor cheilor private stocate în TPM (Module de Platformă de Încredere). Atacul a primit numele de cod și vizează fTPM ( pe baza firmware-ului, care rulează pe un microprocesor separat în cadrul CPU) de la Intel (CVE-2019-11090) și TPM hardware pe cipuri STMicroelectronics (CVE-2019-16863).
Cercetătorii un prototip de instrumentare pentru executarea atacului și au demonstrat capacitatea de a recupera o cheie privată de 256 biți, utilizată pentru a genera semnături digitale folosind algoritmi bazați pe curbe eliptice ECDSA și EC-Schnorr. În funcție de drepturile de acces, timpul total al atacului asupra sisteme Intel fTPM variază între 4-20 minute și necesită analiza a 1-15 mii de operațiuni. Pentru a ataca sistemele cu cip ST33 este necesară aproximativ 80 de minute și analiza a aproximativ 40 de mii de operațiuni de generare a semnăturilor digitale.
Cercetătorii au demonstrat, de asemenea, posibilitatea de a realiza un atac de la distanță în rețele de mare viteză, permițând, în condiții de laborator, în rețea locală cu bandă de 1GB, recuperarea cheii private în cinci ore, după măsurarea timpului de răspuns pentru 45 de mii de sesiuni de autentificare cu un server VPN bazat pe software-ul strongSwan, care stochează cheile sale într-un TPM vulnerabil.
Metoda de atac se bazează pe analiza diferențelor în timpul executării operațiunilor în procesul de generare a semnăturilor digitale. Estimarea întârzierii în timpul efectuării calculului permite determinarea informațiilor despre biți individuali în timpul efectuării înmulțirii cu scalar în operațiile cu curbe eliptice. Pentru ECDSA, determinarea chiar și a câtorva biți cu informații despre vectorul de inițializare (nonce) este suficientă pentru a efectua un atac prin recuperarea secvențială a întregii chei private. Pentru a efectua cu succes atacul, este necesară analiza timpului de generare a câtorva mii de semnături digitale, create pe baza datelor cunoscute atacatorului.
Vulnerabilitatea de la compania STMicroelectronics în noua ediție a chip-urilor, în care implementarea algoritmului ECDSA a fost eliberată de corelațiile cu timpul de execuție al operațiunilor. Este interesant că chip-urile STMicroelectronics afectate de problemă sunt utilizate în echipamente care corespund nivelului de securitate Common Criteria (CC) EAL 4+. Cercetătorii au verificat, de asemenea, chip-urile TPM ale companiilor Infineon și Nuvoton, dar în acestea nu există scurgeri pe baza modificării timpului de calcul.
În procesoarele Intel, problema se manifestă începând cu familia Haswell, lansată în 2013. Se observă că o gamă largă de laptopuri, PC-uri și servere, produse de diferiți furnizori, inclusiv Dell, Lenovo și HP, este supusă acestei probleme.
Compania Intel a inclus o corecție în a firmware-urilor, în care, pe lângă problema discutată, sunt incluse alte 24 de vulnerabilități, dintre care nouă au fost clasificate ca având un nivel ridicat de pericol, iar una critic. Pentru problemele menționate se oferă doar informații generale, de exemplu, este menționat că vulnerabilitatea critică (CVE-2019-0169) este cauzată de posibilitatea de a provoca un overflow de memorie pe partea ambientelor Intel CSME (Converged Security and Management Engine) și Intel TXE (Trusted Execution Engine), ceea ce permite unui atacator să își crească privilegiile și să obțină acces la date confidențiale.
De asemenea, se poate menționa rezultatelor auditului diferitelor SDK-uri pentru dezvoltarea aplicațiilor care interacționează cu codul executat în enclave izolate. Cu scopul de a identifica funcțiile problematice care ar putea fi utilizate pentru a efectua atacuri, au fost analizate opt SDK-uri: , , , ,
și pentru Intel SGX, pentru RISC-V și pentru Sancus TEE. În cadrul auditului au fost 35 de vulnerabilități, pe baza cărora au fost dezvoltate mai multe scenarii de atac, permițând extragerea cheilor AES din enclave sau organizarea executării propriului cod prin crearea condițiilor pentru deteriorarea conținutului memoriei.
Sursa: opennet.ro
