Bashkuesit e Qendrës Helmholtz për Sigurinë e Informacionit (CISPA) publikuan një metodë të re sulmi të quajtur CacheWarp, e cila lejon që të komprometohet mekanizmi i mbrojtjes AMD SEV (Virtualizimi i Shifruar të Sigurt), i përdorur në sistemet e virtualizimit për të mbrojtur makinat virtuale nga ndërhyrjet e hipervizorit ose administratorit të sistemit host. Metoda e propozuar lejon një sulmues me qasje në hipervizor që të arrihet ekzekutimi i kodit të tretë dhe rritja e privilegjeve në një makinë virtuale të mbrojtur me AMD SEV.
Sulmi bazohet në shfrytëzimin e një vulnerabiliteti (CVE-2023-20592), i shkaktuar nga trajtimi i papërshtatshëm i caches gjatë ekzekutimit të instruksionit të procesorit INVD, me anë të cilit mund të arrihet një pasaktësi e të dhënave në memorie dhe cache, dhe të kalohen mekanizmat e ruajtjes së integritetit të memorieve virtuale, të implementuara mbi bazën e zgjerimeve SEV-ES dhe SEV-SNP. Vulnerabiliteti preku 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 mikro-kodit të lëshuar dje nga AMD (korrigjimi nuk rezulton në ulje të performancës). Për brezat e parë dhe të dytë të AMD EPYC (Zen 1 dhe Zen 2), mbrojtja nuk është parashikuar, pasi këta CPU nuk kanë mbështetje të zgjerimit SEV-SNP, i cili siguron kontrollin e integritetit. makinat virtualeBrezin e katërt të procesorëve AMD EPYC "Genoa" mbi bazën e mikroarkitekturës "Zen 4" nuk e prekin vulnerabilitetet.
Teknologjia AMD SEV aplikohet për izolimin e makinave virtuale nga ofrues të tillë cloud si Amazon Web Services (AWS), Google Cloud, Microsoft Azure dhe Oracle Compute Infrastructure (OCI). Mbrojtja AMD SEV është e realizuar përmes enkriptimit në nivelin harduer të memorieve virtuale. Shtesë, me anë të zgjerimit SEV-ES (Gjendja e Enkriptuar) sigurohet mbrojtja e regjistrave të CPU. Vetëm sistemi aktual mysafir ka qasje në të dhënat e kërkuara, ndërsa tjerë makina virtuale dhe hipervizori, në përpjekjen për të aksesuar këtë memorie, marrin një grup të dhënash të enkriptuara.
Në brezin e tretë të procesorëve AMD EPYC është realizuar një zgjerim të shtuar SEV-SNP (Secure Nested Paging), i cili siguron funksionimin e sigurt me tabele të brendshme të faqeve të memories. Përveç enkriptimit të përgjithshëm të memories dhe izolimit të regjistrave, SEV-SNP implementon mjete të tjera për mbrojtjen e integritetit të memories, të cilat ndalojnë ndryshimin e VM nga hipervizori. Menaxhimi i çelësave të enkriptimit bëhet nga një procesor i veçantë PSP (Platform Security Processor), i integruar në çip, i realizuar 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ë caches e faqeve të ndotura (dirty) pa resetimin e të dhënave të akumuluara në cache në memory (write-back). Kështu, metoda lejon të dëbohen të dhënat e ndryshuara nga cache, pa e ndryshuar gjendjen e memories. Për të kryer sulmin, sugjerohet të përdoren përjashtime programore (fault injection) për të ndërprerë funksionimin e makinës virtuale në dy vende: në vendin e parë, sulmuesi thërret udhëzimin 'wbnoinvd' për të zbrazur të gjitha operacionet e akumuluara të shkruara në memory, dhe në vendin e dytë thërret udhëzimin 'invd' për të kthyer operacionet e shkruara që nuk janë reflektuar në memory në një gjendje të vjetër.
Për të verifikuar sistemet e tij për praninë e dobësive, është publikuar një prototip i eksploitit që lejon përmbysjen e një përjashtimi në një makinë virtuale të mbrojtur përmes AMD SEV, dhe rikthimin në një gjendje të kaluar të ndryshimeve të paresetuar në memory në VM. Rikthimi i ndryshimeve mund të përdoret për të ndryshuar rrjedhën e ekzekutimit të programit duke kthyer adresën e vjetër të kthimit në stack, ose për të përdorur gjatë kalimit të parametrave të një sesioni të vjetër, për të cilin ishte realizuar më parë autentikimi, duke kthyer vlerën e atributit të autentikimit.
Për shembull, studiuesit kanë demonstruar mundësinë e përdorimit të metodës CacheWarp për të kryer një sulm Bellcore ndaj implementimit të algoritmit RSA-CRT në bibliotekën ipp-crypto, e cila ka lejuar rikthimin e çelësit të mbyllur përmes zëvendësimit të gabimeve gjatë llogaritjes së nënshkrimit dixhital. Gjithashtu është treguar se si mund të përzihen parametrat e kontrollit të sesionit në OpenSSH gjatë lidhjes në distancë me sistemin mik, dhe pastaj të ndryshohet gjendja e kontrollit gjatë ekzekutimit të mjetit sudo për të fituar të drejtat root në Ubuntu 20.04. Puna e eksploitit është verifikuar në sisteme me procesorët AMD EPYC 7252, 7313P dhe 7443.
Burimi: opennet.ru
