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

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

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

– Hack kanggo probing alamat kanggo ndeleng apa padha bisa diwaca
– Hack kanggo mriksa alamat kanggo nulis
– Hack kanggo pangalihan aliran kontrol
– Apa telung hacks ing ndhuwur menehi wong jahat?
– Carane wong jahat nggunakake hacks iki kanggo nggawe ranzowari

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 nindakake inisiatif dhewe, kalebu sing jahat. Iki tegese enclaves ora ana regane praktis kanggo panulis virus. Panyangka cepet-cepet iki minangka salah sawijining sebab kenapa proteksi SGX ora simetris: kode aplikasi host ora bisa ngakses memori enclave, nalika kode enclave bisa maca lan nulis menyang alamat memori aplikasi host.

Mulane, yen kode enclave angkoro bisa nggawe telpon sistem sing sewenang-wenang atas jenenge aplikasi host, nglakokake kode sewenang-wenang atas jenenge, mindhai memori aplikasi host lan nemokake rantai ROP sing bisa disalahake, bisa ngrebut kontrol lengkap aplikasi host, ing mode siluman. Ora mung bisa nyolong lan ndhelik file pangguna, nanging uga tumindak atas jenenge pangguna. Contone, ngirim email phishing kanggo jenenge utawa tumindak serangan DoS. Tanpa wedi malah mekanisme protèktif paling modern, kayata canaries tumpukan lan sanitasi alamat.

Kita bakal nuduhake sawetara hacks sing digunakake panyerang kanggo ngatasi watesan sing diterangake ing ndhuwur kanggo njupuk kauntungan saka SGX kanggo tujuan ala dhewe: 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 buron dening antivirus lan mekanisme pertahanan liyane).

Hack kanggo alamat probing kanggo ndeleng apa bisa diwaca

Wiwit enclave ora ngerti kisaran ruang alamat virtual sing bisa diakses dening aplikasi host, lan wiwit enclave dipeksa mandheg nalika nyoba maca alamat sing ora bisa diakses, panyerang ngadhepi tugas nemokake cara kanggo kesalahan- kanthi sabar mindai papan alamat. Temokake cara kanggo peta alamat virtual sing kasedhiya. Wong jahat ngatasi masalah iki kanthi nyalahi panggunaan teknologi TSX Intel. Migunakake 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 tanpa tekan sistem operasi. Yen nyoba kanggo ngakses alamat memori ora bener, mung transaksi saiki dibatalake, ora kabeh program enclave. Iku. TSX ngidini enclave ngakses alamat apa wae kanthi aman saka transaksi - tanpa risiko ambruk.

yen alamat kasebut kasedhiya aplikasi host, 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, sampeyan mung kudu miwiti maneh transaksi.

yen alamat sing ditemtokake ora kasedhiya aplikasi inang, TSX suppresses pangecualian sing dumadi (OS ora kabar) lan aborts transaksi. Kode kesalahan bali menyang kode enclave supaya bisa nanggepi kasunyatan sing transaksi wis dibatalake. Kode kesalahan iki nuduhake yen alamat sing dimaksud ora kasedhiya kanggo 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 saka njero enclave nduweni fitur sing apik kanggo wong jahat: 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.

Kajaba iku, amarga hack ing ndhuwur ora gumantung ing sembarang telpon sistem, iku ora bisa dideteksi utawa dicegah dening mung mblokir telpon sistem; sing biasane menehi asil positif ing perang nglawan mburu endhog.

Wong jahat nggunakake hack sing diterangake ing ndhuwur kanggo nggoleki kode aplikasi host kanggo gadget sing cocog kanggo mbentuk rantai ROP. Ing wektu sing padha, 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 nampa dhaptar kaca eksekusi sing cocog kanggo mbangun rantai ROP.

Hack kanggo alamat probing kanggo nulis

Kanggo nindakake versi enclave saka serangan ROP, panyerang kudu bisa nggoleki area memori sing ora bisa ditulis saka aplikasi host. Penyerang nggunakake lokasi memori kasebut kanggo nyuntikake pigura tumpukan palsu lan nyuntikake muatan (kode cangkang). Ing ngisor iki sing enclave angkoro ora bisa mbutuhake aplikasi inang kanggo nyedhiakke memori kanggo dhewe, nanging malah bisa nyalahi panggunaan memori wis diparengake dening aplikasi inang. Yen, mesthi, dheweke bisa nemokake wilayah kasebut tanpa ambruk enclave.

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

Kanthi ndeleng kode bali saka transaksi TSX, panyerang ngerti manawa bisa ditulis. Yen "aborsi eksplisit", wong jahat ngerti manawa rekaman kasebut bakal sukses yen dheweke ngetutake. Yen kaca mung diwaca, banjur transaksi rampung 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 liyane sing becik kanggo wong jahat (saliyane impossibility nelusuri liwat counter kinerja hardware): wiwit kabeh printah nulis memori mung setya yen transaksi sukses, meksa transaksi kanggo ngrampungake mesthekake yen sel memori probed. tetep ora owah.

Hack kanggo pangalihan aliran kontrol

Nalika nindakake serangan ROP saka enclave - ora kaya serangan ROP tradisional - penyerang 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, bisa ngganti nilai register iki karo chain ROP dhewe.

Nanging, yen chain ROP dawa, banjur nimpa potongan gedhe saka tumpukan aplikasi host bisa nyebabake korupsi data lan prilaku program sing ora dikarepke. Wong jahat sing ngupayakake serangan kanthi rahasia, ora kepenak karo kahanan iki. Mulane, nggawe pigura tumpukan sauntara palsu kanggo dhewe lan nyimpen chain ROP ing. Bingkai tumpukan palsu diselehake ing lokasi memori sing bisa ditulis kanthi acak, supaya tumpukan nyata tetep utuh.

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

Apa telung hacks ing ndhuwur menehi wong jahat?

(1) Kaping 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 dening hack kanggo alamat probing kanggo nulis, - enclave angkoro ngenali wilayah ing memori aplikasi inang sing cocok kanggo nyuntikaken 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, beban angkoro wiwit dieksekusi - kanthi hak istimewa aplikasi host lan kemampuan kanggo nelpon sistem.

Kepiye wong jahat nggunakake hacks iki kanggo nggawe ranzowari

Sawise aplikasi inang nransfer kontrol menyang enclave liwat salah siji saka ECALL (tanpa curiga yen enclave iki angkoro), enclave angkoro nggoleki ruang kosong ing memori aplikasi inang kanggo nyuntikake kode (njupuk minangka spasi bebas saka urutan sel kasebut. sing diisi nol). Banjur liwat hack kanggo alamat probing kanggo ndeleng yen bisa diwaca, - enclave nggoleki kaca sing bisa dieksekusi ing aplikasi inang lan ngasilake rantai ROP sing nggawe file anyar sing jenenge "RANSOM" ing direktori saiki (ing serangan nyata, enclave ndhelik file pangguna sing wis ana) lan nampilake pesen tebusan. Ing wektu sing padha, aplikasi host naif percaya yen enclave mung nambah rong nomer. Apa iki katon ing kode?

Kanggo gampang pemahaman, ayo ngenalake sawetara mnemonik liwat definisi:

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

Kita nyimpen nilai asli saka registrasi RSP lan RBP kanggo mulihake operasi normal aplikasi host sawise nglakokake muatan:

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

We are looking for a 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

Temokake 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 carane teknologi SGX Intel, dirancang kanggo counter program angkoro, dimanfaatake dening wong jahat kanggo entuk gol ngelawan.

Source: www.habr.com

Add a comment