Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Fel y gwyddoch, mae'r cod a weithredir yn yr amgaead wedi'i gyfyngu'n ddifrifol o ran ei ymarferoldeb. Ni all wneud galwadau system. Ni all gyflawni gweithrediadau I/O. Nid yw'n gwybod cyfeiriad sylfaenol segment cod y cais gwesteiwr. Ni all jmp na galw cod cais gwesteiwr. Nid oes ganddo unrhyw syniad am y strwythur gofod cyfeiriad sy'n llywodraethu'r cais gwesteiwr (er enghraifft, pa dudalennau sydd wedi'u mapio neu pa fath o ddata sydd wedi'i leoli ar y tudalennau hynny). Ni all ofyn i'r system weithredu fapio darn o gof y rhaglen westeiwr iddo (er enghraifft, trwy /proc/pid/maps). Bydd ymdrechion naïf i ddarllen rhanbarth cof mympwyol cais gwesteiwr yn ddall, heb sôn am ymdrechion i ysgrifennu, yn hwyr neu'n hwyrach (y cyntaf yn fwyaf tebygol) yn arwain at derfynu gorfodol y rhaglen amgaead. Mae hyn yn digwydd pryd bynnag y bydd y rhanbarth gofod cyfeiriad rhithwir y mae'r amgaead yn gofyn amdano yn anhygyrch i'r rhaglen gwesteiwr.

O ystyried realiti mor llym, a fydd awdur firws yn gallu defnyddio cilfachau SGX i gyflawni ei nodau maleisus?

– Haciwch ar gyfer cyfeiriadau treiddgar i weld a oes modd eu darllen
– Hacio i archwilio cyfeiriadau am ysgrifenadwyedd
– Hacio i ailgyfeirio llif rheoli
– Beth mae’r tri hac a restrir uchod yn ei roi i’r dihiryn?
- Sut mae'r dihiryn yn defnyddio'r haciau hyn i greu ranzowari

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Yn seiliedig ar bob un o'r uchod, derbynnir yn gyffredinol mai dim ond y cais gwesteiwr y gall amgaead ei wneud, ac na all y cilfach ymarfer ei fenter ei hun, gan gynnwys rhai maleisus. Mae hyn yn golygu nad yw clofiau o unrhyw werth ymarferol i ysgrifenwyr firws. Mae'r dybiaeth frysiog hon yn un o'r rhesymau pam mae amddiffyniad SGX yn anghymesur: ni all cod cais gwesteiwr gael mynediad at gof enclave, tra gall cod enclave ddarllen ac ysgrifennu i unrhyw gyfeiriad cof cais gwesteiwr.

Felly, pe bai cod enclave maleisus yn gallu gwneud galwadau system mympwyol ar ran y cymhwysiad gwesteiwr, gweithredu cod mympwyol ar ei ran, sganio cof y cymhwysiad gwesteiwr a dod o hyd i gadwyni ROP y gellir eu cam-drin ynddo, gallai atafaelu rheolaeth lwyr ar gais gwesteiwr, yn modd llechwraidd. Gall nid yn unig ddwyn ac amgryptio ffeiliau defnyddwyr, ond hefyd weithredu ar ran y defnyddiwr. Er enghraifft, anfon e-byst gwe-rwydo ar ei ran neu gynnal ymosodiadau DoS. Heb ofni hyd yn oed y mecanweithiau amddiffynnol mwyaf modern, fel caneri stac a glanweithdra cyfeiriadau.

Byddwn yn dangos ychydig o haciau i chi y mae ymosodwyr yn eu defnyddio i oresgyn y cyfyngiadau a ddisgrifir uchod i fanteisio ar SGX at eu dibenion maleisus eu hunain: ymosodiadau ROP. Naill ai i weithredu cod mympwyol sy'n cael ei guddio fel proses ymgeisio gwesteiwr (tebyg i brosesu pantiau, a ddefnyddir yn aml gan malware), neu i guddio malware parod (i arbed ei ddrwgwedd rhag erledigaeth gan wrthfeirysau a mecanweithiau amddiffyn eraill).

Haciwch ar gyfer cyfeiriadau treiddgar i weld a oes modd eu darllen

Gan nad yw'r amgaead yn gwybod pa ystodau o'r gofod cyfeiriad rhithwir sy'n hygyrch i'r cymhwysiad gwesteiwr, a chan fod yr amgaead yn cael ei orfodi i ddod i ben wrth geisio darllen cyfeiriad anhygyrch, mae'r ymosodwr yn wynebu'r dasg o ddod o hyd i ffordd i nam- sganiwch y gofod cyfeiriad yn oddefgar. Dod o hyd i ffordd i fapio'r cyfeiriadau rhithwir sydd ar gael. Mae'r dihiryn yn datrys y broblem hon trwy gamddefnyddio technoleg TSX Intel. Yn defnyddio un o sgîl-effeithiau TSX: os yw'r swyddogaeth mynediad cof yn cael ei roi mewn trafodiad TSX, yna mae eithriadau sy'n deillio o gael mynediad i gyfeiriadau annilys yn cael eu hatal gan TSX heb gyrraedd y system weithredu. Os gwneir ymgais i gael mynediad at gyfeiriad cof annilys, dim ond y trafodiad cyfredol sy'n cael ei erthylu, nid y rhaglen amgáu gyfan. Hynny. Mae TSX yn caniatáu i gilfach gael mynediad diogel i unrhyw gyfeiriad o fewn trafodiad - heb y risg o gwympo.

Os mae'r cyfeiriad penodedig ar gael cais gwesteiwr, y trafodiad TSX yn fwyaf aml yn llwyddiannus. Mewn achosion prin, gall fethu oherwydd dylanwadau allanol megis ymyriadau (fel ymyriadau trefnydd), dadfeddiannu storfa, neu addasu lleoliad cof ar yr un pryd trwy brosesau lluosog. Yn yr achosion prin hyn, mae'r TSX yn dychwelyd cod gwall sy'n nodi mai methiant dros dro yw'r methiant. Yn yr achosion hyn, does ond angen i chi ailgychwyn y trafodiad.

Os nid yw'r cyfeiriad penodedig ar gael cais gwesteiwr, mae TSX yn atal yr eithriad a ddigwyddodd (nid yw'r OS yn cael ei hysbysu) ac yn erthylu'r trafodiad. Mae cod gwall yn cael ei ddychwelyd i'r cod amgaead fel y gall ymateb i'r ffaith bod y trafodiad wedi'i ganslo. Mae'r codau gwall hyn yn nodi nad yw'r cyfeiriad dan sylw ar gael i'r rhaglen gwesteiwr.

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Mae gan y driniaeth hon o TSX o'r tu mewn i'r cilfach nodwedd braf i'r dihiryn: gan nad yw'r rhan fwyaf o gownteri perfformiad caledwedd yn cael eu diweddaru ar yr adeg y gweithredir y cod amgaead, mae'n amhosibl olrhain trafodion TSX a gyflawnir y tu mewn i'r amgaead. Felly, mae trin y TSX yn faleisus yn parhau i fod yn gwbl anweledig i'r system weithredu.

Yn ogystal, gan nad yw'r darnia uchod yn dibynnu ar unrhyw alwadau system, ni ellir ei ganfod na'i atal trwy rwystro galwadau system yn unig; sydd fel arfer yn rhoi canlyniad cadarnhaol yn y frwydr yn erbyn hela wyau.

Mae'r dihiryn yn defnyddio'r darnia a ddisgrifir uchod i chwilio'r cod cais gwesteiwr ar gyfer teclynnau sy'n addas ar gyfer ffurfio cadwyn ROP. Ar yr un pryd, nid oes angen iddo archwilio pob cyfeiriad. Mae'n ddigon i archwilio un cyfeiriad o bob tudalen o'r gofod cyfeiriad rhithwir. Mae archwilio pob un o'r 16 gigabeit o gof yn cymryd tua 45 munud (ar Intel i7-6700K). O ganlyniad, mae'r dihiryn yn derbyn rhestr o dudalennau gweithredadwy sy'n addas ar gyfer adeiladu cadwyn ROP.

Hac ar gyfer treiddgar cyfeiriadau ar gyfer ysgrifenadwyedd

Er mwyn cynnal fersiwn cilfach o ymosodiad ROP, mae angen i ymosodwr allu chwilio am feysydd cof annefnyddiadwy y gellir eu hysgrifennu o'r cymhwysiad gwesteiwr. Mae'r ymosodwr yn defnyddio'r lleoliadau cof hyn i chwistrellu ffrâm pentwr ffug ac i chwistrellu llwyth tâl (cod cragen). Y gwir amdani yw nad yw amgaead maleisus yn gallu ei gwneud yn ofynnol i'r cymhwysiad gwesteiwr ddyrannu cof iddo'i hun, ond yn lle hynny gall gamddefnyddio cof a ddyrannwyd eisoes gan y rhaglen gwesteiwr. Os, wrth gwrs, mae'n llwyddo i ddod o hyd i ardaloedd o'r fath heb gwympo'r cilfach.

Mae'r dihiryn yn gwneud y chwiliad hwn trwy fanteisio ar sgil-effaith arall TSX. Yn gyntaf, fel yn yr achos blaenorol, mae'n archwilio'r cyfeiriad am ei fodolaeth, ac yna'n gwirio a yw'r dudalen sy'n cyfateb i'r cyfeiriad hwn yn ysgrifenadwy. I wneud hyn, mae'r dihiryn yn defnyddio'r darnia canlynol: mae'n gosod swyddogaeth ysgrifennu mewn trafodiad TSX, ac ar ôl iddo gael ei gwblhau, ond cyn iddo gael ei gwblhau, mae'n erthylu'r trafodiad yn rymus (erthyliad penodol).

Trwy edrych ar y cod dychwelyd o drafodiad TSX, mae'r ymosodwr yn deall a yw'n ysgrifenadwy. Os yw'n "erthyliad penodol", mae'r dihiryn yn deall y byddai'r recordiad wedi bod yn llwyddiannus pe bai wedi ei ddilyn. Os yw'r dudalen yn ddarllenadwy yn unig, yna daw'r trafodiad i ben gyda gwall heblaw "erthyliad penodol".

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Mae gan y driniaeth hon o TSX nodwedd arall sy'n braf i'r dihiryn (ar wahân i'r amhosibl olrhain trwy gownteri perfformiad caledwedd): gan fod yr holl orchmynion ysgrifennu cof wedi'u hymrwymo dim ond os yw'r trafodiad yn llwyddiannus, mae gorfodi'r trafodiad i'w gwblhau yn sicrhau bod y gell cof wedi'i archwilio yn parhau heb ei newid.

Darnia i ailgyfeirio llif rheoli

Wrth berfformio ymosodiad ROP o gilfach - yn wahanol i ymosodiadau ROP traddodiadol - gall yr ymosodwr ennill rheolaeth ar y gofrestr RIP heb ecsbloetio unrhyw fygiau yn y rhaglen yr ymosodwyd arno (gorlif byffer neu rywbeth felly). Gall ymosodwr drosysgrifo'n uniongyrchol werth y gofrestr RIP sydd wedi'i storio ar y pentwr. Yn benodol, gall ddisodli gwerth y gofrestr hon gyda'i gadwyn ROP ei hun.

Fodd bynnag, os yw'r gadwyn ROP yn hir, yna gall trosysgrifo darn mawr o bentwr y cais gwesteiwr arwain at lygredd data ac ymddygiad rhaglen annisgwyl. Nid yw'r dihiryn, sy'n ceisio cyflawni ei ymosodiad yn gudd, yn fodlon ar y sefyllfa hon. Felly, mae'n creu ffrâm simnai ffug dros dro iddo'i hun ac yn storio ei gadwyn ROP ynddo. Rhoddir ffrâm y pentwr ffug mewn lleoliad cof ysgrifenadwy ar hap, gan adael y pentwr go iawn yn gyfan.

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Beth mae'r tri hac a restrir uchod yn ei roi i'r dihiryn?

(1) Yn gyntaf, yr enclave maleisus trwy darnia am gyfeiriadau treiddgar i weld a oes modd eu darllen, – yn chwilio'r cymhwysiad gwesteiwr am declynnau ROP y gellir eu cam-drin.

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

(2) Yna gan darnia ar gyfer archwilio cyfeiriadau ar gyfer ysgrifenadwyedd, – mae amgaead maleisus yn nodi ardaloedd yng nghof y rhaglen westeiwr sy'n addas ar gyfer chwistrellu llwyth tâl.

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

(3) Nesaf, mae'r amgaead yn creu cadwyn ROP o'r teclynnau a ddarganfuwyd yng ngham (1) ac yn chwistrellu'r gadwyn hon i mewn i'r pentwr cais gwesteiwr.

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

(4) Yn olaf, pan fydd y cais gwesteiwr yn dod ar draws y gadwyn ROP a grëwyd yn y cam blaenorol, mae'r llwyth tâl maleisus yn dechrau gweithredu - gyda breintiau'r cais gwesteiwr a'r gallu i wneud galwadau system.

Sut mae dihiryn yn defnyddio'r haciau hyn i greu ranzowari

Ar ôl i'r cymhwysiad gwesteiwr drosglwyddo rheolaeth i'r amgaead trwy un o'r ECALLs (heb amau ​​​​bod yr amgaead hwn yn faleisus), mae'r amgaead maleisus yn chwilio am ofod rhydd yng nghof y cymhwysiad gwesteiwr ar gyfer cod chwistrellu (gan gymryd fel bylchau rhydd y dilyniannau hynny o gelloedd sy'n llenwi â sero). Yna drwodd darnia am gyfeiriadau treiddgar i weld a oes modd eu darllen, – mae'r amgaead yn chwilio am dudalennau gweithredadwy yn y cymhwysiad gwesteiwr ac yn cynhyrchu cadwyn ROP sy'n creu ffeil newydd o'r enw “RANSOM” yn y cyfeiriadur cyfredol (mewn ymosodiad go iawn, mae'r amgryptio yn amgryptio ffeiliau defnyddwyr presennol) ac yn arddangos neges pridwerth. Ar yr un pryd, mae'r cais gwesteiwr yn credu'n naïf mai dim ond ychwanegu dau rif yw'r amgaead. Sut olwg sydd ar hyn yn y cod?

Er hwylustod, gadewch i ni gyflwyno rhai cofyddiaeth trwy'r diffiniadau:

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Rydym yn arbed gwerthoedd gwreiddiol y cofrestrau RSP a RBP er mwyn adfer gweithrediad arferol y cais gwesteiwr ar ôl gweithredu'r llwyth tâl:

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Rydym yn chwilio am ffrâm pentwr addas (gweler y cod o'r adran “hacio ar gyfer ailgyfeirio llif rheoli”).

Dod o hyd i declynnau ROP addas:

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Dod o hyd i le i chwistrellu'r llwyth tâl:

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Rydym yn adeiladu cadwyn ROP:

Malwedd SGX: sut mae dihirod yn ecsbloetio’r dechnoleg Intel newydd at ddibenion heblaw’r rhai y’i lluniwyd ar eu cyfer

Dyma sut mae technoleg SGX Intel, a gynlluniwyd i wrthsefyll rhaglenni maleisus, yn cael ei hecsbloetio gan ddihirod i gyflawni nodau cyferbyniol.

Ffynhonnell: hab.com

Ychwanegu sylw