Plundervolt estas nova atakmetodo sur Intel-procesoroj, kiu influas SGX-teknologion

Intel liberigita mikrokoda ĝisdatigo kiu korektas vundebleco (CVE-2019-14607) permesante per manipulado de la dinamika tensio kaj frekvenca kontrolmekanismo en la CPU, iniciatu damaĝon al la enhavo de datumĉeloj, inkluzive en areoj uzataj por kalkuloj en izolitaj Intel SGX-enklavoj. La atako nomiĝas Plundervolt, kaj eble permesas al loka uzanto pligrandigi siajn privilegiojn sur la sistemo, kaŭzi neon de servo kaj akiri aliron al sentemaj datumoj.

La atako estas danĝera nur en la kunteksto de manipuladoj kun kalkuloj en SGX-enklavoj, ĉar ĝi postulas radikrajtojn en la sistemo por efektivigi. En la plej simpla kazo, atakanto povas atingi misprezenton de la informoj prilaboritaj en la enklavo, sed en pli kompleksaj scenaroj, la ebleco rekrei la privatajn ŝlosilojn stokitaj en la enklavo uzata por ĉifrado uzante la algoritmojn RSA-CRT kaj AES-NI ne estas. ekskludita. La tekniko ankaŭ povas esti uzita por generi erarojn en komence ĝustaj algoritmoj por provoki vundeblecojn dum laborado kun memoro, ekzemple, por organizi aliron al areo ekster la limo de la asignita bufro.
Prototipa kodo por fari atakon eldonita sur GitHub

La esenco de la metodo estas krei kondiĉojn por la apero de neatenditaj datumaj koruptoj dum kalkuloj en SGX, kontraŭ kiuj la uzo de ĉifrado kaj memoro-aŭtentikigo en la enklavo ne protektas. Por enkonduki distordon, montriĝis, ke eblis uzi normajn programajn interfacojn por kontroli frekvencon kaj tensio, kutime uzatajn por redukti la konsumon de elektro dum la senaktiva tempo de la sistemo kaj aktivigi maksimuman rendimenton dum intensa laboro. Frekvencaj kaj tensiokarakterizaĵoj ampleksas la tutan blaton, inkluzive de la efiko de komputado en izolita enklavo.

Ŝanĝante la tension, vi povas krei kondiĉojn sub kiuj la ŝargo ne sufiĉas por regeneri memorĉelon ene de la CPU, kaj ĝia valoro ŝanĝiĝas. Ŝlosila diferenco de atako RowHammer estas, ke RowHammer permesas ŝanĝi la enhavon de individuaj bitoj en DRAM-memoro cikle legante datumojn de najbaraj ĉeloj, dum Plundervolt permesas ŝanĝi bitojn ene de la CPU kiam la datumoj jam estis ŝarĝitaj el memoro por komputado. Ĉi tiu funkcio ebligas al vi preterpasi la integreckontrolon kaj ĉifradan mekanismojn uzitajn en SGX por datumoj en memoro, ĉar la valoroj en memoro restas ĝustaj, sed povas esti distorditaj dum operacioj kun ili antaŭ ol la rezulto estas skribita en memoron.

Se ĉi tiu modifita valoro estas uzata en la multiplika procezo de la ĉifrada procezo, la produktaĵo estas malakceptita kun malĝusta ĉifroteksto. Havante la kapablon kontakti pritraktilon en SGX por ĉifri ĝiajn datumojn, atakanto povas, kaŭzante fiaskojn, amasigi statistikojn pri ŝanĝoj en la eliga ĉifrteksto kaj, en kelkaj minutoj, restarigi la valoron de la ŝlosilo stokita en la enklavo. La origina eniga teksto kaj la ĝusta eliga ĉifrteksto estas konataj, la ŝlosilo ne ŝanĝiĝas, kaj la eligo de malĝusta ĉifroteksto indikas ke iu bito estis distordita al la kontraŭa valoro.

Analizinte la parojn da valoroj de ĝustaj kaj koruptitaj ĉifrtekstoj akumulitaj dum diversaj misfunkciadoj, uzante metodojn de diferenciga fiasko-analizo (DFA, Diferenca Faŭlto-Analizo) Povas antaŭdiri verŝajnaj ŝlosiloj uzitaj por AES-simetria ĉifrado, kaj tiam, analizante la intersekciĝojn de ŝlosiloj en malsamaj aroj, determini la deziratan ŝlosilon.

Diversaj modeloj de Intel-procesoroj estas trafitaj de la problemo, inkluzive de Intel Core CPUs kun 6
10-a generacio, same kiel la kvina kaj sesa generacioj de Xeon E3, la unua kaj dua generacioj de Intel Xeon Scalable, Xeon D,
Xeon W kaj Xeon E.

Ni memorigu vin, ke SGX-teknologio (Etendoj de Programaj Gardistoj) aperis en la sesa generacio Intel Core procesoroj (Skylake) kaj ofertas serio da instrukcioj, kiuj permesas uzantnivelajn aplikojn asigni fermitajn memorareojn - enklavojn, kies enhavo ne povas esti legita aŭ modifita eĉ per la kerno kaj kodo funkcianta en ring0, SMM kaj VMM-reĝimoj. Estas maleble transdoni kontrolon al la kodo en la enklavo uzante tradiciajn saltajn funkciojn kaj manipuladojn kun registroj kaj la stako; por transdoni kontrolon al la enklavo, speciale kreita nova instrukcio estas uzita kiu elfaras aŭtoritatokontrolon. En ĉi tiu kazo, la kodo metita en la enklavon povas uzi klasikajn vokmetodojn por aliri funkciojn ene de la enklavo kaj specialajn instrukciojn por voki eksterajn funkciojn. Enklava memorĉifrado estas uzata por protekti kontraŭ aparataj atakoj kiel ligado al DRAM-modulo.

fonto: opennet.ru

Aldoni komenton