Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Kama unavyojua, msimbo uliotekelezwa kwenye enclave ni mdogo sana katika utendakazi wake. Haiwezi kupiga simu za mfumo. Haiwezi kufanya shughuli za I/O. Haijui anwani ya msingi ya sehemu ya msimbo ya programu mwenyeji. Haiwezi jmp au kupiga msimbo wa programu ya mwenyeji. Haijui kuhusu muundo wa nafasi ya anwani ambayo inasimamia programu ya seva pangishi (kwa mfano, ni kurasa zipi zimechorwa au ni aina gani ya data iliyo kwenye kurasa hizo). Haiwezi kuuliza mfumo wa uendeshaji kupanga kipande cha kumbukumbu ya programu mwenyeji kwake (kwa mfano, kupitia /proc/pid/maps). Majaribio ya kutojua kusoma kwa upofu eneo la kumbukumbu la programu mwenyeji, bila kutaja majaribio ya kuandika, mapema au baadaye (uwezekano mkubwa zaidi wa zamani) itasababisha kusitishwa kwa lazima kwa programu ya enclave. Hii hutokea wakati wowote eneo la nafasi ya anwani iliyoombwa na enclave halipatikani kwa programu-tumizi.

Kwa kuzingatia hali mbaya kama hii, je, mwandishi wa virusi ataweza kutumia enclaves ya SGX kufikia malengo yake mabaya?

- Hack kwa kuchunguza anwani ili kuona kama zinaweza kusomwa
- Hack ili kuchunguza anwani kwa maandishi
- Hack ili kuelekeza mtiririko wa udhibiti
- Hiki tatu zilizoorodheshwa hapo juu zinampa nini mhalifu?
- Jinsi mhalifu anatumia udukuzi huu kuunda ranzowari

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Kulingana na yote yaliyo hapo juu, inakubalika kwa ujumla kuwa enclave ina uwezo wa kuwasilisha ombi la seva pangishi pekee, na kwamba enclave haiwezi kutekeleza mpango wake yenyewe, ikiwa ni pamoja na wale hasidi. Hii inamaanisha kuwa enclaves hazina thamani ya vitendo kwa waandishi wa virusi. Dhana hii ya haraka ni mojawapo ya sababu kwa nini ulinzi wa SGX si wa ulinganifu: msimbo wa programu mwenyeji hauwezi kufikia kumbukumbu ya enclave, wakati msimbo wa enclave unaweza kusoma na kuandika kwa anwani yoyote ya kumbukumbu ya programu.

Kwa hivyo, ikiwa msimbo hasidi wa enclave uliweza kupiga simu kiholela za mfumo kwa niaba ya mpangishaji, kutekeleza msimbo kiholela kwa niaba yake, kuchanganua kumbukumbu ya programu tumizi na kupata minyororo ya ROP inayoweza kudhulumiwa ndani yake, inaweza kuchukua udhibiti kamili wa programu mwenyeji, katika hali ya siri. Haiwezi tu kuiba na kusimba faili za mtumiaji, lakini pia kutenda kwa niaba ya mtumiaji. Kwa mfano, tuma barua pepe za kuhadaa ili kupata maelezo ya kibinafsi kwa niaba yake au fanya mashambulizi ya DoS. Bila kuogopa hata njia za kisasa zaidi za ulinzi, kama vile mizinga na usafishaji wa anwani.

Tutakuonyesha udukuzi chache ambazo wavamizi hutumia kushinda vikwazo vilivyoelezwa hapo juu ili kunufaika na SGX kwa madhumuni yao hasidi: mashambulizi ya ROP. Ama kutekeleza msimbo wa kiholela unaofichwa kama mchakato wa utumaji programu (sawa na kuchakata shimo, ambayo mara nyingi hutumiwa na programu hasidi), au kuficha programu hasidi iliyotengenezwa tayari (ili kuokoa programu yake hasidi kutokana na kudhulumiwa na antivirus na njia zingine za ulinzi).

Hack kwa kuchunguza anwani ili kuona kama zinaweza kusomwa

Kwa kuwa enclave haijui ni safu zipi za nafasi ya anwani inayopatikana kwa programu ya mwenyeji, na kwa kuwa enclave inalazimika kusitisha wakati wa kujaribu kusoma anwani isiyoweza kufikiwa, mshambuliaji anakabiliwa na kazi ya kutafuta njia ya kukosea- soma kwa ustahimilivu nafasi ya anwani. Tafuta njia ya kuchora anwani pepe zinazopatikana. Mwanahalifu anatatua tatizo hili kwa kutumia vibaya teknolojia ya Intel's TSX. Hutumia moja ya athari za TSX: ikiwa kazi ya ufikiaji wa kumbukumbu imewekwa katika shughuli ya TSX, basi vizuizi vinavyotokana na kupata anwani zisizo sahihi vinakandamizwa na TSX bila kufikia mfumo wa uendeshaji. Iwapo jaribio litafanywa la kufikia anwani batili ya kumbukumbu, ni shughuli ya sasa pekee ndiyo itasitishwa, si mpango mzima wa enclave. Hiyo. TSX inaruhusu enclave kufikia anwani yoyote kwa usalama kutoka ndani ya shughuli ya malipo - bila hatari ya kuanguka.

Kama anwani maalum inapatikana programu mwenyeji, shughuli ya TSX mara nyingi hufanikiwa. Katika hali nadra, inaweza kushindwa kutokana na athari za nje kama vile kukatizwa (kama vile kukatiza kwa kiratibu), uondoaji wa akiba, au urekebishaji wa wakati mmoja wa eneo la kumbukumbu kwa michakato mingi. Katika matukio haya adimu, TSX inarudisha msimbo wa hitilafu unaoonyesha kuwa kutofaulu ni kwa muda. Katika kesi hizi, unahitaji tu kuanzisha upya shughuli.

Kama anwani iliyobainishwa haipatikani programu tumizi ya mwenyeji, TSX inakandamiza ubaguzi uliotokea (OS haijaarifiwa) na inabatilisha shughuli hiyo. Msimbo wa hitilafu hurejeshwa kwa msimbo wa enclave ili iweze kuguswa na ukweli kwamba shughuli imeghairiwa. Nambari hizi za hitilafu zinaonyesha kuwa anwani inayohusika haipatikani kwa programu-tumizi ya seva pangishi.

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Udanganyifu huu wa TSX kutoka ndani ya enclave una kipengele kizuri kwa mhalifu: kwa kuwa kaunta nyingi za utendakazi wa maunzi hazijasasishwa wakati msimbo wa enclave unatekelezwa, haiwezekani kufuatilia miamala ya TSX inayotekelezwa ndani ya enclave. Kwa hivyo, udanganyifu mbaya wa TSX bado hauonekani kabisa kwa mfumo wa uendeshaji.

Zaidi ya hayo, kwa kuwa udukuzi ulio hapo juu hautegemei simu zozote za mfumo, hauwezi kugunduliwa au kuzuiwa kwa kuzuia tu simu za mfumo; ambayo kwa kawaida inatoa matokeo chanya katika vita dhidi ya uwindaji wa yai.

Mhalifu hutumia udukuzi ulioelezewa hapo juu kutafuta msimbo wa programu ya mwenyeji kwa vifaa vinavyofaa kuunda msururu wa ROP. Wakati huo huo, haitaji kuchunguza kila anwani. Inatosha kuchunguza anwani moja kutoka kwa kila ukurasa wa nafasi ya anwani pepe. Kuchunguza gigabytes zote 16 za kumbukumbu huchukua kama dakika 45 (kwenye Intel i7-6700K). Kama matokeo, mhalifu hupokea orodha ya kurasa zinazoweza kutekelezwa ambazo zinafaa kwa kuunda mnyororo wa ROP.

Udukuzi kwa ajili ya kuchunguza anwani ili kuandikwa

Ili kutekeleza toleo la enclave la mashambulizi ya ROP, mshambulizi anahitaji kuwa na uwezo wa kutafuta maeneo ya kumbukumbu ambayo hayajatumika yanayoweza kuandikwa ya programu mwenyeji. Mshambulizi hutumia maeneo haya ya kumbukumbu kuingiza fremu ya rafu bandia na kuingiza mzigo wa malipo (msimbo wa ganda). Jambo la msingi ni kwamba enclave hasidi haiwezi kuhitaji programu-pangishi kujitengea hifadhi yenyewe, lakini badala yake inaweza kutumia vibaya kumbukumbu ambayo tayari imetolewa na programu-tumizi. Ikiwa, bila shaka, ataweza kupata maeneo kama haya bila kuanguka kwa enclave.

Mwanahalifu hufanya utafutaji huu kwa kutumia athari nyingine ya TSX. Kwanza, kama ilivyo katika kesi iliyopita, inachunguza anwani kwa uwepo wake, na kisha huangalia ikiwa ukurasa unaolingana na anwani hii unaweza kuandikwa. Kwa kufanya hivyo, villain hutumia hack ifuatayo: anaweka kazi ya kuandika katika shughuli ya TSX, na baada ya kukamilika, lakini kabla ya kukamilika, anakataza shughuli hiyo kwa nguvu (utoaji mimba wazi).

Kwa kuangalia msimbo wa kurejesha kutoka kwa shughuli ya TSX, mshambuliaji anaelewa ikiwa inaweza kuandikwa. Ikiwa ni "utoaji mimba wazi", mhalifu anaelewa kuwa rekodi hiyo ingefaulu ikiwa angeifuata. Ikiwa ukurasa ni wa kusoma pekee, basi muamala huisha na hitilafu nyingine isipokuwa "kufuta mimba wazi".

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Udanganyifu huu wa TSX una kipengele kingine ambacho ni nzuri kwa villain (kando na kutowezekana kwa ufuatiliaji kupitia vihesabu vya utendaji wa vifaa): kwa kuwa amri zote za kuandika kumbukumbu zinafanywa tu ikiwa shughuli imefanikiwa, na kulazimisha shughuli kukamilisha inahakikisha kwamba kumbukumbu iliyochunguzwa. seli inabakia bila kubadilika.

Udukuzi ili kuelekeza mtiririko wa udhibiti

Wakati wa kutekeleza shambulio la ROP kutoka kwa kizuizi - tofauti na mashambulizi ya kawaida ya ROP - mshambuliaji anaweza kupata udhibiti wa rejista ya RIP bila kutumia hitilafu yoyote katika mpango ulioshambuliwa (bafa kufurika au kitu kama hicho). Mshambulizi anaweza kubatilisha moja kwa moja thamani ya rejista ya RIP iliyohifadhiwa kwenye rafu. Hasa, inaweza kuchukua nafasi ya thamani ya rejista hii na mlolongo wake wa ROP.

Hata hivyo, ikiwa msururu wa ROP ni mrefu, basi kubatilisha sehemu kubwa ya rundo la programu-tumizi kunaweza kusababisha upotovu wa data na tabia ya programu isiyotarajiwa. Mwovu, ambaye anataka kutekeleza shambulio lake kwa siri, hajaridhika na hali hii ya mambo. Kwa hivyo, hujitengenezea sura ya bandia ya muda na kuhifadhi mlolongo wake wa ROP ndani yake. Fremu ya rafu bandia huwekwa katika eneo la kumbukumbu linaloweza kuandikwa, na kuacha mrundikano halisi ukiwa sawa.

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Je, hila tatu zilizoorodheshwa hapo juu zinampa nini mhalifu?

(1) Kwanza, sehemu mbaya inapita hack kwa kuchunguza anwani ili kuona kama zinaweza kusomwa, - hutafuta programu-pangishi kwa vifaa vya ROP vinavyotumiwa vibaya.

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

(2) Kisha kwa hack kwa ajili ya kuchunguza anwani ili kuandikwa, - enclave hasidi hutambua maeneo katika kumbukumbu ya programu mwenyeji ambayo yanafaa kwa kuingiza mzigo wa malipo.

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

(3) Kisha, enclave huunda msururu wa ROP kutoka kwa vifaa vilivyogunduliwa katika hatua (1) na kuingiza msururu huu kwenye rafu ya programu ya seva pangishi.

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

(4) Hatimaye, wakati programu tumizi inapokumbana na msururu wa ROP ulioundwa katika hatua ya awali, upakiaji hasidi huanza kutekeleza - kwa haki za mpangishaji na uwezo wa kupiga simu za mfumo.

Jinsi mhalifu hutumia udukuzi huu kuunda ranzowari

Baada ya programu seva pangishi kuhamisha udhibiti kwenye enclave kupitia mojawapo ya ECALLs (bila kushuku kuwa enclave hii ni hasidi), enclava hasidi hutafuta nafasi isiyolipishwa kwenye kumbukumbu ya programu-tumizi ya kuingiza msimbo (kuchukua kama nafasi za bure mlolongo huo wa seli. iliyojazwa na sufuri). Kisha kupitia hack kwa kuchunguza anwani ili kuona kama zinaweza kusomwa, - enclave hutafuta kurasa zinazoweza kutekelezwa katika programu-tumizi ya seva pangishi na kuzalisha msururu wa ROP ambao huunda faili mpya inayoitwa "RANSOM" katika saraka ya sasa (katika shambulio la kweli, enclave husimba faili zilizopo za mtumiaji) na kuonyesha ujumbe wa fidia. Wakati huo huo, programu ya mwenyeji inaamini kwa ujinga kwamba enclave inaongeza nambari mbili tu. Je, hii inaonekanaje katika msimbo?

Kwa urahisi wa utambuzi, hebu tuanzishe baadhi ya mnemonics kupitia ufafanuzi:

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Tunahifadhi maadili asili ya rejista za RSP na RBP ili kurejesha utendakazi wa kawaida wa programu mwenyeji baada ya kutekeleza upakiaji:

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Tunatafuta fremu ya rafu inayofaa (tazama msimbo kutoka kwa sehemu ya "haki ya kuelekeza mtiririko wa udhibiti").

Kupata vifaa vya ROP vinavyofaa:

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Kupata mahali pa kuingiza mzigo wa malipo:

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Tunaunda mnyororo wa ROP:

Programu hasidi ya SGX: jinsi wabaya wanavyotumia teknolojia mpya ya Intel kwa madhumuni mengine isipokuwa yale ambayo ilikusudiwa

Hivi ndivyo teknolojia ya Intel ya SGX, iliyoundwa kukabiliana na programu hasidi, inatumiwa na wahalifu kufikia malengo tofauti.

Chanzo: mapenzi.com

Kuongeza maoni