Plundervolt rêbazek êrîşa nû ya li ser pêvajoyên Intel-ê ye ku bandorê li teknolojiya SGX dike

Intel berdan nûvekirina mîkrokodê ​​ku rast dike lawazbûn (CVE-2019-14607) destûr dide bi manîpulasyona mekanîzmaya kontrolkirina voltaja û frekansê ya dînamîkî ya di CPU-yê de, zirarê dide naveroka hucreyên daneyê, di nav de li deverên ku ji bo hesaban di dorpêçên Intel SGX yên veqetandî de têne bikar anîn. Êrîş bi navê Plundervolt tê gotin, û bi potansiyel destûrê dide bikarhênerek herêmî ku îmtiyazên xwe li ser pergalê zêde bike, bibe sedema înkarkirina karûbarê û gihîştina daneyên hesas.

Êrîş tenê di çarçoweya manîpulasyonên bi hesabên li enklavên SGX de xeternak e, ji ber ku ew ji bo pêkanîna mafên root di pergalê de hewce dike. Di rewşek herî hêsan de, êrîşkarek dikare bigihîje guheztina agahdariya ku di dorpêçê de hatî hilberandin, lê di senaryoyên tevlihevtir de, îhtîmala ji nû ve afirandina mifteyên taybet ên ku di enclaveyê de ji bo şîfrekirinê têne hilanîn bi karanîna algorîtmayên RSA-CRT û AES-NI ne. ji holê rakirin. Di heman demê de teknîk dikare were bikar anîn da ku di destpêkê de algorîtmayên rast xelet çêbike da ku dema ku bi bîranînê re dixebitin qelsiyan provoke bike, mînakî, ji bo organîzekirina gihîştina deverek li derveyî sînorê tampona veqetandî.
Koda prototîpa ji bo pêkanîna êrîşê weşandin li ser GitHub

Esasê rêbazê ev e ku meriv şert û mercên ji bo rûdana xerabûna daneya nediyar a di dema hesabên li SGX-ê de çêbike, ku karanîna şîfrekirinê û rastkirina bîranînê di hundurê dorpêçê de naparêze. Ji bo danasîna tehlûkê, derket holê ku ji bo kontrolkirina frekansa û voltaja navgînên nermalava standard bikar bînin, bi gelemperî ji bo kêmkirina xerckirina hêzê di dema betaliya pergalê de û aktîfkirina performansa herî zêde dema ku xebata zexm dikin tê bikar anîn. Taybetmendiyên frekans û voltajê tevaya çîpê vedihewîne, di nav de bandora hesabkirinê ya li dorhêlek veqetandî.

Bi guheztina voltajê, hûn dikarin şert û mercan biafirînin ku di binê wan de barkirin têra nûvekirina şaneyek bîranînê li hundurê CPU nake, û nirxa wê diguhezîne. Cûdahiya sereke ji êrîşê RowHammer ew e ku RowHammer destûrê dide te ku hûn bi xwendina çerxîkî daneya ji hucreyên cîran ve naveroka bitsên kesane yên di bîra DRAM-ê de biguhezînin, dema ku Plundervolt dihêle hûn gava ku dane berê ji bo hesabkirinê ji bîranînê hatine barkirin bitikan di hundurê CPU-yê de biguhezînin. Ev taybetmendî dihêle hûn mekanîzmayên kontrol û şîfrekirinê yên ku di SGX-ê de ji bo daneya di bîranînê de têne bikar anîn derbas bikin, ji ber ku nirxên di bîranînê de rast dimînin, lê di dema operasyonên bi wan re berî ku encam li bîranînê were nivîsandin dikare were xera kirin.

Ger ev nirxa guhertî di pêvajoya pirjimariya pêvajoya şîfrekirinê de were bikar anîn, encam bi şîfretexta nerast tê red kirin. Ji ber ku xwedan şiyana ku têkilî bi rêvebirek di SGX-ê de bike da ku daneyên wê şîfre bike, êrîşkar dikare, bibe sedema têkçûnan, statîstîkên li ser guhertinên di şîfretexta derketinê de berhev bike û, di çend hûrdeman de, nirxa mifteya ku di dorpêçê de hatî hilanîn vegerîne. Nivîsara têketina orîjînal û şîfretexta rast a derketinê têne zanîn, kilît nayê guheztin, û derketina şîfretextek nerast nîşan dide ku hin bit li gorî nirxa berevajî hatiye guheztin.

Bi analîzkirina cotên nirxên şîfretextên rast û xerabûyî yên ku di dema têkçûnên cihêreng de berhev bûne, bi karanîna rêbazên analîza têkçûna cihêreng (DFA, Analysis Fault Differential) dikare pêşdîtin mifteyên muhtemel ên ku ji bo şîfrekirina sîmetrîk AES têne bikar anîn, û dûv re, bi analîzkirina danûstendinên bişkojan di komên cihêreng de, mifteya xwestinê diyar dikin.

Modelên cihêreng ên pêvajoyên Intel ji pirsgirêkê bandor dibin, di nav de CPUyên Intel Core bi 6
Nifşa 10-an, û her weha nifşên pêncemîn û şeşemîn ên Xeon E3, nifşên yekem û duyemîn ên Intel Xeon Scalable, Xeon D,
Xeon W û Xeon E.

Werin em bînin bîra we ku teknolojiya SGX (Extensions Guard Software) di nifşa şeşan de pêvajoyên Intel Core (Skylake) û pêşkêş dike rêzek rêwerzan ku destûrê dide serîlêdanên di asta bikarhêner de ku deverên bîranîna girtî veqetînin - enclaves, naveroka wan jî ji hêla kernel û koda ku di modên ring0, SMM û VMM de dixebitin neyên xwendin an guheztin. Ne mumkun e ku bi karanîna fonksiyonên bazdana kevneşopî û manîpulasyonên bi qeyd û stêkê ve kontrolê bi koda navokê veguhezîne; ji bo veguheztina kontrolê li enclaveyê, rêwerzek nû ya taybetî hatî afirandin tête bikar anîn ku kontrolek desthilatdariyê dike. Di vê rewşê de, koda ku di enklave de hatî danîn dikare rêbazên bangewaziya klasîk bikar bîne da ku bigihîje fonksiyonên hundurê dorpêçê û rêwerzên taybetî ji bo bangkirina fonksiyonên derveyî bikar bîne. Şîfrekirina bîranîna enclave ji bo parastina li dijî êrîşên hardware yên wekî girêdana bi modulek DRAM-ê ve tê bikar anîn.

Source: opennet.ru

Add a comment