Êrîşî Intel SGX bikin da ku daneyên hesas derxînin an kodê di nav dorpêçek de bicîh bikin

Lêkolînerên ji Zanîngeha Zanist û Teknolojiyê ya Parastinê ya Artêşa Rizgariya Gel, Zanîngeha Neteweyî ya Singapore û ETH Zurich, rêbazek nû ya êrîşa li ser deverên veqetandî Intel SGX (EXtensions Normal Guard) pêşve xistin. Êrîş jê re SmashEx tê gotin û dema ku di dema xebitandina hêmanên dema xebitandinê de ji bo Intel SGX-ê bi rewşên awarte re mijûl dibe, ji ber pirsgirêkên vegerê çêdibe. Rêbaza êrîşê ya pêşniyarkirî gengaz dike, heke we li ser pergala xebitandinê kontrol bike, hûn daneyên nepenî yên ku di hundurê dorpêçê de ne diyar bikin, an jî kopîkirina koda xwe di bîra enklave û pêkanîna wê de organîze bikin.

Prototîpên Exploit ji bo enclaves bi dema xebitandinê li ser bingeha Intel SGX SDK (CVE-2021-0186) û Microsoft Open Enclave (CVE-2021-33767) hatine amadekirin. Di doza yekem de, şiyana derxistina mifteya RSA ya ku li ser serverek webê ji bo HTTPS-ê hatî bikar anîn hate destnîşan kirin, û di ya duyemîn de, gengaz bû ku naveroka ku ji hêla kargêriya cURL ve di hundurê dorpêçê de dimeşe were destnîşankirin. Qelsî jixwe di bernameyên Intel SGX SDK 2.13 û Open Enclave 0.17.1 de bi bername ve hatî çareser kirin. Ji bilî Intel SGX SDK û Microsoft Open Enclave, qelsî di Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX û Veracruz de jî xuya dike.

Werin em bînin bîra xwe ku teknolojiya SGX (Pêveçûnên Parastina Nermalavê) di nifşê şeşemîn pêvajoyên Intel Core (Skylake) de xuya bû û rêzek rêwerzan pêşkêşî dike ku destûrê dide serîlêdanên asta bikarhêner ku deverên bîranîna girtî veqetînin - enclaves, ku naveroka wan nayê xwendin û Tewra ji hêla kernel û koda ku di modên ring0, SMM û VMM de hatî darve kirin jî hatî guhertin. Ne mumkun e ku meriv kontrolê bi kodê di hundurê dorpêçê de bi karanîna fonksiyonên bazdana kevneşopî û manîpulasyonên bi tomar û stêkê veguhezîne - rêwerzên nû yên bi taybetî hatine afirandin EENTER, EEXIT û ERESUME ji bo veguheztina kontrolê li dorpêçê, ku kontrolên desthilatdariyê pêk tîne, têne bikar anîn. 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.

Êrîşî Intel SGX bikin da ku daneyên hesas derxînin an kodê di nav dorpêçek de bicîh bikin

Pirsgirêk ev e ku teknolojiya SGX destûrê dide pergala xebitandinê ku bi avêtina îstîsnayek hardware ve dorpêçek rawestîne, û enclaves bi rêkûpêk primitives ji bo birêvebirina atomî yên weha îstisnayan bicîh nakin. Berevajî kernelê pergala xebitandinê û serîlêdanên birêkûpêk, koda di hundurê enclaves de ji bo organîzekirina kiryarên atomî dema ku îstîsnayên ku bi asynkronî têne avêtin de bigihîjin primitives. Bêyî primitivesên atomê yên diyarkirî, enclave dikare di her kêliyê de were qut kirin û vegere darvekirinê, tewra di demên ku enclave beşên krîtîk pêk tîne û di rewşek ne ewledar de ye (mînak, dema ku qeydên CPU neyên tomarkirin / vegerandin).

Êrîşî Intel SGX bikin da ku daneyên hesas derxînin an kodê di nav dorpêçek de bicîh bikin

Ji bo xebitandina normal, teknolojiya SGX dihêle ku darvekirina enclave ji hêla îstîsnayên hardware vesazkirî ve were qut kirin. Ev taybetmendî dihêle ku hawîrdorên dema xebitandinê yên dorpêçkirî bicîh bikin ku destwerdana îstîsna an pêvajoyek nîşanê ya hundurîn-dorpêç bikin, lê ew di heman demê de dibe sedema xeletiyên veguhestinê jî. Êrîşa SmashEx li ser bingeha karanîna xeletiyên di SDK-ê de ye, ji ber vê yekê rewşa ji nû ve bangkirina îstîsnayê bi rêkûpêk nayê rêve kirin. Girîng e ku ji bo îstîsmarkirina qelsiyê, divê êrîşkar karibe cîbicîkirina dorpêçê qut bike, ango. divê operasyona hawirdora pergalê kontrol bike.

Piştî avêtina îstîsnayekê, êrîşkar pencereyek demkî ya piçûk distîne ku tê de xêza darvekirinê dikare bi manîpulekirina pîvanên têketinê were girtin. Bi taybetî, heke hûn xwe bigihînin pergalê (hawirdora derveyî dorpêçê), hûn dikarin tavilê piştî pêkanîna talîmata ketina enklavê (EENTER) îstîsnayek nû biafirînin, ku ew ê di qonaxek ku sazkirina stikê ji bo enclave hîna temam nebûye, ku tê de Rewşa qeydên CPU jî tê xilas kirin.

Dûv re pergal dikare kontrolê vegerîne dorhêlê, lê ji ber ku stûna dorpêçê di dema qutbûnê de nehate mîheng kirin, dê enklave bi stûna ku di bîranîna pergalê de rûdine, bixebite, ku dikare were bikar anîn da ku bernameya veger-oriented (ROP ) teknîkên îstismarkirinê. Bernamesaziya Oriented). Dema ku teknîka ROP-ê bikar tîne, êrîşkar hewl nade ku koda xwe di bîranînê de bi cîh bike, lê li ser perçeyên rêwerzên makîneyê yên ku berê di pirtûkxaneyên barkirî de hene, tevdigere, bi rêwerzek vegerê ya kontrolê bi dawî dibe (wekî qaîdeyek, ev dawiya fonksiyonên pirtûkxaneyê ne) . Karê îstîsmarê bi avakirina zincîreyek bangên blokên wekhev ("gadgets") tê da ku fonksiyona xwestinê bi dest bixe.

Êrîşî Intel SGX bikin da ku daneyên hesas derxînin an kodê di nav dorpêçek de bicîh bikin
Êrîşî Intel SGX bikin da ku daneyên hesas derxînin an kodê di nav dorpêçek de bicîh bikin


Source: opennet.ru

Add a comment