CPU AMD Zen 5 janë të ndjeshëm ndaj një vulnerabiliteti që lejon ndryshimin e mikrokodit dhe kalimin përmes izolimit SEV-SNP.

Kompania AMD ka përfshirë procesorët me mikroarkitekturë Zen 5 në listën e produkteve të prekura nga vulnerabiliteti EntrySign, i cili lejon kalimin e mekanizmit të verifikimit të nënshkrimit digjital gjatë azhurnimit të mikrocode-it. Fillimisht mendohej se vulnerabiliteti prekte vetëm CPU-të e AMD-së të bazuara në gjeneratat 1-4 të mikroarkitekturës Zen. Kështu, vulnerabiliteti ndikon në procesorë si Ryzen 9000 (Granite Ridge), EPYC 9005 (Turin), Ryzen AI 300 (Strix Halo, Strix Point, Krackan Point) dhe Ryzen 9000HX (Fire Range).

Përveç azhurnimit të mikrocode-it, për të eliminuar vulnerabilitetin në sistemet që përdorin verifikimin SEV-SNP, nevojitet gjithashtu azhurnimi i firmuerit AMD SEV, i cili ofrohet në paketat e azhurnimeve të BIOS-it. Raportohet se kompania AMD i ka dërguar prodhuesve të pajisjeve firmuerin e modifikuar (ComboAM5PI 1.2.0.3c AGESA) të nevojshëm për të adresuar problemin, por azhurnimet përfundimtare të BIOS-it për konsumatorët mund të lëshohen nga prodhuesit pas javësh ose muajsh.

Pjesëtarët e AMD gjithashtu kanë propozuar përfshirjen në bërthamën Linux të një patchi që bllokon ngarkimin e azhurnimeve të paautorizuara të mikrocode-it (duhet të theksohet se azhurnimet e sakta të mikrocode-it duhen instaluar së bashku me BIOS-in nga prodhuesi i pajisjeve, por tashmë kanë filluar përpjekjet për të krijuar përmirësime jooficiale nga entuziastë, të bazuara në copa mikrocode që janë hequr nga BIOS). Përdoruesit këshillohen të presin azhurnimet zyrtare të BIOS-it.

Vulnerabiliteti EntrySign siguron mundësinë e ndryshimit të mikrocode-it, duke e bërë të mundur komprometimin e mekanizmit AMD SEV (Virtualizimi i Kriptuar të Sigurt), i cili përdoret në sistemet e virtualizimit për mbrojtje makinave virtuale nga ndërhyrja e hipervizorit apo administratori të sistemit host. Gjatë një sulmi është e mundur të ndërhyn në funksionimin e sistemeve të mysafirëve të mbrojtura me ndihmën e zgjerimeve AMD SEV (Virtualizimi i Kriptuar të Sigurt) dhe SEV-SNP (Përfaqësimi i Sigurt të Shtresave), të cilat ofrojnë garanci të integritetit të memories së makinave virtuale, duke izoluara regjistrin e procesorëve dhe duke siguruar një funksionim të sigurt me tabelat e brendshme të memories.

Vulnerabiliteti shkaktohet nga përdorimi i algoritmit të verifikimit të mikrocode-it CMAC në procesin e verifikimit në vend të një funksioni hash të besueshëm. Kompania AMD përdor një çelës privat RSA për të nënshkruar mikrocode-in që ngarkohet në procesor, dhe në paketën e patch-it shpërndan çelësin publik. Për të verifikuar se çelësi publik përputhet me çiftin origjinal të çelësave RSA, procesori bën një përputhje të hash-it nga çelësi publik AMD, i ngulitur gjatë prodhimit në CPU, me hash-in nga çelësi publik që është specifikuar në patch.

Verifikimi i autenticitetit të mikrocode-it në patch bëhet përmes krahasimit të hash-it të dhënë me patch-in, i nënshkruar me nënshkrim digjital (RSASSA-PKCS1-v1_5), dhe hash-it të llogaritur në bazë të mikrocode-it që është dhënë në patch. Nëse hash-et referencë dhe të llogaritur përputhen, patch-i ngarkohet në memorjen e brendshme të CPU. Problemi është se në vend të përdorimit të funksioneve hash të rekomanduara, është përdorur algoritmi CMAC, i cili nuk është i dizajnuar për operacione të tilla dhe nuk është i mbrojtur nga përputhjet e kolizioneve.

CMAC nuk është një funksion hash, por implementon një kod autentikimi të mesazhit (Message Authentication Code), i varur nga çelësi i enkriptimit. Funksioni AES-CMAC përfshin përdorimin e algoritmit kriptografik AES dhe bashkimin e rezultatit të tij me bllokun e ardhshëm të të dhënave përmes operacionit XOR. Kjo skemë garanton se çdo ndryshim në të dhënat hyrëse do të çojë në një ndryshim të paparashikueshëm në të dhënat e daljes. Megjithatë, CMAC nuk duhet të përdoret si një funksion hash, sepse çdo kush që di çelësin origjinal të enkriptimit mund të zbulojë gjendjet e ndërmjetme të enkriptimit dhe të llogarisë vlerat që do të kompensojnë ndryshimin në të dhënat hyrëse në mënyrë që rezultati i përdorimit të CMAC të mbetet i pandryshuar.

AMD përdor për AES-CMAC një çelës të vetëm enkriptimi, i ofruar në të gjithë CPU-të, duke filluar nga Zen 1. Kështu, mjafton të nxirret ky çelës nga çdo CPU AMD dhe do të jetë i aplikueshëm për të gjithë CPU-të e tjerë. Hulumtuesit zbuluan se për enkriptimin AES-CMAC, AMD ka përdorur një çelës të njohur, të marrë nga një shembull të përmendur në rekomandimet për përdorimin e algoritmave të bllokuar NIST SP 800-38B. Duke qenë se AES-CMAC përdoret për hashing-un e çelësit RSA të ngulitur në patch dhe përmbajtjes së mikrocode-it, përcaktimi i çelësit të enkriptimit AES-CMAC krijon mundësinë e zëvendësimit të çelësit tjetër publik RSA në patch dhe ndryshimin e përmbajtjes së mikrocode-it.

Për të krijuar një patch të rremë, mjafton të formoni një çelës të ri publik, i cili gjeneron të njëjtin hash siç gjenerohej nga çelësi i vërtetë publik AMD, si dhe të përzgjidhni kolizione për nënshkrimin digjital. Kolizionet krijohen duke bashkangjitur një bllok të kodit mik, i dukshëm si një grup të dhënash të rastësishme. Në këtë mënyrë mund të përgatitet një patch i modifikuar me kod mik, në përputhje me nënshkrimin digjital me të cilin është vulosur patchi origjinal nga AMD. Instrumenti Zentool, i cili përfshin mjete për analizimin e kodit mik dhe krijimin e patches për ndryshimin e kodit mik, është në dispozicion nën licencën Apache 2.0. Për të zëvendësuar kodin mik, nevojitet të kenë të drejta për të ekzekutuar kodin në nivelin e rrethit të mbrojtjes zero (teknologjitë VT-x dhe AMD-V lejojnë që sistemi mik të ekzekutohet me të drejta Ring 0).

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster