Studiuesit në Qendrën Helmholtz për Sigurinë e Informacionit (CISPA) kanë publikuar një metodë të re sulmi CacheWarp për të komprometuar mekanizmin e sigurisë AMD SEV (Secure Encrypted Virtualization) që përdoret në sistemet e virtualizimit për të mbrojtur makinat virtuale nga ndërhyrja e hipervizorit ose administratorit të sistemit pritës. Metoda e propozuar lejon një sulmues me akses te hipervizori të ekzekutojë kodin e palës së tretë dhe të përshkallëzojë privilegjet në një makinë virtuale të mbrojtur duke përdorur AMD SEV.
Sulmi bazohet në përdorimin e një cenueshmërie (CVE-2023-20592) të shkaktuar nga funksionimi i gabuar i cache-së gjatë ekzekutimit të udhëzimit të procesorit INVD, me ndihmën e të cilit është e mundur të arrihet një mospërputhje e të dhënave në memorie dhe cache. , dhe mekanizmat e anashkalimit për ruajtjen e integritetit të kujtesës së makinës virtuale, të implementuara bazuar në shtesat SEV-ES dhe SEV-SNP. Dobësia prek procesorët AMD EPYC nga gjenerata e parë në të tretën.
Për procesorët AMD EPYC të gjeneratës së tretë (Zen 3), problemi u rregullua në një përditësim të mikrokodit në nëntor të publikuar dje nga AMD (rregullimi nuk rezulton në një penalizim të performancës). Për procesorët AMD EPYC të gjeneratës së parë dhe të dytë (Zen 1 dhe Zen 2), mbrojtja nuk ofrohet, pasi këtyre CPU-ve u mungon mbështetja për zgjerimin SEV-SNP, i cili ofron monitorim të integritetit. makina virtualeGjenerata e katërt e procesorëve AMD AMD EPYC "Genoa" bazuar në mikroarkitekturën "Zen 4" nuk janë të prekshëm.
Teknologjia AMD SEV përdoret për izolimin e makinës virtuale nga ofruesit e cloud-it si Amazon Web Services (AWS), Google Cloud, Microsoft Azure dhe Oracle Compute Infrastructure (OCI). Mbrojtja AMD SEV zbatohet përmes enkriptimit në nivel hardueri të memories së makinës virtuale. Përveç kësaj, zgjerimi SEV-ES (Encrypted State) mbron regjistrat e CPU-së. Vetëm sistemi aktual mysafir ka qasje në të dhënat e dekriptuara, ndërsa sisteme të tjera mund t'i qasen ato. makina virtuale dhe hipervizori, kur përpiqet të hyjë në këtë memorie, merr një grup të dhënash të koduara.
Gjenerata e tretë e procesorëve AMD EPYC prezantoi një shtesë shtesë, SEV-SNP (Secure Nested Paging), e cila siguron funksionimin e sigurt të tabelave të faqeve të memories së mbivendosur. Përveç kriptimit të përgjithshëm të memories dhe izolimit të regjistrit, SEV-SNP zbaton masa shtesë për të mbrojtur integritetin e kujtesës duke parandaluar ndryshimet në VM nga hipervizori. Çelësat e enkriptimit menaxhohen në anën e një procesori të veçantë PSP (Platform Security Processor) të integruar në çip, të implementuar në bazë të arkitekturës ARM.
Thelbi i metodës së propozuar të sulmit është përdorimi i udhëzimit INVD për të zhvlerësuar blloqet (linjat) në cache-in e faqeve të pista pa i hedhur të dhënat e grumbulluara në cache në memorie (write-back). Kështu, metoda ju lejon të hiqni të dhënat e ndryshuara nga cache pa ndryshuar gjendjen e memories. Për të kryer një sulm, propozohet përdorimi i përjashtimeve të softuerit (injektimi i gabimeve) për të ndërprerë funksionimin e makinës virtuale në dy vende: në radhë të parë, sulmuesi thërret udhëzimin "wbnoinvd" për të rivendosur të gjitha operacionet e shkrimit të memories të grumbulluara në cache, dhe në radhë të dytë thërret instruksionin "invd" për të kthyer operacionet e shkrimit që nuk pasqyrohen në memorie në gjendjen e vjetër.
Për të kontrolluar sistemet tuaja për dobësi, është publikuar një prototip i shfrytëzimit që ju lejon të futni një përjashtim në një makinë virtuale të mbrojtur nëpërmjet AMD SEV dhe të riktheni ndryshimet në VM që nuk janë rivendosur në memorie. Rikthimi i një ndryshimi mund të përdoret për të ndryshuar rrjedhën e një programi duke kthyer një adresë të vjetër kthimi në pirg, ose për të përdorur parametrat e hyrjes së një sesioni të vjetër që ishte vërtetuar më parë duke kthyer një vlerë të atributit të vërtetimit.
Për shembull, studiuesit demonstruan mundësinë e përdorimit të metodës CacheWarp për të kryer një sulm Bellcore në zbatimin e algoritmit RSA-CRT në bibliotekën ipp-crypto, duke lejuar rikuperimin e një çelësi privat duke zëvendësuar gabimet gjatë llogaritjes së nënshkrimit dixhital. Ata gjithashtu demonstruan se si të falsifikohen parametrat e verifikimit të sesionit OpenSSH gjatë një lidhjeje të largët me një sistem mysafir, dhe më pas të ndryshohet gjendja e verifikimit kur ekzekutohet programi sudo për të fituar privilegje root në Ubuntu 20.04 prill. Shfrytëzimi është testuar në sisteme me procesorë AMD EPYC 7252, 7313P dhe 7443.
Burimi: opennet.ru
