Dobësi në CPU-të AMD që ju lejon të anashkaloni mekanizmin e mbrojtjes SEV (Secure Encrypted Virtualization)

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 e gjeneratës së tretë AMD EPYC (Zen 3), problemi zgjidhet në përditësimin e mikrokodit të nëntorit të lëshuar dje nga AMD (rregullimi nuk rezulton në ndonjë degradim të performancës). Për gjeneratën e parë dhe të dytë të AMD EPYC (Zen 1 dhe Zen 2), mbrojtja nuk ofrohet, pasi këto CPU nuk mbështesin zgjerimin SEV-SNP, i cili siguron kontroll të integritetit për makinat virtuale. Gjenerata e katërt e procesorëve AMD AMD EPYC "Genoa" bazuar në mikroarkitekturën "Zen 4" nuk është e cenueshme.

Teknologjia AMD SEV përdoret për izolimin e makinës virtuale nga ofruesit e reve kompjuterike si Amazon Web Services (AWS), Google Cloud, Microsoft Azure dhe Oracle Compute Infrastructure (OCI). Mbrojtja AMD SEV zbatohet përmes kriptimit në nivel harduerik të kujtesës së makinës virtuale. Për më tepër, zgjerimi SEV-ES (Gjendja e Enkriptuar) mbron regjistrat e CPU. Vetëm sistemi aktual i mysafirëve ka qasje në të dhënat e deshifruara dhe kur makinat e tjera virtuale dhe hipervizori përpiqen të hyjnë në këtë memorie, ata marrin një grup të koduar të dhënash.

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-kripto, gjë që bëri të mundur rikuperimin e çelësit privat përmes zëvendësimit të gabimit gjatë llogaritjes së një dixhital. nënshkrim. Tregon gjithashtu se si mund t'i ndryshoni parametrat e verifikimit të sesionit në OpenSSH kur lidheni nga distanca me një sistem të ftuar dhe më pas të ndryshoni gjendjen e verifikimit kur përdorni programin sudo për të fituar të drejta rrënjësore në Ubuntu 20.04. Shfrytëzimi është testuar në sisteme me procesorë AMD EPYC 7252, 7313P dhe 7443.

Burimi: opennet.ru

Shto një koment