Ranljivost je posledica funkcij optimizacije pomnilnika v procesorjih Intel.
V sistemu za izvajanje špekulativnih ukazov Intelovih procesorjev je bila ponovno odkrita ranljivost , tokrat pa je Googlov raziskovalec razkril, da je odkril novo ranljivost (že katalogizirano pod CVE-2022-40982 ), imenovano »Downfall«.
Ranljivost Downfall omogoča določitev vsebine vektorskih registrov XMM, YMM in ZMM, ki so se prej uporabljali v drugih procesih pri izvajanju ukazov AVX na istem jedru procesorja.
O padcu
Glede ranljivosti je omenjeno, da bi lahko neprivilegiran napadalec, ki ima možnost izvajanja lastne kode v sistemu, izkoristil ranljivost za krajo podatkov iz drugih uporabniških procesov, sistemskega jedra, izoliranih enklav Intel SGX in virtualnih strojev.
Vektorski registri, ki jih je mogoče filtrirati, se pogosto uporabljajo pri šifriranju, funkcijah kopiranja pomnilnika in obdelavi nizov, na primer ti registri se med drugim uporabljajo v knjižnici Glibc v funkcijah memcpy, strcmp in strlen. S praktičnega vidika bi lahko ranljivost izkoristili za določitev podatkov, ki se obdelujejo v navodilih AES-NI ali REP-MOVS (uporabljajo se v funkciji memcpy) v drugih procesih, iz katerih bi lahko uhajali šifrirni ključi, občutljivi podatki in uporabniška gesla.
Ranljivost se kaže v Intelovih procesorjih , ki podpirajo razširjene nabore ukazov AVX2 in AVX-512 (tj. prizadene procesorje od 6. do 11. generacije), medtem ko Intelovi procesorji, ki temeljijo na mikroarhitekturah Alder Lake, Raptor Lake in Sapphire Rapids, niso prizadeti.
Tako kot pri nedavno odkriti ranljivosti Zenbleed, ki vpliva na procesorje AMD Zen2, je tudi pri Downfall razlog za ranljivost uhajanje podatkov iz dnevniških datotek, ki se uporabljajo za skupno rabo vsebine dnevnika v vseh aplikacijah, opravilih na istem jedru CPU.
Puščanje podatkov je posledica špekulativnega prenosa podatkov med izvajanjem ukaza GATHER , ki je na voljo v razširitvah AVX2 in AVX-512 in je zasnovan za hiter dostop do različnih podatkov v pomnilniku. Med izvajanjem ukaza GATHER se stari podatki iz registrske datoteke uporabljajo pri špekulativnem izvajanju odvisnih ukazov. Ti podatki se ne odražajo neposredno v programskih registrih, vendar jih je mogoče zaznati z uporabo tehnik napada stranskih kanalov, zasnovanih za napade Meltdown, kot je analiza preostalih podatkov v predpomnilniku procesorja.
Za izkoriščanje Downfalla je bila razvita tehnika napada, imenovana Gather Data Sampling (GDS), objavljeni pa so bili tudi prototipi izkoriščanja za pridobivanje kriptografskih ključev iz procesa drugega uporabnika, puščanje podatkov po tem, ko jih funkcija memcpy kopira v jedro Linuxa, in prestrezanje natisnjenih znakov, ki ostanejo v vektorskih registrih po zagonu drugih procesov. Na primer, prikazuje sposobnost definiranja ključev AES, ki se uporabljajo za šifriranje podatkov v procesu drugega uporabnika z uporabo knjižnice OpenSSL.
Metoda je pokazala visoko učinkovitost: v poskusu s 100 različnimi ključi je uspešno identificirala 100 % ključev AES-128 in 86 % ključev AES-256, pri čemer je vsak poskus trajal največ 10 sekund. V oblačnih sistemih se ta napad lahko uporabi za identifikacijo podatkov, ki se obdelujejo na drugih virtualnih strojih. Ranljivost je mogoče potencialno izkoristiti z izvajanjem kode JavaScript v spletnem brskalniku.
Omeniti velja, da je Intel za težavo izvedel že lani (natančneje avgusta) in da je bila ranljivost javno predstavljena šele letos na konferenci Black Hat USA. Popravki za zaščito pred ranljivostjo so že vključeni v različne posodobitve jedra Linuxa, od različice 6.4.9 do 4.14.321.
Poleg tega je med možnimi ukrepi za izogibanje negativnemu vplivu zaščite pred ranljivostjo Downfall na zmogljivost omenjena sprememba prevajalnika za onemogočanje uporabe stavka GATHER ali dodajanje stavka takoj za GATHER LFENCE, ki onemogoči vnaprejšnje izvajanje nadaljnjih stavkov, preden se zaključijo vse prejšnje objave.
Za sisteme, kjer popravki vdelane programske opreme niso na voljo, je onemogočena podpora za vse razširitve AVX, medtem ko za del posodobitve mikrokode Intel omogoča tudi uporabo vmesnika MSR za selektivno onemogočanje vdelane programske opreme. procesov.
Nenazadnje, če vas zanima več o tem , lahko podrobnosti najdete na naslednji povezavi.