Plundervolt je nova metoda napada na procesorje Intel, ki vpliva na tehnologijo SGX

Intel izpuščen posodobitev mikrokode, ki popravlja ranljivost (CVE-2019-14607) dopuščanje z manipulacijo dinamičnega mehanizma za nadzor napetosti in frekvence v CPE povzroči poškodbe vsebine podatkovnih celic, vključno z območji, ki se uporabljajo za izračune v izoliranih enklavah Intel SGX. Napad se imenuje Plundervolt in potencialno omogoča lokalnemu uporabniku, da poveča svoje privilegije v sistemu, povzroči zavrnitev storitve in pridobi dostop do občutljivih podatkov.

Napad je nevaren le v kontekstu manipulacij z izračuni v enklavah SGX, saj za izvedbo zahteva korenske pravice v sistemu. V najpreprostejšem primeru lahko napadalec doseže izkrivljanje informacij, ki se obdelujejo v enklavi, vendar v bolj zapletenih scenarijih možnost poustvarjanja zasebnih ključev, shranjenih v enklavi, ki se uporabljajo za šifriranje z uporabo algoritmov RSA-CRT in AES-NI, ni. izključena. Tehniko je mogoče uporabiti tudi za generiranje napak v prvotno pravilnih algoritmih, da izzovejo ranljivosti pri delu s pomnilnikom, na primer za organiziranje dostopa do območja zunaj meje dodeljenega medpomnilnika.
Prototip kode za izvedbo napada objavljeno na GitHubu

Bistvo metode je ustvariti pogoje za pojav nepričakovanih poškodb podatkov med izračuni v SGX, pred katerimi uporaba šifriranja in avtentikacije pomnilnika v enklavi ne ščiti. Za uvedbo popačenja se je izkazalo, da je mogoče uporabiti standardne programske vmesnike za krmiljenje frekvence in napetosti, ki se običajno uporabljajo za zmanjšanje porabe energije med mirovanjem sistema in aktiviranje največje zmogljivosti med intenzivnim delom. Frekvenčne in napetostne značilnosti zajemajo celoten čip, vključno z vplivom računalništva v izolirani enklavi.

S spreminjanjem napetosti lahko ustvarite pogoje, v katerih naboj ni dovolj za regeneracijo pomnilniške celice v CPE in se njegova vrednost spremeni. Ključna razlika od napada RowHammer je, da vam RowHammer omogoča spreminjanje vsebine posameznih bitov v pomnilniku DRAM s cikličnim branjem podatkov iz sosednjih celic, medtem ko vam Plundervolt omogoča spreminjanje bitov znotraj CPE, ko so bili podatki že naloženi iz pomnilnika za izračun. Ta funkcija vam omogoča, da obidete nadzor celovitosti in mehanizme šifriranja, ki se uporabljajo v SGX za podatke v pomnilniku, saj vrednosti v pomnilniku ostanejo pravilne, vendar se lahko med operacijami z njimi popačijo, preden se rezultat zapiše v pomnilnik.

Če se ta spremenjena vrednost uporabi v procesu množenja v procesu šifriranja, je izhod zavrnjen z nepravilnim šifriranim besedilom. Z zmožnostjo stika z upravljalcem v SGX za šifriranje njegovih podatkov lahko napadalec, ki povzroči napake, zbere statistične podatke o spremembah izhodnega šifriranega besedila in v nekaj minutah obnovi vrednost ključa, shranjenega v enklavi. Prvotno vhodno besedilo in pravilno izhodno šifrirano besedilo sta znana, ključ se ne spremeni, izhod nepravilnega šifriranega besedila pa kaže, da je bil neki bit popačen na nasprotno vrednost.

Po analizi parov vrednosti pravilnih in poškodovanih šifrantov, nabranih med različnimi napakami, z uporabo metod diferencialne analize napak (DFA, Diferencialna analiza napak) Lahko napovedati verjetne ključe, ki se uporabljajo za simetrično šifriranje AES, nato pa z analizo presečišč ključev v različnih nizih določimo želeni ključ.

Težava je prizadela različne modele procesorjev Intel, vključno s procesorji Intel Core s 6
10. generacija, kot tudi peta in šesta generacija Xeon E3, prva in druga generacija Intel Xeon Scalable, Xeon D,
Xeon W in Xeon E.

Naj vas spomnimo, da tehnologija SGX (Razširitve programske zaščite) pojavil v šesti generaciji procesorjev Intel Core (Skylake) in ponudbe vrsto navodil, ki aplikacijam na ravni uporabnika omogočajo dodelitev zaprtih pomnilniških območij – enklav, katerih vsebine ne moreta brati ali spreminjati niti jedro in koda, ki tečeta v načinih ring0, SMM in VMM. Nemogoče je prenesti nadzor na kodo v enklavi s tradicionalnimi funkcijami skokov in manipulacijami z registri in skladom; za prenos nadzora v enklavo se uporablja posebej ustvarjeno novo navodilo, ki izvaja preverjanje avtoritete. V tem primeru lahko koda, postavljena v enklavo, uporablja klasične klicne metode za dostop do funkcij znotraj enklave in posebna navodila za klicanje zunanjih funkcij. Šifriranje pomnilnika Enclave se uporablja za zaščito pred napadi strojne opreme, kot je povezovanje z modulom DRAM.

Vir: opennet.ru

Dodaj komentar