Serangan ing Intel SGX kanggo extract data sensitif utawa nglakokaké kode ing enclave

Peneliti saka Universitas Ilmu lan Teknologi Pertahanan Tentara Pembebasan Rakyat, Universitas Nasional Singapura lan ETH Zurich wis ngembangake cara anyar kanggo nyerang enclaves terisolasi Intel SGX (Software Guard eXtensions). Serangan kasebut diarani SmashEx lan disebabake masalah karo reentrance nalika nangani kahanan pangecualian sajrone operasi komponen runtime kanggo Intel SGX. Cara serangan sing diusulake ndadekake, yen sampeyan duwe kontrol sistem operasi, nemtokake data rahasia sing ana ing enclave, utawa ngatur salinan kode sampeyan menyang memori enclave lan eksekusi.

Prototipe eksploitasi wis disiapake kanggo enclave kanthi runtime adhedhasar Intel SGX SDK (CVE-2021-0186) lan Microsoft Open Enclave (CVE-2021-33767). Ing kasus sing sepisanan, kemampuan kanggo ngekstrak kunci RSA sing digunakake ing server web kanggo HTTPS dituduhake, lan ing kaloro, bisa nemtokake konten sing dipikolehi dening utilitas cURL sing mlaku ing njero enclave. Kerentanan wis ditanggulangi kanthi program ing rilis Intel SGX SDK 2.13 lan Open Enclave 0.17.1. Saliyane Intel SGX SDK lan Microsoft Open Enclave, kerentanan kasebut uga katon ing Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX lan Veracruz.

Elinga yen teknologi SGX (Software Guard Extensions) muncul ing pemroses Intel Core generasi kaping enem (Skylake) lan nawakake serangkaian instruksi sing ngidini aplikasi tingkat pangguna nyedhiyakake area memori sing ditutup - enclaves, sing isine ora bisa diwaca lan diowahi malah dening kernel lan kode kaleksanan ing ring0, SMM lan VMM mode. Sampeyan ora bisa nransfer kontrol menyang kode ing enclave nggunakake fungsi lompat tradisional lan manipulasi karo ndhaftar lan tumpukan - khusus digawe instruksi anyar EENTER, EEXIT lan ERESUME digunakake kanggo nransfer kontrol menyang enclave, kang nindakake mriksa wewenang. Ing kasus iki, kode sing dilebokake ing enclave bisa nggunakake metode panggilan klasik kanggo ngakses fungsi ing enclave lan instruksi khusus kanggo nelpon fungsi eksternal. Enkripsi memori enclave digunakake kanggo nglindhungi saka serangan hardware kayata nyambungake menyang modul DRAM.

Serangan ing Intel SGX kanggo extract data sensitif utawa nglakokaké kode ing enclave

Masalah iku teknologi SGX ngidini sistem operasi abort enclave dening mbuwang istiméwa hardware, lan enclaves ora mlaku ngleksanakake primitif kanggo atom nangani istiméwa kuwi. Ora kaya kernel sistem operasi lan aplikasi biasa, kode ing njero enclaves ora nduweni akses menyang primitif kanggo ngatur aksi atom nalika nangani pengecualian sing dibuwang kanthi ora sinkron. Tanpa primitif atom kasebut, enclave bisa diselani sawayah-wayah lan bali menyang eksekusi, sanajan ing wektu enclave nglakokaké bagean kritis lan ana ing kahanan ora aman (contone, nalika ndhaftar CPU ora disimpen / dibalèkaké).

Serangan ing Intel SGX kanggo extract data sensitif utawa nglakokaké kode ing enclave

Kanggo operasi normal, teknologi SGX ngidini eksekusi enclave diselani dening pengecualian hardware sing bisa dikonfigurasi. Fitur iki ngidini lingkungan runtime enclave kanggo ngleksanakake penanganan pangecualian intra-enclave utawa pangolahan sinyal, nanging uga bisa nimbulaké kasalahan reentrant. Serangan SmashEx adhedhasar eksploitasi cacat ing SDK amarga kahanan nelpon maneh pawang pangecualian ora ditangani kanthi bener. Penting kanggo ngeksploitasi kerentanan, penyerang kudu bisa ngganggu eksekusi enclave, yaiku. kudu ngontrol operasi lingkungan sistem.

Sawise mbuwang pangecualian, panyerang nampa jendhela wektu cilik sajrone benang eksekusi bisa dicegat liwat manipulasi paramèter input. Utamane, yen sampeyan duwe akses menyang sistem (lingkungan njaba enclave), sampeyan bisa nggawe pangecualian anyar sanalika sawise ngleksanakake instruksi entri enclave (EENTER), kang bakal bali kontrol kanggo sistem ing tataran nalika persiyapan tumpukan kanggo enclave durung rampung, ing ngendi negara ndhaptar CPU uga disimpen.

Sistem banjur bisa bali kontrol bali menyang enclave, nanging amarga tumpukan enclave ora dikonfigurasi nalika interupsi, enclave bakal nglakokaké karo tumpukan sing manggon ing memori sistem, kang bisa digunakake kanggo nggunakake program bali-oriented (ROP). ) teknik eksploitasi. Oriented Programming). Nalika nggunakake teknik ROP, panyerang ora nyoba nyelehake kode kasebut ing memori, nanging ngoperasikake potongan instruksi mesin sing wis kasedhiya ing perpustakaan sing dimuat, diakhiri karo instruksi bali kontrol (minangka aturan, iki minangka fungsi perpustakaan). . Karya eksploitasi teka kanggo mbangun rantai telpon menyang blok sing padha ("gadget") kanggo entuk fungsi sing dikarepake.

Serangan ing Intel SGX kanggo extract data sensitif utawa nglakokaké kode ing enclave
Serangan ing Intel SGX kanggo extract data sensitif utawa nglakokaké kode ing enclave


Source: opennet.ru

Add a comment