SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Kaya sing dingerteni, kode sing dieksekusi ing enclave diwatesi kanthi fungsine. Ora bisa nelpon sistem. Ora bisa nindakake operasi I / O. Ora ngerti alamat dhasar bagean kode aplikasi inang. Ora bisa jmp lan nelpon kode aplikasi inang. Ora ngerti babagan struktur ruang alamat sing digunakake aplikasi host (contone, kaca sing dipetakan utawa data apa sing ana ing kaca kasebut). Iku ora bisa takon sistem operasi map Piece saka memori aplikasi inang kanggo (Contone, liwat / proc / pid / maps). Naif nyoba wuta maca wilayah kasepakatan memori aplikasi inang, ora kanggo sebutno nyoba kanggo nulis, bakal cepet utawa mengko (paling kamungkinan mantan) mimpin kanggo mandap dipeksa saka program enclave. Iki kedadeyan saben-saben area ruang alamat virtual sing dijaluk dening enclave dadi ora bisa diakses dening aplikasi host.

Amarga kasunyatan sing angel banget, apa penulis virus bisa nggunakake enclave SGX kanggo nggayuh tujuan sing ala?

– A hack kanggo probing alamat kanggo ndeleng apa padha bisa diwaca
– Hack kanggo alamat probing kanggo aksesibilitas nulis
- Hack kanggo ngarahake aliran kontrol
- Apa telung hacks kadhaptar ndhuwur menehi kanggo wong jahat?
- Kepiye wong jahat nggunakake hacks iki kanggo nggawe ranzomwari

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Adhedhasar kabeh kasebut ing ndhuwur, umume ditampa manawa enclave mung bisa ngladeni aplikasi host, lan enclave ora bisa njupuk inisiatif dhewe, kalebu sing jahat. Iki tegese enclaves ora ana regane praktis kanggo panulis virus. Panyangka cepet-cepet iki minangka salah sawijining alasan kenapa proteksi SGX ora simetris: kode aplikasi host ora bisa ngakses memori enclave, nalika kode enclave bisa maca lan nulis menyang alamat apa wae ing memori aplikasi host.

Mulane, yen kedadeyan kode enclave angkoro bisa nggawe telpon sistem kasepakatan atas jenenge aplikasi inang, nglakokake kode sewenang-wenang atas jenenge, mindai memori aplikasi inang lan nemokake rantai ROP sing cocok kanggo penyalahgunaan ing, bakal bisa ngrebut kontrol penuh liwat aplikasi inang, ing mode siluman. Bakal bisa ora mung nyolong lan ndhelik file pangguna, nanging uga tumindak atas jenenge pangguna. Contone, kanggo ngirim email phishing kanggo jenenge utawa nindakake serangan DoS. Tanpa wedi malah mekanisme pertahanan paling modern, kayata kenari tumpukan lan sanitasi alamat.

Kita bakal nuduhake sawetara hacks dening wong ala ngatasi watesan ing ndhuwur, seeking kanggo njupuk kauntungan saka SGX kanggo tujuan angkoro dhewe: kanggo nindakake serangan ROP. Salah siji kanggo nglakokake kode sewenang-wenang sing nyamar minangka proses aplikasi host (padha karo proses hollowing, sing asring digunakake dening malware), utawa kanggo nyamarake malware sing wis siap (kanggo nylametake malware saka dioyak dening antivirus lan mekanisme pertahanan liyane).

Hack kanggo alamat probing kanggo ndeleng apa bisa diwaca

Wiwit enclave ora ngerti sing kisaran saka papan alamat virtual diakses kanggo aplikasi inang, lan wiwit nyoba kanggo maca alamat ora bisa diakses meksa enclave kanggo siksa, wong jahat ngadhepi karo tugas kanggo nemokake cara kanggo mindhai papan alamat ing fault-tolerant. Kanggo nemokake cara kanggo peta alamat virtual sing bisa diakses. Wong jahat ngatasi masalah iki kanthi nyalahi panggunaan teknologi TSX Intel. Dheweke nggunakake salah sawijining efek samping TSX: yen fungsi akses memori diselehake ing transaksi TSX, banjur pangecualian sing muncul saka ngakses alamat sing ora bener bakal ditindhes dening TSX sadurunge tekan sistem operasi. Nalika nyoba kanggo ngakses alamat memori ora bener, mung transaksi saiki mungkasi, ora kabeh program enclave. Mangkono, TSX ngidini enclave kanggo ngakses alamat sembarang saka ing transaksi aman, tanpa risiko kacilakan.

yen alamat kasebut kasedhiya aplikasi inang, transaksi TSX paling asring sukses. Ing kasus sing jarang, bisa uga gagal amarga pengaruh eksternal kayata interrupts (kayata interupsi jadwal), evictions cache, utawa modifikasi simultan saka lokasi memori dening macem-macem proses. Ing kasus-kasus langka iki, TSX ngasilake kode kesalahan sing nuduhake yen kegagalan kasebut sementara. Ing kasus iki, mung miwiti maneh transaksi.

yen alamat kasebut ora kasedhiya aplikasi inang, TSX suppresses pangecualian sing dumadi (OS ora kabar) lan mbalek maneh transaksi. Kode kesalahan bali menyang kode enclave supaya bisa nanggepi kasunyatan sing transaksi wis mbalek maneh. Kode kesalahan iki nuduhake yen alamat sing dimaksud ora bisa diakses dening aplikasi host.

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Manipulasi TSX iki saka njero enclave nduweni fitur sing apik kanggo wong ala: amarga paling counter kinerja hardware ora dianyari nalika kode enclave dieksekusi, ora bisa nglacak transaksi TSX sing ditindakake ing enclave. Mangkono, manipulasi angkoro TSX tetep ora katon ing sistem operasi.

Salajengipun, amarga hack ing ndhuwur ora gumantung ing sembarang telpon sistem, iku ora bisa dideteksi utawa dicegah dening mung mblokir telpon sistem; sing biasane cara sing apik kanggo pertempuran mburu endhog.

Wong jahat nggunakake hack ing ndhuwur kanggo nggoleki kode aplikasi host kanggo gadget sing cocog kanggo mbentuk rantai ROP. Dheweke ora perlu mriksa saben alamat. Cukup kanggo nyelidiki siji alamat saka saben kaca ruang alamat virtual. Nggoleki kabeh 16 gigabyte memori mbutuhake udakara 45 menit (ing Intel i7-6700K). Akibaté, wong jahat entuk dhaptar kaca sing bisa dieksekusi sing cocog kanggo mbangun rantai ROP.

Hack kanggo alamat probing kanggo aksesibilitas nulis

Kanggo nindakake varian enclave saka serangan ROP, panyerang mbutuhake kemampuan kanggo nemokake bagean memori aplikasi host sing bisa ditulis lan ora digunakake. Penyerang nggunakake bagean memori kasebut kanggo nyuntikake pigura tumpukan palsu lan nyuntikake muatan (kode cangkang). Ing idea iku enclave angkoro ora bisa mbutuhake aplikasi inang kanggo nyedhiakke memori kanggo dhewe, nanging bisa malah nyalahi panggunaan bagean memori wis diparengake dening aplikasi inang. Sing, yen bisa nemokake bagean kasebut tanpa nabrak enclave.

Wong ala nindakake telusuran iki kanthi ngeksploitasi efek samping liyane saka TSX. Kaping pisanan, dheweke mriksa alamat kasebut, kaya ing kasus sadurunge, banjur mriksa manawa kaca sing cocog karo alamat iki bisa ditulis. Kanggo nindakake iki, wong ala nggunakake hack ing ngisor iki: dheweke nyelehake fungsi nulis ing transaksi TSX, lan sawise dieksekusi, nanging sadurunge rampung, dheweke kanthi paksa mbatalake transaksi kasebut (abort eksplisit).

Kanthi ndeleng kode bali saka transaksi TSX, wong ala ngerti manawa transaksi kasebut bisa ditulis. Yen "aborsi eksplisit," wong ala ngerti yen nulis bakal sukses yen dheweke ngetutake. Yen kaca mung diwaca, transaksi gagal karo kesalahan liyane saka "abort eksplisit."

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Manipulasi TSX iki nduweni fitur apik liyane kanggo wong ala (saliyane impossibility nelusuri liwat counters kinerja hardware): wiwit kabeh memori nulis setya mung yen transaksi kasil, meksa transaksi rampung njamin sing sel memori probed tetep panggah.

Hack kanggo pangalihan aliran kontrol

Nalika nindakake serangan ROP saka enclave, ora kaya serangan ROP tradisional, panyerang bisa ngontrol registrasi RIP tanpa ngeksploitasi kewan omo ing program sing diserang (buffer overflow utawa liya-liyane). Penyerang bisa langsung nimpa nilai register RIP sing disimpen ing tumpukan. Utamane, dheweke bisa ngganti nilai register iki nganggo rantai ROP.

Nanging, yen chain ROP dawa, nimpa potongan gedhe saka tumpukan aplikasi host bisa nyebabake korupsi data lan prilaku program sing ora dikarepake. Penyerang sing pengin nindakake serangan kanthi siluman ora seneng karo kahanan iki. Dadi nggawe pigura tumpukan sauntara palsu lan nyimpen chain ROP ing. Bingkai tumpukan palsu diselehake ing lokasi memori sing bisa ditulis kanthi sewenang-wenang - amarga tumpukan nyata tetep ora kena.

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Apa telung hacks sing kasebut ing ndhuwur menehi wong jahat?

(1) Pisanan, enclave angkoro liwat hack kanggo alamat probing kanggo ndeleng yen bisa diwaca, - nggoleki aplikasi inang kanggo gadget ROP sing bisa disalahake.

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

(2) Banjur kanthi cara hack kanggo alamat probing kanggo nulis, – enclave angkoro ngenali wilayah ing memori aplikasi host sing cocok kanggo injeksi payload.

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

(3) Sabanjure, enclave nggawe chain ROP saka gadget sing ditemokake ing langkah (1) lan nyuntikake chain iki menyang tumpukan aplikasi inang.

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

(4) Pungkasan, nalika aplikasi host nemoni rantai ROP sing digawe ing langkah sadurunge, muatan angkoro wiwit dieksekusi, kanthi hak istimewa aplikasi host lan kanthi kemampuan kanggo nelpon sistem.

Kepiye wong jahat nggunakake hacks iki kanggo nggawe ranzomwari

Sawise aplikasi host liwat kontrol menyang enclave liwat salah siji saka ECALLs (mangerteni yen enclave iki angkoro), enclave angkoro nelusuri memori aplikasi host kanggo ruang bebas kanggo inject kode (iku nganggep sing urutan sel kapenuhan zeros minangka papan free). Banjur, liwat hack kanggo alamat probing kanggo ndeleng yen bisa diwaca, - enclave nggoleki aplikasi host kanggo kaca eksekusi lan ngasilake chain ROP sing nggawe file anyar sing jenenge "RANSOM" ing direktori saiki (ing serangan nyata, enclave ndhelik file pangguna sing wis ana) lan nampilake pesen panjaluk tebusan. Ing wektu sing padha, aplikasi host naif percaya yen enclave mung nambah rong nomer. Apa iki katon ing kode?

Kanggo gampang pemahaman, kita bakal ngenalake sawetara mnemonik liwat definisi:

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Kita nyimpen nilai asli saka ndhaftar RSP lan RBP supaya sawise payload dieksekusi, operasi normal aplikasi host bisa dipulihake:

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

We katon kanggo pigura tumpukan cocok (ndeleng kode saka bagean "hack kanggo redirecting aliran kontrol").

Temokake gadget ROP sing cocog:

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Kita nemokake papan kanggo nyuntikake muatan:

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Kita mbangun rantai ROP:

SGX malware: kepiye penjahat ngeksploitasi teknologi Intel anyar kanggo tujuan liyane tinimbang sing digagas

Iki minangka cara teknologi SGX Intel, sing dirancang kanggo nglawan malware, dieksploitasi dening para penjahat kanggo nggayuh tujuan sing ngelawan.

Source: www.habr.com

Add a comment