Dezvoltatorii din echipa Google Cloud o vulnerabilitate (CVE-2019-9836) în implementarea tehnologiei AMD SEV (Secure Encrypted Virtualization), care permite compromiterea datelor protejate de această tehnologie. AMD SEV asigură la nivel hardware criptarea transparentă a memoriei mașinilor virtuale, prin care accesul la datele decriptate este permis numai sistemului de operare gazdă curent, iar celelalte mașini virtuale și hipervizorul primesc un set de date criptate în cazul în care încearcă să acceseze această memorie.
Problema identificată permite recuperarea completă a conținutului cheii PDH închise, procesată la nivelul unui procesor de securitate protejat PSP (AMD Security Processor), inaccesibil pentru sistemul de operare principal.
Dispunând de cheia PDH, atacatorul poate apoi recupera cheia de sesiune și secvența secretă stabilită la crearea mașinii virtuale, obținând astfel acces la datele criptate.
Vulnerabilitatea este cauzată de neajunsuri în implementarea curbelor eliptice (ECC) utilizate pentru criptare, care permit de recuperare a parametrilor curbei. În timpul executării comenzii de lansare a unei mașini virtuale protejate, atacatorul poate trimite parametrii curbei care nu se conformează parametrilor recomandați de NIST, ceea ce va duce la utilizarea valorilor punctelor de ordin mic în operațiunile de multiplicare cu datele cheii închise.
Securitatea protocolului ECDH depinde direct de la punctului inițial generat al curbei, logaritmarea discretă a căreia reprezintă o sarcină extrem de complexă. Într-unul dintre pașii inițializării mediu AMD SEV, în calculele cu cheia închisă se folosesc parametrii obținuți de la utilizator. Practic, se efectuează o operație de multiplicare a două puncte, unul dintre acestea corespunzând cheii închise. Dacă al doilea punct se referă la numere prime de ordin mic, atacatorul poate determina parametrii primului punct (biti modulului utilizat în operația de ridicare la putere modulo) prin încercarea tuturor valorilor posibile. Pentru a determina cheia închisă, fragmentele de numere prime selectate pot fi apoi reunite prin .
Platformele serverelor AMD EPYC sunt afectate, folosind firmware SEV până la versiunea 0.17 build 11. Compania AMD deja a lansat o actualizare a firmware-ului, care introduce blocarea utilizării punctelor care nu sunt conforme cu curba NIST. În același timp, certificatele generate anterior pentru cheile PDH rămân valabile, permițând unui atacator să efectueze un atac de migrare a mașinilor virtuale din medii protejate de vulnerabilitate în medii expuse problemei. De asemenea, se menționează posibilitatea unui atac prin restaurarea versiunii vechi a firmware-ului la o versiune vulnerabilă, dar această posibilitate nu a fost confirmată încă.
Sursa: opennet.ro
