SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Dakizuenez, enklabean exekutatutako kodea oso mugatuta dago bere funtzionaltasunean. Ezin du sistema deirik egin. Ezin ditu I/O eragiketak egin. Ez du ezagutzen ostalari-aplikazioaren kode-segmentuaren oinarrizko helbidea. Ezin du ostalariaren aplikazioaren kodea jmp edo deitu. Ez du ideia ostalari aplikazioa gobernatzen duen helbide-espazioen egiturari buruz (adibidez, zein orrialde dauden mapatzen diren edo zer nolako datuak dauden orrialde horietan). Ezin dio sistema eragileari eskatu ostalari-aplikazioaren memoriaren zati bat hari mapa dezala (adibidez, /proc/pid/maps bidez). Ostalari-aplikazioaren memoria-eskualde arbitrario bat itsu-itsuan irakurtzeko saiaker inozoek, idazteko saiakerak ez aipatzearren, lehenago edo beranduago (ziurrenik lehenak) enklabe programaren amaiera behartua ekarriko dute. Hau gertatzen da enklabeak eskatutako helbide-espazio birtualaren eskualdea ostalari aplikazioarentzat eskuraezin dagoen bakoitzean.

Hain errealitate gogorrak ikusita, birusen idazle batek SGX enklabeak erabili ahal izango al ditu bere helburu gaiztoak lortzeko?

– Hack helbideak aztertzeko, irakur daitezkeen ikusteko
– Hack helbideak idazteko gaitasuna aztertzeko
– Hack kontrol-fluxua birbideratzeko
– Zer ematen diote goian zerrendatutako hiru hackek gaiztoari?
– Gaizkileak nola erabiltzen dituen hack hauek ranzowari sortzeko

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Aurreko guztia kontuan hartuta, orokorrean onartzen da enklabe bat ostalari-aplikazioa zerbitzatzeko gai dela soilik, eta enklabeak ezin duela bere ekimenez baliatu, maltzurrenak barne. Horrek esan nahi du enklabeek ez dutela balio praktikorik birusen idazleentzat. Suposizio azkar hau SGX babesa asimetrikoa izatearen arrazoietako bat da: ostalari-aplikazioaren kodeak ezin du enklabe-memoria atzitu, eta enklabe-kodeak ostalari-aplikazioaren edozein memoria helbidetara irakurri eta idatzi dezakeen bitartean.

Hori dela eta, enklabe kode gaiztoak ostalari-aplikazioaren izenean sistema-deiak arbitrarioak egiteko gai izan balira, haren izenean kode arbitrarioa exekutatu, ostalari-aplikazioaren memoria eskaneatu eta bertan ROP kate abusuak aurkitzeko, ostalari-aplikazioaren kontrol osoa har lezake. ezkutuko modua. Erabiltzaileen fitxategiak lapurtu eta enkriptatu ez ezik, erabiltzailearen izenean ere jardun dezake. Adibidez, bidali phishing-mezuak bere izenean edo egin DoS erasoak. Babes-mekanismorik modernoenei beldurrik gabe, hala nola, kanariak pilatu eta saneamenduari aurre egiteko.

Erasotzaileek goian deskribatutako mugak gainditzeko erabiltzen dituzten hack batzuk erakutsiko dizkizugu SGX-a beren helburu maltzuretarako aprobetxatzeko: ROP erasoak. Ostalari-aplikazio-prozesu gisa mozorrotutako kode arbitrarioa exekutatzeko (prozesaren zuloaren antzekoa, malwareak askotan erabiltzen duena), edo prest egindako malware bat mozorrotzeko (bere malwarea birusen aurkako eta beste defentsa-mekanismo batzuen jazarpenetik salbatzeko).

Hack helbideak aztertzeko, irakur daitezkeen ikusteko

Enklabeak ez dakienez helbide birtualeko zein barruti dauden ostalari-aplikazioarentzat erabilgarri daudenez, eta enklabea iristezina den helbide bat irakurtzen saiatzean amaitzera behartuta dagoenez, erasotzaileak huts egiteko modua aurkitzeko zeregina du. eskaneatu tolerantziaz helbide-espazioa. Bilatu eskuragarri dauden helbide birtualak mapatzeko modu bat. Gaiztoak arazo hau konpontzen du Intel-en TSX teknologia gaizki erabiliz. TSX-ren albo-ondorioetako bat erabiltzen du: memoria sartzeko funtzioa TSX transakzio batean jartzen bada, orduan baliogabeko helbideetara sartzean sortutako salbuespenak ezabatzen ditu TSX-k sistema eragilera iritsi gabe. Memoria baliogabeko helbide batera sartzeko saiakera egiten bada, uneko transakzioa soilik bertan behera utziko da, ez enklabe programa osoa. Hori. TSX-k enklabe bati transakzio baten barruko edozein helbide modu seguruan sartzeko aukera ematen dio, kolapsatzeko arriskurik gabe.

Bada zehaztutako helbidea eskuragarri dago ostalariaren aplikazioa, TSX transakzioak arrakasta izaten du gehienetan. Kasu bakanetan, huts egin dezake kanpoko eraginen ondorioz, hala nola, etenaldiak (adibidez, programatzaileen etenaldiak), cachearen desalojoa edo prozesu anitzek memoriaren kokapena aldi berean aldatzea. Kasu bakan hauetan, TSX-k errore-kode bat itzultzen du, hutsegitea aldi baterako dela adieraziz. Kasu horietan, transakzioa berrabiarazi besterik ez duzu egin behar.

Bada zehaztutako helbidea ez dago erabilgarri ostalariaren aplikazioa, TSX-k gertatutako salbuespena ezabatzen du (OS-ari ez zaio jakinarazi) eta transakzioa bertan behera uzten du. Errore-kode bat itzultzen da enklabe-kodera, transakzioa bertan behera utzi izanaren aurrean erreakzionatu dezan. Errore-kode hauek adierazten dute kasuan kasuko helbidea ez dagoela erabilgarri ostalariaren aplikazioarentzat.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Enklabe barrutik TSX-ren manipulazio honek ezaugarri polita du gaiztoarentzat: hardwarearen errendimendu-kontagailu gehienak enklabe kodea exekutatzen den unean eguneratzen ez direnez, ezinezkoa da enklabe barruan exekutatzen diren TSX transakzioen jarraipena egitea. Horrela, TSX-ren manipulazio gaiztoa guztiz ikusezina da sistema eragilearentzat.

Gainera, goiko hackea sistema-deietan oinarritzen ez denez, ezin da detektatu edo eragotzi sistema-deiak blokeatuz; horrek normalean emaitza positiboa ematen du arrautzaren ehizaren aurkako borrokan.

Gaizkileak goian deskribatutako hack-a erabiltzen du ostalariaren aplikazioaren kodean ROP kate bat osatzeko egokiak diren tramankuluak bilatzeko. Aldi berean, ez ditu helbide guztiak probatu behar. Nahikoa da helbide-espazio birtualeko orrialde bakoitzeko helbide bat zundatzea. 16 gigabyteko memoria guztiak aztertzeak 45 minutu inguru behar ditu (Intel i7-6700K batean). Ondorioz, gaizkileak ROP kate bat eraikitzeko egokiak diren orri exekutagarrien zerrenda jasotzen du.

Helbideak idazteko aukerak aztertzeko Hack

ROP eraso baten enklabe-bertsio bat burutzeko, erasotzaileak gai izan behar du aplikazio ostalariaren erabili gabeko memoria-eremu idatziak bilatzeko. Erasotzaileak memoria-kokapen hauek erabiltzen ditu pila-marko faltsu bat injektatzeko eta karga erabilgarria (shellcode) sartzeko. Ondorioz, enklabe gaizto batek ezin duela ostalari-aplikazioari memoria esleitzeko eskatzeko gai da, baina horren ordez, ostalari-aplikazioak dagoeneko esleitutako memoria gaizki erabili dezake. Bada, jakina, halako eremuak aurkitzea lortzen badu enklabea erori gabe.

Gaiztoak bilaketa hau egiten du TSXren beste albo-efektu bat baliatuz. Lehenik eta behin, aurreko kasuan bezala, helbidea bere existentzia aztertzen du, eta, ondoren, helbide horri dagokion orria idazteko modukoa den egiaztatzen du. Horretarako, gaiztoak hack hau erabiltzen du: TSX transakzio batean idazketa-funtzio bat jartzen du, eta amaitu ondoren, baina amaitu baino lehen, bortxaz eten egiten du transakzioa (abortu esplizitua).

TSX transakzio baten itzulera-kodea begiratuz, erasotzaileak idazteko modukoa den ulertzen du. «Abortu esplizitua» bada, gaizkileak ulertzen du grabazioa arrakastatsua izango zela aurrera jarraitu izan balu. Orria irakurtzeko soilik bada, orduan transakzioa "abortu esplizitua" ez den errore batekin amaitzen da.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

TSX-ren manipulazio honek gaiztoarentzat atsegina den beste ezaugarri bat du (hardware-errendimendu-kontagailuen bidez jarraitzeko ezintasunaz gain): memoria idazteko komando guztiak transakzioa arrakastatsua bada bakarrik konprometitzen direnez, transakzioa osatzera behartzeak bermatzen du zundatutako memoria-zelula dela. aldatu gabe jarraitzen du.

Hack kontrol-fluxua birbideratzeko

Enklabe batetik ROP erasoa egitean - ROP eraso tradizionalek ez bezala - erasotzaileak RIP erregistroaren kontrola lor dezake erasotutako programan akatsik (buffer gainezkatzea edo antzeko zerbait) baliatu gabe. Erasotzaile batek zuzenean gainidatzi dezake pilan gordetako RIP erregistroaren balioa. Bereziki, erregistro horren balioa bere ROP katearekin ordezkatu dezake.

Hala ere, ROP katea luzea bada, ostalariaren aplikazioaren pila zati handi bat gainidazteak datuak usteltzea eta programaren ustekabeko portaera ekar dezake. Erasoa ezkutuan egin nahi duen gaiztoa ez dago egoera horrekin konforme. Hori dela eta, aldi baterako pila-marko faltsu bat sortzen du beretzat eta bere ROP katea gordetzen du bertan. Pila faltsuaren markoa ausazko idatz daitekeen memoria-kokapen batean kokatzen da, benetako pila osorik utziz.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Zer ematen diote goian zerrendatutako hiru hackek gaiztoari?

(1) Lehenik eta behin, enklabe gaiztoa bidez hack helbideak aztertzeko, irakur daitezkeen ikusteko, – ostalari-aplikazioan ROP tramankulu abusagarriak bilatzen ditu.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

(2) Ondoren hack helbideak idazteko gaitasuna aztertzeko, – enklabe gaizto batek karga erabilgarria injektatzeko egokiak diren aplikazio ostalariaren memorian identifikatzen ditu.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

(3) Ondoren, enklabeak ROP kate bat sortzen du (1) urratsean aurkitutako tramankuluetatik eta kate hori ostalariaren aplikazio pilan sartzen du.

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

(4) Azkenik, ostalari-aplikazioak aurreko urratsean sortutako ROP katearekin topo egiten duenean, karga gaiztoa exekutatzen hasten da - ostalari-aplikazioaren pribilegioekin eta sistema-deiak egiteko gaitasunarekin.

Gaizkile batek nola erabiltzen dituen hack hauek ranzowari sortzeko

Ostalari-aplikazioak kontrola ECALL-en baten bidez enklabera transferitzen duenean (enklabe hori asmo txarrekoa den susmatu gabe), enklabe gaiztoak espazio librea bilatzen du ostalari-aplikazioaren memorian kodea injektatzeko (espazio libre gisa hartuz gelaxken sekuentzia horiek). zeroz betetakoa). Ondoren, bidez hack helbideak aztertzeko, irakur daitezkeen ikusteko, – enklabeak ostalari aplikazioan orrialde exekutagarriak bilatzen ditu eta ROP kate bat sortzen du, uneko direktorioan "RANSOM" izeneko fitxategi berri bat sortzen duena (eraso erreal batean, enklabeak lehendik dauden erabiltzaile-fitxategiak enkriptatzen ditu) eta erreskate mezu bat bistaratzen du. Aldi berean, ostalari-aplikazioak inozoki uste du enklabeak bi zenbaki gehitzen besterik ez duela. Nolakoa da hau kodean?

Pertzepzioa errazteko, aurkez ditzagun mnemotekniko batzuk definizioen bidez:

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

RSP eta RBP erregistroen jatorrizko balioak gordetzen ditugu karga exekutatu ondoren ostalari-aplikazioaren funtzionamendu normala berreskuratzeko:

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Pila-marko egoki baten bila gabiltza (ikus "kontrol-fluxua birbideratzeko hack" ataleko kodea).

ROP tramankulu egokiak bilatzea:

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Zama erabilgarria injektatzeko leku bat aurkitzea:

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

ROP kate bat eraikitzen dugu:

SGX malwarea: gaiztoek Intel teknologia berria nola ustiatzen duten sortu zen helburuetarako ez beste helburu batzuetarako

Horrela, Intel-en SGX teknologia, programa maltzurren aurka egiteko diseinatua, gaiztoek ustiatzen dute kontrako helburuak lortzeko.

Iturria: www.habr.com

Gehitu iruzkin berria