Liuveno, Liubeko ir Birmingemo universitetų mokslininkų komanda sukūrė a BadRAM ataka (CVE-2024-21944) apeiti atestavimo mechanizmą ir pažeisti aplinkas, apsaugotas SEV-SNP plėtiniu AMD procesoriuose. Kad įvykdytų ataką, su keliomis išimtimis, užpuolikas turi turėti fizinę prieigą prie atminties modulių ir vykdyti žiedo 0 lygio kodas serveryje, kuriame veikia apsaugotos svečių aplinkos.
AMD SEV-SNP fonas
AMD SEV (Secure Encrypted Virtualization) plėtiniais siekiama užtikrinti virtualios mašinos atminties vientisumą, taip pat apsaugą nuo klastojimo ir pagrindinio sistemos administratoriaus, galinčio vykdyti kodą hipervizoriaus lygiu, atliekamos analizės. Iš pradžių AMD SEV apsauga apsiribojo svečių sistemos atminties turinio šifravimu ir registro izoliavimu. Tačiau vėliau AMD EPYC procesoriai įdiegė SEV-SNP (Secure Neted Paging) plėtinį, kuris leidžia saugiai dirbti su įdėtomis atminties puslapių lentelėmis, garantuoja atminties vientisumą ir neleidžia hipervizoriui keisti svečių sistemos atminties.
AMD SEV-SNP mechanizmas sukurtas siekiant užtikrinti, kad žvalgybos agentūros arba duomenų centrų darbuotojai ir debesies paslaugų teikėjai, valdantys saugias svečių sistemas, negalėtų trukdyti svečių sistemai. The BadRAM ataka suteikia galimybę apeiti šias apsaugos priemones modifikuojant SPD (Serial Presence Detect) metaduomenis DDR4 arba DDR5 atminties moduliuose. Jei pasiseks, užpuolikas gali perrašyti užšifruotus duomenis svečio sistemos atmintyje (šifruoto teksto lygiu, jo neiššifruodamas) ir apeiti atestavimo mechanizmą – pavyzdžiui, kad paslėptų galinių durų įvedimą į virtualią mašiną, apsaugotą SEV-SNP technologija. .
Techninė atakos detalė
Ataka pagrįsta fiktyvių atminties modulio parametrų nustatymu SPD, priverčiant procesorių pasiekti neegzistuojančius adresus, susietus su esamomis atminties sritimis. Užpuolikas pakoreguoja SPD taip, kad atminties modulis praneštų apie dydį, didesnį nei jo tikroji talpa. Tai leidžia užpuolikui susieti fiktyvią neegzistuojančią atmintį į tikrą DRAM vietą, kurią saugios svečių sistemos jau naudoja šifruota forma.
Dėl šios manipuliacijos susidaro situacija, kai skirtingi adresai nurodo tą pačią fizinę atmintį (ty dvi sritys susietos su tuo pačiu DRAM lustu). Tada fiktyvi susietos atminties sritis gali būti naudojama norint pasiekti jau naudojamą realią atmintį, efektyviai apeinant procesoriaus atminties apsaugos mechanizmus.
Reikalavimai puolimui
Atakai įvykdyti tereikia paprasto programuotojo, kainuojančio apie 10 USD, susidedančio iš Raspberry Pi Pico mikrovaldiklio, DDR4/DDR5 modulių lizdo ir maitinimo šaltinio. Atakoje naudojami įrankiai, įskaitant branduolio modulį ir prototipų išnaudojimus, buvo paskelbti „GitHub“.
Kai kuriems atminties tiekėjams, kurie neblokuoja SPD perrašymų, ataką galima atlikti programiškai be fizinės prieigos prie serverio. Pavyzdžiui, Corsair RGB apšvietimu apšviestus atminties modulius galima modifikuoti programiškai. Visiškai programine įranga pagrįstų atakų metu sistema gali būti pažeista dėl kenkėjiško BIOS atnaujinimo arba serverio administratorių sabotažo debesijos paslaugose.
Pademonstruoti išpuoliai
Buvo įrodyta, kad du specifiniai išpuoliai patvirtina metodą:
-
Šifruoto teksto pakartojimo ataka: Naudojant AMD SEV, atminties duomenys saugomi šifruota forma. Nors užpuolikas negali iššifruoti turinio, jis gali perskaityti užšifruotus duomenis ir pakeisti juos kitu užšifruotu turiniu. Ši ataka parodo galimybę atkurti šifruotą tekstą.
-
Patvirtinimo aplinkkelio ataka: SEV-SNP atestavimo mechanizmas suteikia kriptografinį virtualios mašinos, veikiančios saugioje aplinkoje, vientisumo įrodymą. Užpuolikas gali perimti teisėtos virtualios mašinos patvirtinimo ataskaitą ir pakeisti ją pažeista virtualia mašina, taip paslėpdamas galinių durų įterpimo pėdsakus.
Paveikti procesoriai ir švelninimas
Pažeidžiamumas paveikia 3 ir 4 kartos AMD EPYC serijos procesorius, kurie pristatomi kodiniais pavadinimais. Milanas, Milanas-X, Genuja, Bergamas, Genuja-Xir Siena. Siekdama pašalinti pažeidžiamumą, AMD išleido SEV programinės aparatinės įrangos naujinį, kuriame įdiegta ALIAS_CHECK mechanizmas, kuris neleidžia manipuliuoti atmintimi, būdingai šiai atakai.
Palyginimas su Intel ir ARM technologijomis
„Intel“ keičiamo dydžio SGX ir TDX technologijos nėra pažeidžiamos šiai atakai, nes nuo pat pradžių jos turi būtinus patikrinimus. Senesnė Intel SGX technologija, kuri buvo pasenusi 2021 m., yra iš dalies pažeidžiama atakai (panaši į anksčiau žinomą MemBuster puolimas). Tokiais atvejais užpuolikas gali analizuoti prieigą prie šifruotos atminties, kad galėtų skaityti šifruotą tekstą, bet negali jo perrašyti.
ARM’ai Konfidenciali skaičiavimo architektūra (CCA) plėtiniai nebuvo išbandyti prieš šią ataką.
Papildomas AMD SEV-SNP pažeidžiamumas
Buvo pranešta apie papildomą pažeidžiamumą, susijusį su AMD SEV-SNP. Ši problema egzistuoja AMD QEMU emuliatoriaus šakutėje, kuri skirta paleisti virtualias mašinas su SEV-SNP. Pažeidžiamumas leidžia pagrindinio kompiuterio aplinkos administratoriui įgyti root prieigą prie svečių sistemų manipuliuojant ACPI lentelėmis. Problema kyla dėl to, kad svečio sistemos įkrovos proceso metu tikrinamas Linux branduolio, pradinio RAM disko ir branduolio parametrų vientisumas, tačiau ACPI lentelės nepaisomos. Tai leidžia specialiai pagaminti AML (ACPI mašinos kalba) kodas, kurį turi atskleisti hipervizorius ir vykdyti svečio aplinkoje.
Teigiama, kad ši problema nėra būdinga QEMU ir yra visuose hipervizoriuose ir emuliatoriuose, nes Linux branduolys iš esmės pasitiki bet kokiais hipervizoriaus pateiktais ACPI duomenimis.
Nuorodos:
Jei tekste radote klaidą, siųskite pranešimą autoriui pažymėdami klaidą ir paspausdami Ctrl-Enter.
Norėdami komentuoti, turite būti prisijungę.
Prisijunkite