Kompania Intel përditësimin e mikrocode që adreson (CVE-2019-14607), përmes manipulimeve me mekanizmin e menaxhimit dinamik të tensionit dhe frekuencës në CPU për të inicuar dëmtimin e përmbajtjes së qelizave me të dhëna, përfshirë në zonat që përdoren për llogaritjet në enklavat e izoluara Intel SGX. Sulmi mori emrin Plundervolt dhe potencialisht i lejon një përdoruesi lokal të fitojë privilegje të rritura në sistem, të shkaktojë një ndalim në shërbim dhe të aksesojë të dhëna të mbrojtura.
Sulmi paraqet rrezik vetëm në kontekstin e manipulimeve me llogaritjet në enklavat SGX, pasi kërkon që të ketë të drejta root në sistem për të u realizuar. Në rastin më të thjeshtë, sulmuesi mund të arrijë të shkaktojë keqformime në informacionin që përpunon në enklavë, por në skenarë më të komplikuar nuk përjashtohet mundësia e rikrijimit të çelësave të mbyllura të ruajtur në enklavë, që përdoren për enkriptim duke përdorur algoritmet RSA-CRT dhe AES-NI. Teknikat gjithashtu mund të përdoren për të gjeneruar gabime në algoritme fillimisht korrekte për të provokuar shfaqjen e dobësive gjatë punës me memorien, për shembull, për të organizuar aksesin në një zonë jashtë memorie të rezervuar.
Prototipi i kodit për të kryer sulmin në GitHub
Qëllimi i metodës është krijimi i kushteve për shfaqjen e keqformimeve të papritura të të dhënave gjatë llogaritjeve në SGX, për të cilat nuk mbron përdorimi i enkriptimit dhe autentifikimit të memories në enklavë. Për të shkaktuar keqformime, rezultoi se ishte e mundur të përdoren ndërfaqet programore standarde për menaxhimin e frekuencës dhe tensionit, zakonisht të aplikuara për të zvogëluar konsumimin e energjisë gjatë periudhave të papunësisë dhe për të aktivizuar performancën maksimale gjatë punëve intensive. Karakteristikat e frekuencës dhe tensionit përfshijnë të gjithë çipin, duke ndikuar gjithashtu në realizimin e llogaritjeve në enklavën e isoluar.
Duke ndryshuar tensionin, është e mundur të arrihet krijimi i kushteve, në të cilat ngarkesa nuk është e mjaftueshme për rigjenerimin e qelizës së memories brenda CPU-së, dhe vlera e saj ndryshon. Dallimi kryesor nga sulmi është se RowHammer lejon ndryshimin e përmbajtjes së bitëve individualë në memorien DRAM, duke lexuar në cikle të dhënat nga qelizat fqinje, ndërsa Plundervolt lejon ndryshimin e bitëve brenda CPU-së, kur të dhënat tashmë janë ngarkuar nga memoria për të realizuar llogaritje. Kjo veçori lejon anashkalimin e mekanizmave të kontrollit të integritetit dhe enkriptimit të të dhënave në SGX, pasi vlerat në memorie mbeten korrekte, por mund të keqformohen gjatë operacioneve me to, para se rezultati të shkruhet në memory.
Nëse ky vlerësim i ndryshuar përdoret gjatë procesit të mnozjes në procesin e enkriptimit, atëherë në daljen refuzohet një tekst i enkriptuar të pasaktë. Duke pasur mundësinë për të aksesuar trajtuesin në SGX për të enkriptuar të dhënat e tij, një sulmues mund të akumulojë statistikë mbi ndryshimin e teksteve të enkriptuar në dalje dhe, brenda disa minutash, të rikonstruktojë vlerën e çelësit të ruajtur në enklavë. Teksti origjinal në hyrje dhe teksti i enkriptuar i saktë në dalje janë të njohur, çelësi nuk ndryshohet, dhe dështimi për të dalë një tekst të enkriptuar të pasaktë tregon për shkallëve të caktuar të modifikimit të një biti në vlerën e kundërt.
Pas analizimit të çifteve të akumuluara të vlerave të sakta dhe të modifikuara të teksteve të enkriptuara, me ndihmën e metodave të analizës diferenciale të gabimeve (DFA, ) mund të çelësat e mundshëm që aplikohen për enkriptimin simetrik AES, dhe më pas, duke analizuar ndërprerjet e çelësave në grupe të ndryshme, të përcaktohet çelësi i kërkuar.

Problemi është i pranishëm në modele të ndryshme të procesorëve Intel, duke përfshirë CPU-intel Core me 6
në 10 brez, si dhe brezat e pestë dhe të sixhtë Xeon E3, brezat e parë dhe të dytë të Intel Xeon Scalable, Xeon D,
Xeon W dhe Xeon E.
KujtojmĂ« se teknologjia SGX () u shfaq nĂ« procesorĂ«t Intel Core tĂ« gjeneratĂ«s sĂ« gjashtĂ« (Skylake) dhe serinĂ« e instrukcioneve qĂ« i lejojnĂ« aplikacioneve nĂ« nivel pĂ«rdoruesi tĂ« ndajnĂ« zona tĂ« mbyllura memorie â enklava, pĂ«rmbajtja e tĂ« cilave nuk mund tĂ« lexohet dhe modifikohet as nga bĂ«rthama dhe kodi qĂ« ekzekutohet nĂ« modet ring0, SMM dhe VMM. TĂ« kalosh kontrollin te kodi nĂ« enklavĂ« nuk Ă«shtĂ« e mundur pĂ«rmes funksioneve tradicionale tĂ« kalimit dhe manipulimeve me regjistrat dhe stekun â pĂ«r tĂ« kaluar kontrollin nĂ« enklavĂ« pĂ«rdoret njĂ« instrukcion i ri i krijuar posaçërisht qĂ« kryen njĂ« verifikim tĂ« autoriteteve. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, kodi i vendosur nĂ« enklavĂ« mund tĂ« pĂ«rdorĂ« metoda klasike thirrjeje pĂ«r tĂ« aksesuar funksionet brenda enklavĂ«s dhe njĂ« instrukcion tĂ« veçantĂ« pĂ«r tĂ« thirrur funksione tĂ« jashtme. PĂ«r tĂ« mbrojtur nga sulmet harduerike, si lidhja me modulin DRAM, zbatohen teknikat e enkriptimit tĂ« memorjes sĂ« enklavĂ«s.
Burimi: opennet.ru
