Studjuesit e Qendrës Helmholtz për Sigurinë e Informacionit (CISPA) publikuan një metodë të re sulmi CacheWarp, e cila lejon kompromisimin e mekanizmit të mbrojtjes AMD SEV (Virtualizimi i Enkriptuar të Sigurt), i aplikuar në sistemet e virtualizimit për të mbrojtur makinat virtuale nga ndërhyrja e hipervizorit ose administratorit të sistemit host. Metoda e propozuar i lejon sulmuesit, që ka akses në hipervizor, të arrijë ekzekutimin e kodit të jashtëm dhe rritjen e privilegjeve në një makinë virtuale të mbrojtur me AMD SEV.
Sulmi bazohet në shfrytëzimin e një dobësie (CVE-2023-20592), e shkaktuar nga mënyra e papërshtatshme e punës me cache gjatë ekzekutimit të udhëzimit të procesorit INVD, me të cilin mund të arrihet moskoordinimi i të dhënave në memorie dhe cache, dhe të kalohen mekanizmat e ruajtjes së integritetit të memories së makinave virtuale, të implementuar mbi bazën e zgjerimeve SEV-ES dhe SEV-SNP. Kjo dobësi prek procesorët AMD EPYC nga brezi i parë deri në të tretin.
Për procesorët AMD EPYC të brezit të tretë (Zen 3), problemi është zgjidhur në përditësimin e mikroproçesorit të nëntorit, të publikuar dje nga AMD (korrigjimi nuk shkakton rënie të performancës). Për brezat e parë dhe të dytë të AMD EPYC (Zen 1 dhe Zen 2) nuk është parashikuar mbrojtja, pasi në këta CPU mungon mbështetja për zgjerimin SEV-SNP, i cili siguron kontrollin e integritetit. makinave virtualeBrezin e katërt të procesorëve AMD EPYC «Genoa» të bazuar në mikroarkitekturën «Zen 4» nuk e prekin këto dobësi.
Teknologjia AMD SEV aplikohet për izolimin e makinave virtuale nga ofrues të tillë si Amazon Web Services (AWS), Google Cloud, Microsoft Azure dhe Oracle Compute Infrastructure (OCI). Mbrojtja AMD SEV realizohet përmes enkriptimit në nivelin e harduerit të memories së makinave virtuale. Për më tepër, përmes zgjerimit SEV-ES (Status i Enkriptuar) realizohet mbrojtja e regjistrave të CPU-së. Qasja në të dhënat e dekriptuara ka vetëm sistemi aktual mysafir, ndërsa të tjerët makinat virtuale dhe hipervizori, gjatë përpjekjes për të qassur këtë memorie, marrin një grup të dhënash të enkriptuara.
Në brezin e tretë të procesorëve AMD EPYC është implementuar një zgjerim shtesë SEV-SNP (Paginim i Sigurt të Njeshtruar), i cili siguron një funksionim të sigurt me tabelat e paginimit të njeshtruar. Përveç enkriptimit të përgjithshëm të memories dhe izolimit të regjistrave, në SEV-SNP janë implementuar mjete shtesë për mbrojtjen e integritetit të memories, duke mos lejuar ndërrimin e VM nga hipervizori. Menaxhimi i çelësave të enkriptimit realizohet nga një procesor i integruar në çip PSP (Platform Security Processor), i implementuar mbi bazën e arkitekturës ARM.
Thelbi i metodës së propozuar të sulmit është përdorimi i udhëzimit INVD për të anuluar blloqet (linjat) në cache të faqeve të ndotura (dirty) pa e rikthyer informacionin e grumbulluar në cache në memorie (write-back). Kështu, metoda lejon përjashtimin e të dhënave të ndryshuara nga cache, pa ndryshuar gjendjen e memories. Për të realizuar sulmin, sugjerohet përdorimi i përjashtimeve programore (fault injection) për të ndërprerë funksionimin e makinës virtuale në dy pika: në pikën e parë, sulmuesi thërret udhëzimin «wbnoinvd» për të rikthyer të gjitha operacionet e grumbulluara në cache në memorie, ndërsa në pikën e dytë thërret udhëzimin «invd» për t'u kthyer në gjendjen e vjetër operacionet e shkruara që nuk janë reflektuar në memorie.
Për të verifikuar sistemet e tyre për prani të dobësisë, është publikuar një prototip i eksploitit, i cili lejon realizimin e zëvendësimit të përjashtimit në një makinë virtuale të mbrojtur përmes AMD SEV, dhe rikthimin e ndryshimeve që nuk janë ruajtur në memorie në VM në gjendjen e vjetër. Rikthimi i ndryshim të mund të përdoret për të ndryshuar rrjedhën e ekzekutimit të programit duke kthyer adresën e vjetër të rikthimit në stack, ose për të përdorur parametra të sesionit të vjetër, për të cilin ishte realizuar më parë autentifikimi, duke kthyer vlerën e shenjës së autentifikimit.
Për shembull, studiuesit demonstruan mundësinë e aplikimit të metodës CacheWarp për të realizuar një sulm Bellcore mbi implementimin e algoritmit RSA-CRT në bibliotekën ipp-crypto, e cila lehtësoi rikthimin e çelësit të mbyllur përmes zëvendësimit të gabimeve gjatë llogaritjes së nënshkrimit digjital. Po ashtu, u tregua se si mund të zëvendësohen parametrat e kontrolleve të sesionit në OpenSSH gjatë lidhjes në distancë me sistemin mysafir, dhe më pas të ndryshohet gjendja e kontrollit gjatë ekzekutimit të utilitarit sudo për të marrë të drejtat root në Ubuntu 20.04. Funksionimi i eksploitit është verifikuar në sisteme me procesorët AMD EPYC 7252, 7313P dhe 7443.
Burimi: opennet.ru
