SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Eins og þú veist er kóðinn sem keyrður er í enclave verulega takmarkaður í virkni hans. Það getur ekki hringt í kerfissímtöl. Það getur ekki framkvæmt I/O aðgerðir. Það veit ekki grunnvistfang kóðahluta hýsingarforritsins. Það getur ekki jmp eða hringt í hýsilforritskóða. Það hefur enga hugmynd um uppbyggingu heimilisfangarýmisins sem stjórnar hýsingarforritinu (til dæmis hvaða síður eru kortlagðar eða hvers konar gögn eru staðsett á þessum síðum). Það getur ekki beðið stýrikerfið um að kortleggja hluta af minni hýsingarforritsins á það (til dæmis í gegnum /proc/pid/maps). Barnlausar tilraunir til að lesa í blindni handahófskennt minnissvæði hýsingarforrits, svo ekki sé minnst á tilraunir til að skrifa, munu fyrr eða síðar (líklega fyrrnefnda) leiða til þvingaðrar uppsagnar enclave forritsins. Þetta gerist hvenær sem sýndarvistfangasvæðið sem hýsið biður um er óaðgengilegt hýsingarforritinu.

Miðað við svo harðan veruleika, mun vírushöfundur geta notað SGX enclaves til að ná illgjarn markmiðum sínum?

– Hakkaðu til að kanna heimilisföng til að sjá hvort hægt sé að lesa þau
– Hakka til að rannsaka heimilisföng til að geta skrifað
- Hakk til að beina stjórnflæði
– Hvað gefa illmennin þrjú á listanum hér að ofan?
– Hvernig illmennið notar þessi járnsög til að búa til ranzowari

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Byggt á öllu ofangreindu er almennt viðurkennt að enclave sé aðeins fær um að þjóna hýsingarforritinu og að enclave geti ekki beitt eigin frumkvæði, þar með talið illgjarnt. Þetta þýðir að enclaves eru ekkert hagnýtt gildi fyrir vírusritara. Þessi fljótfærni forsenda er ein af ástæðunum fyrir því að SGX vörn er ósamhverf: kóði hýsilforrita hefur ekki aðgang að enclave minni, en enclave kóði getur lesið og skrifað á hvaða vistfang hýsilforrits sem er.

Þess vegna, ef illgjarn enclave-kóði gat hringt handahófskennd kerfissímtöl fyrir hönd hýsingarforritsins, framkvæmt handahófskenndan kóða fyrir þess hönd, skannað minni hýsilforritsins og fundið misnotanlegar ROP-keðjur í því, gæti það náð fullri stjórn á hýsilforritinu, í laumuspil háttur. Það getur ekki aðeins stolið og dulkóðað notendaskrár heldur einnig komið fram fyrir hönd notandans. Til dæmis, senda phishing tölvupóst fyrir hans hönd eða framkvæma DoS árásir. Án þess að óttast jafnvel nýjustu verndaraðferðirnar, eins og að stafla kanarífuglum og hreinsa hreinsun.

Við munum sýna þér nokkur járnsög sem árásarmenn nota til að sigrast á takmörkunum sem lýst er hér að ofan til að nýta SGX í eigin illgjarn tilgangi: ROP árásir. Annaðhvort til að keyra handahófskenndan kóða dulbúinn sem hýsilforritsferli (svipað og hollow processing, sem oft er notað af spilliforritum), eða til að dulbúa tilbúið spilliforrit (til að forða spilliforritum sínum frá ofsóknum af vírusvarnir og öðrum varnaraðferðum).

Hakkaðu til að kanna heimilisföng til að sjá hvort hægt sé að lesa þau

Þar sem enclave veit ekki hvaða svið sýndarvistfangarýmisins eru aðgengileg hýsingarforritinu og þar sem enclave neyðist til að hætta þegar reynt er að lesa óaðgengilegt heimilisfang, stendur árásarmaðurinn frammi fyrir því verkefni að finna leið til að bila- skanna umburðarlyndi heimilisfangið. Finndu leið til að kortleggja tiltæk sýndarvistföng. Skúrkurinn leysir þetta vandamál með því að misnota TSX tækni Intel. Notar eina af aukaverkunum TSX: ef minnisaðgangsaðgerðin er sett í TSX færslu, þá eru undantekningar sem stafa af aðgangi að ógildum vistföngum bæld niður af TSX án þess að ná til stýrikerfisins. Ef reynt er að fá aðgang að ógildu minnisfangi er aðeins núverandi færslu hætt, ekki öllu enclave forritinu. Það. TSX gerir enclave kleift að fá öruggan aðgang að hvaða heimilisfangi sem er innan viðskipta - án þess að hætta sé á hruni.

Ef tilgreint heimilisfang er tiltækt hýsingarforrit, TSX viðskiptin eru oftast vel heppnuð. Í mjög sjaldgæfum tilfellum getur það mistekist vegna utanaðkomandi áhrifa eins og truflana (svo sem truflana í tímaáætlun), brottvísunar skyndiminni eða samtímis breytinga á minnisstað með mörgum ferlum. Í þessum sjaldgæfu tilfellum skilar TSX villukóða sem gefur til kynna að bilunin sé tímabundin. Í þessum tilvikum þarftu bara að endurræsa viðskiptin.

Ef tilgreint heimilisfang er ekki tiltækt hýsingarforritinu bætir TSX undantekninguna sem átti sér stað (stýrikerfið fær ekki tilkynningu) og hættir við viðskiptin. Villukóði er skilað inn í enclave kóðann svo hann geti brugðist við því að hætt hafi verið við viðskiptin. Þessir villukóðar gefa til kynna að viðkomandi heimilisfang sé ekki tiltækt fyrir hýsingarforritið.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Þessi meðhöndlun á TSX innan úr enclave hefur góðan eiginleika fyrir illmennið: þar sem flestir vélbúnaðarframmistöðuteljarar eru ekki uppfærðir á þeim tíma sem enclave kóði er keyrður, er ómögulegt að fylgjast með TSX færslum sem framkvæmdar eru inni í enclave. Þannig er illgjarn meðferð á TSX algjörlega ósýnileg stýrikerfinu.

Þar að auki, þar sem ofangreint hakk treystir ekki á nein kerfissímtöl, er hvorki hægt að greina það né koma í veg fyrir það með því einfaldlega að loka á kerfissímtöl; sem gefur yfirleitt jákvæða niðurstöðu í baráttunni gegn eggjaveiði.

Skúrkurinn notar hakkið sem lýst er hér að ofan til að leita í hýsingarforritskóðanum að græjum sem henta til að mynda ROP keðju. Á sama tíma þarf hann ekki að rannsaka hvert heimilisfang. Það er nóg að rannsaka eitt heimilisfang af hverri síðu í sýndarvistfangarýminu. Það tekur um 16 mínútur að rannsaka öll 45 gígabæt af minni (á Intel i7-6700K). Fyrir vikið fær illmennið lista yfir keyranlegar síður sem henta til að smíða ROP keðju.

Hakk til að kanna heimilisföng fyrir skrifhæfni

Til að framkvæma enclave útgáfu af ROP árás þarf árásarmaður að geta leitað að skrifanlegum ónotuðum minnissvæðum hýsingarforritsins. Árásarmaðurinn notar þessar minnisstaðir til að sprauta fölsuðum stafla ramma og til að sprauta hleðslu (shellcode). Niðurstaðan er sú að illgjarn enclave getur ekki krafist þess að hýsingarforritið úthlutar minni fyrir sig, heldur getur hún misnotað minni sem hýsilforritið hefur þegar úthlutað. Ef honum tekst auðvitað að finna slík svæði án þess að hrynja hýruna.

Illmennið framkvæmir þessa leit með því að nýta sér aðra aukaverkun TSX. Í fyrsta lagi, eins og í fyrra tilvikinu, rannsakar það heimilisfangið fyrir tilvist þess og athugar síðan hvort síðan sem samsvarar þessu heimilisfangi sé skrifanleg. Til að gera þetta notar illmennið eftirfarandi hakk: hann setur skriffall í TSX færslu, og eftir að henni er lokið, en áður en henni er lokið, stöðvar hann færsluna með valdi (skýrt hætta).

Með því að skoða skilakóðann frá TSX viðskiptum skilur árásarmaðurinn hvort hann sé skriflegur. Ef það er „skýr fóstureyðing“ skilur illmennið að upptakan hefði gengið vel ef hann hefði fylgt henni eftir. Ef síðan er skrifvarinn endar viðskiptin með annarri villu en „skýrri hætta“.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Þessi meðhöndlun á TSX hefur annan eiginleika sem er góður við illmennið (fyrir utan það að ómögulegt er að fylgjast með afköstum vélbúnaðarteljara): þar sem allar minnisskrifskipanir eru aðeins framkvæmdar ef viðskiptin heppnast, tryggir það að neyða viðskiptin til að ljúka því að rannsakað minni fruman helst óbreytt.

Hakk til að beina stjórnflæði

Þegar ROP árás er framkvæmt úr enclave - ólíkt hefðbundnum ROP árásum - getur árásarmaðurinn náð stjórn á RIP skránni án þess að hagnýta sér neinar villur í árásarforritinu (buffer overflow eða eitthvað svoleiðis). Árásarmaður getur beint skrifað yfir gildi RIP skrárinnar sem er geymdur á staflanum. Sérstaklega getur það skipt út verðmæti þessarar skráar með eigin ROP keðju.

Hins vegar, ef ROP keðjan er löng, þá getur það leitt til spillingar á gögnum og óvæntri hegðun forrita að skrifa yfir stóran hluta af hýsilforritinu. Skúrkurinn, sem leitast við að framkvæma árás sína í leyni, er ekki sáttur við þessa stöðu mála. Þess vegna býr það til falsa tímabundið stafla ramma fyrir sig og geymir ROP keðju sína í því. Falsa staflaramminn er settur á tilviljunarkenndan skrifanlegan stað í minni, þannig að raunverulegur stafla er ósnortinn.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Hvað gefa illmennin þrjú á listanum hér að ofan?

(1) Í fyrsta lagi illgjarn enclave í gegnum hakkað til að kanna heimilisföng til að sjá hvort hægt sé að lesa þau, – leitar í hýsingarforritinu að misnotanlegum ROP-græjum.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

(2) Síðan eftir hakk til að kanna heimilisföng fyrir skrifhæfni, – illgjarn enclave auðkennir svæði í minni hýsingarforritsins sem henta til að sprauta farm.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

(3) Því næst býr enclave til ROP keðju úr græjunum sem fundust í skrefi (1) og sprautar þessari keðju inn í hýsilforritsstafla.

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

(4) Að lokum, þegar hýsingarforritið rekst á ROP keðjuna sem búið var til í fyrra skrefi, byrjar illgjarn gagnálag að keyra - með forréttindi hýsingarforritsins og getu til að hringja í kerfi.

Hvernig illmenni notar þessi járnsög til að búa til ranzowari

Eftir að hýsingarforritið flytur stjórn til hýsilsins í gegnum eina af ECALL-tækjunum (án þess að gruna að þetta hólf sé illgjarnt), leitar illgjarn hólfið að lausu plássi í minni hýsilforritsins til að sprauta inn kóða (tekið sem laust rými þessar frumuraðir sem fyllt er með núllum). Síðan í gegn hakkað til að kanna heimilisföng til að sjá hvort hægt sé að lesa þau, – enclave leitar að keyrslu síðum í hýsingarforritinu og býr til ROP keðju sem býr til nýja skrá sem heitir "RANSOM" í núverandi möppu (í alvöru árás dulkóðar enclave núverandi notendaskrár) og birtir lausnargjaldsskilaboð. Á sama tíma, hýsingarforritið telur barnalega að enclave sé einfaldlega að bæta við tveimur tölum. Hvernig lítur þetta út í kóða?

Til að auðvelda skynjun skulum við kynna nokkur minnismerki í gegnum skilgreiningarnar:

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Við vistum upprunalegu gildi RSP og RBP skrárnar til að endurheimta eðlilega virkni hýsingarforritsins eftir að hafa keyrt hleðsluna:

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Við erum að leita að hentugum stafla ramma (sjá kóðann úr hlutanum „hakk til að beina stjórnflæði“).

Að finna viðeigandi ROP græjur:

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Að finna stað til að sprauta farminn:

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Við smíðum ROP keðju:

SGX spilliforrit: hvernig illmenni nýta nýja Intel tækni í öðrum tilgangi en þeim sem henni var ætlað

Þetta er hvernig SGX tækni Intel, hönnuð til að vinna gegn skaðlegum forritum, er nýtt af illmennum til að ná andstæðum markmiðum.

Heimild: www.habr.com

Bæta við athugasemd