Një grup hulumtimesh nga Universiteti i Levenit, Universiteti i Luebeckut dhe Universiteti i Birminghamit ka zhvilluar një metodë sulmi BadRAM (CVE-2024-21944), e cila mundëson kapërcimin e mekanizmit të verifikimit të autentikimit dhe kompromentimin e ambienteve të mbrojtura duke përdorur zgjerimin SEV-SNP në procesorët AMD. Për të realizuar sulmin, sulmuesi, me përjashtim të rasteve të rralla, duhet të ketë qasje fizike në modulat e memories, si dhe të ketë mundësinë e ekzekutimit të kodit në nivelin e mbrojtjes (ring0) në serverin që ekzekuton ambientet e mbrojtura të mysafirëve.
Zgjerimet AMD SEV (Virtualizimi i Siguruar të Kriptuar) synojnë të ofrojnë garanci të integritetit të memories së makinave virtuale, si dhe mbrojtjen e tyre nga ndërhyrja dhe analiza nga administratori i sistemit pritës, i cili mund të ekzekutojë kod në nivelin e hipervizorit. Fillimisht, mbrojtja AMD SEV ishte e kufizuar në kriptimin e përmbajtjes së memories së sistemit mysafir dhe izolimin e regjistrave, por më vonë, në procesorët AMD EPYC u implementua edhe zgjerimi SEV-SNP (Pagingu i Sigurt të Shtresuar) për një funksionim të sigurt me tabela të përfshira të pagesave të memories, duke garantuar ruajtjen e integritetit të memories dhe duke mos lejuar ndryshimin e memories së sistemit mysafir nga hipervizori.
Mekanizmi AMD SEV-SNP është krijuar në mënyrë që agjencitë e inteligjencës ose stafi i qendrave të të dhënave dhe ofruesve të shërbimeve në re, ku ekzekutohen sistemet mysafire të mbrojtura, të mos mund të ndërhyjnë në funksionimin e sistemit mysafir. Metoda e propozuar e sulmit BadRAM lejon kapërcimin e garancive të ofruara përmes ndërrimit të metadatat SPD (Serial Presence Detect) në modulat e memories DDR4 ose DDR5. Nëse sulmi është i suksesshëm, sulmuesi mund të përshtasë të dhënat e kriptuara në memoryn e sistemit mysafir (në nivelin e kripto-tekstit, pa mundësi për dekriptim) dhe të kalojë mekanizmin e verifikimit, për shembull, për të fshehur futjen e një backdoor në makinë virtuale të mbrojtur me teknologjinë SEV-SNP.
Sulmi bazohet në vendosjen e parametrave të rremë në SPD të modulit të memories, duke bërë që procesori të referohet në adresa joeksistuese, të reflektuar në zona ekzistuese të memories. Sulmuesi mund të rregullojë SPD në një mënyrë që moduli i memories t'i kthejë procesorit një madhësi që tejkalon karakteristikat reale të modulit. Pas kësaj, sulmuesi mund të kryejë mapimin e memories fiktive në një zonë reale në DRAM, e cila tashmë është e përdorur në mënyrë të kriptuar në sistemet e mbrojtura të mysafirëve. Në fund, ndodh një situatë e tillë që adresat e ndryshme tregojnë në të njëjtën memory fizike (dy zona janë reflektuar në një zonë në chipin DRAM), dmth, në adresën e një zone të reflektuar fiktive mund të akcesohet në memory reale që tashmë po përdoret dhe të kalohen mekanizmat e mbrojtjes së memories në CPU.

Për të realizuar sulmin, mjafton të përmbledhësh një programator të thjeshtë me një kosto prej rreth 10 dollarësh, i përbërë nga një mikrokontrollues Raspberry Pi Pico, një port për modulat DDR4/DDR5 dhe një burim energjie. Utilitetet e përdorura për realizimin e sulmit, moduli i bërthamës dhe prototipat e eksploiteve janë vendosur në GitHub.

Për çipet e disa prodhuesve, ku bllokimi i ripërshkrimit të SPD nuk është realizuar, realizimi i sulmit është i mundur në mënyrë programore pa akses fizik në server. Për shembull, parametrat e modulateve të memories së kompanisë Corsair me ndriçim RGB mund të ndryshohen në mënyrë programore. Në rastin e një sulmi plotsisht programor, sistemi mund të kompromentohet, për shembull, përmes aplikimit të një përditësimi të dëmshëm të BIOS ose përmes diversioneve nga ana e administratëve serverëve në shërbimet në re.

Si konfirmim tĂ« funksionimit tĂ« metodĂ«s janĂ« demonstruar dy sulme. NĂ« sulmin e parĂ« Ă«shtĂ« treguar mundĂ«sia e riprodhimit tĂ« kripto-tekstit â kur pĂ«rdoret AMD SEV, tĂ« dhĂ«nat nĂ« memory ruhen nĂ« formĂ« tĂ« kriptuar dhe sulmuesi nuk mund tĂ« pĂ«rcaktojĂ« pĂ«rmbajtjen, por ka mundĂ«sinĂ« tĂ« lexojĂ« tĂ« dhĂ«nat e kriptuara dhe mĂ« pas tâi zĂ«vendĂ«sojĂ« ato me njĂ« pĂ«rmbajtje tjetĂ«r tĂ« kriptuar.
Në sulmin e dytë është demonstruar mundësia e kalimit të mekanizmit të verifikimit SEV-SNP, i cili ofron një konfirmim kriptografik të integritetit të makinës virtuale, e cila është e nisur në një ambient të mbrojtur. Sulmuesi mund të kapë raportin e verifikimit të makinës virtuale korrekte dhe pastaj ta përdorë atë për makinën virtuale të kompromentuar, për shembull, duke fshehur gjurmët e futjes së një backdoor.
Problemi prekçon generatat 3 dhe 4 të procesorëve AMD seria EPYC, të furnizuar nën emrat kodues Milan, Milan-X, Genoa, Bergamo, Genoa-X dhe Siena. Për të bllokuar këtë dobesi, kompania AMD ka lëshuar një përditësim të firmware SEV, në të cilin është implementuar kontrolli ALIAS_CHECK, i cili parandalon manipulimin me memorien që është tipike për këtë sulm.
Teknologjitë e propozuara nga Intel, Scalable SGX dhe TDX, nuk janë të ndjeshme ndaj sulmit, pasi ato përfshijnë kontrollet e nevojshme që nga fillimi. Teknologjia klasike Intel SGX, e cila në vitin 2021 u klasifikua nga Intel si e vjetruar, është pjesërisht e ndjeshme ndaj sulmit (sikurse në sulmin e njohur më parë MemBuster, një sulmues mund të analizojë qasjet në memorien e enkriptuar, pra është e mundur vetëm të lexohet teksti i enkriptuar, por jo të rishkruhet). Testimi i zgjerimeve CCA (Confidential Compute Architecture) në procesorët ARM nuk është kryer.
ĂshtĂ« raportuar gjithashtu pĂ«r njĂ« dobĂ«si tjetĂ«r qĂ« lidhet me AMD SEV-SNP. DobĂ«sia Ă«shtĂ« identifikuar nĂ« fork-in e zhvilluar nga AMD tĂ« emulatorit QEMU, i dizajnuar pĂ«r tĂ« funksionuar makinave virtuale me SEV-SNP. Problemi lejon administratorin e ambientit host tĂ« fitojĂ« qasje root nĂ« sistemet nikoqire pĂ«rmes manipulimeve me tabelat ACPI. DobĂ«sia shkaktohet nga fakti se gjatĂ« ngarkimit tĂ« sistemit nikoqir, kryhet njĂ« kontroll i integritetit tĂ« bĂ«rthamĂ«s Linux, imazhit RAM tĂ« fillimit dhe parametrave tĂ« bĂ«rthamĂ«s, por tabelat ACPI nuk merren parasysh, pĂ«rmes tĂ« cilave hipervizori mund tĂ« ekzekutojĂ« kodin e formatuar nĂ« mĂ«nyrĂ« tĂ« veçantĂ« AML (ACPI Machine Language), i destinuar pĂ«r t'u ekzekutuar nĂ« ambientin nikoqir. Kjo problematikĂ« nuk Ă«shtĂ« specifike pĂ«r QEMU dhe shfaqet nĂ« çdo hipervizor dhe emulator, pasi bĂ«rthama Linux i beson tĂ« dhĂ«nave ACPI qĂ« vijnĂ« nga hipervizori.


Burimi: opennet.ru
