Plundervolt je nova metoda napada na Intel procesore koja utiče na SGX tehnologiju

Intel pušten ažuriranje mikrokoda koje popravlja ranjivost (CVE-2019-14607) dozvoljavajući kroz manipulaciju mehanizmom dinamičke kontrole napona i frekvencije u CPU-u, inicirati oštećenje sadržaja ćelija podataka, uključujući područja koja se koriste za proračune u izolovanim Intel SGX enklavama. Napad se zove Plundervolt i potencijalno omogućava lokalnom korisniku da eskalira svoje privilegije na sistemu, izazove uskraćivanje usluge i dobije pristup osjetljivim podacima.

Napad je opasan samo u kontekstu manipulacija proračunima u SGX enklavama, jer su za njegovo izvođenje potrebna root prava u sistemu. U najjednostavnijem slučaju, napadač može postići izobličenje informacija obrađenih u enklavi, ali u složenijim scenarijima, mogućnost ponovnog kreiranja privatnih ključeva pohranjenih u enklavi koji se koriste za šifriranje korištenjem RSA-CRT i AES-NI algoritama nije isključeno. Tehnika se također može koristiti za generiranje grešaka u početno ispravnim algoritmima kako bi se izazvale ranjivosti pri radu s memorijom, na primjer, za organiziranje pristupa području izvan granice dodijeljenog bafera.
Prototip koda za izvođenje napada objavljeno na GitHubu

Suština metode je stvaranje uslova za pojavu neočekivanih oštećenja podataka tokom izračunavanja u SGX-u, od kojih upotreba šifriranja i autentifikacije memorije u enklavi ne štiti. Za uvođenje distorzije, pokazalo se da je moguće koristiti standardne softverske interfejse za kontrolu frekvencije i napona, koji se obično koriste za smanjenje potrošnje energije tokom vremena mirovanja sistema i aktiviranje maksimalnih performansi tokom intenzivnog rada. Karakteristike frekvencije i napona obuhvataju cijeli čip, uključujući utjecaj računarstva u izolovanoj enklavi.

Promjenom napona možete stvoriti uvjete pod kojima punjenje nije dovoljno za regeneraciju memorijske ćelije unutar CPU-a, a njena vrijednost se mijenja. Ključna razlika od napada RowHammer je da vam RowHammer omogućava promjenu sadržaja pojedinačnih bitova u DRAM memoriji cikličkim čitanjem podataka iz susjednih ćelija, dok Plundervolt omogućava promjenu bitova unutar CPU-a kada su podaci već učitani iz memorije radi računanja. Ova funkcija vam omogućava da zaobiđete mehanizme kontrole integriteta i enkripcije koji se koriste u SGX-u za podatke u memoriji, budući da vrijednosti ​​u memoriji ostaju ispravne, ali mogu biti iskrivljene tijekom operacija s njima prije nego što se rezultat zapiše u memoriju.

Ako se ova izmijenjena vrijednost koristi u procesu množenja procesa šifriranja, izlaz se odbija s netočnim šifriranim tekstom. Imajući mogućnost da kontaktira rukovaoca u SGX-u da šifrira svoje podatke, napadač može, uzrokujući neuspjehe, akumulirati statistiku o promjenama u izlaznom šifriranom tekstu i, za nekoliko minuta, vratiti vrijednost ključa pohranjenog u enklavi. Originalni ulazni tekst i ispravan izlazni šifrirani tekst su poznati, ključ se ne mijenja, a izlaz netačnog šifriranog teksta ukazuje da je neki bit izobličen na suprotnu vrijednost.

Analizirajući parove vrijednosti ispravnih i pokvarenih šifriranih tekstova akumuliranih tokom različitih kvarova, koristeći metode diferencijalne analize grešaka (DFA, Diferencijalna analiza kvarova) može predvidjeti vjerovatne ključeve koji se koriste za AES simetričnu enkripciju, a zatim, analizom presjeka ključeva u različitim skupovima, odredimo željeni ključ.

Različiti modeli Intel procesora su pogođeni problemom, uključujući Intel Core CPU sa 6
10. generacija, kao i peta i šesta generacija Xeon E3, prva i druga generacija Intel Xeon Scalable, Xeon D,
Xeon W i Xeon E.

Podsjetimo da je SGX tehnologija (Proširenja softverske zaštite) pojavio se u šestoj generaciji Intel Core procesora (Skylake) i ponude niz instrukcija koje dozvoljavaju aplikacijama na nivou korisnika da dodijele zatvorene memorijske oblasti - enklave, čiji sadržaj ne može biti pročitan ili modificiran čak ni kernelom i kodom koji se izvodi u ring0, SMM i VMM načinima. Nemoguće je prenijeti kontrolu na kod u enklavi koristeći tradicionalne funkcije skoka i manipulacije s registrima i stekom; za prijenos kontrole na enklavu koristi se posebno kreirana nova instrukcija koja vrši provjeru ovlaštenja. U ovom slučaju, kod postavljen u enklavu može koristiti klasične metode pozivanja za pristup funkcijama unutar enklave i posebne upute za pozivanje vanjskih funkcija. Enklavna memorija se koristi za zaštitu od hardverskih napada kao što je povezivanje na DRAM modul.

izvor: opennet.ru

Dodajte komentar