Serangan kana Intel SGX pikeun nimba data sénsitip atanapi ngaéksekusi kode dina enclave

Panaliti ti Universitas Élmu sareng Teknologi Pertahanan Tentara Pembebasan Rakyat, Universitas Nasional Singapura sareng ETH Zurich parantos ngembangkeun metode anyar pikeun nyerang enclaves terasing Intel SGX (Software Guard eXtensions). Serangan disebut SmashEx sarta disababkeun ku masalah sareng reentrance nalika nanganan kaayaan iwal salila operasi komponén runtime pikeun Intel SGX. Metodeu serangan anu diusulkeun ngamungkinkeun, upami anjeun gaduh kontrol kana sistem operasi, pikeun nangtukeun data rahasia anu aya di enclave, atanapi ngatur salinan kode anjeun kana mémori enclave sareng palaksanaanna.

Eksploitasi prototipe geus disiapkeun keur enclaves kalawan runtime dumasar kana Intel SGX SDK (CVE-2021-0186) jeung Microsoft Open Enclave (CVE-2021-33767). Dina kasus anu pertama, kamampuan nimba konci RSA anu dianggo dina pangladén wéb pikeun HTTPS ditingalikeun, sareng anu kadua, mungkin pikeun nangtukeun kontén anu dicandak ku utilitas cURL anu dijalankeun di jero enclave. Kerentanan ieu parantos kajawab sacara program dina sékrési Intel SGX SDK 2.13 sareng Open Enclave 0.17.1. Salian Intel SGX SDK sareng Microsoft Open Enclave, kerentanan ogé muncul dina Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX sareng Veracruz.

Hayu urang émut yén téknologi SGX (Software Guard Extensions) muncul dina prosesor Intel Core generasi kagenep (Skylake) sareng nawiskeun séri petunjuk anu ngamungkinkeun aplikasi tingkat pangguna pikeun ngalokasikeun daérah mémori katutup - enclaves, anu eusina teu tiasa dibaca sareng dirobah malah ku kernel jeung kode dieksekusi dina ring0, SMM jeung modus VMM. Teu mungkin pikeun mindahkeun kontrol kana kode dina enclave ngagunakeun fungsi luncat tradisional jeung Manipulasi kalawan registers na tumpukan - husus dijieun parentah anyar EENTER, EEXIT na ERESUME dipaké pikeun mindahkeun kontrol ka enclave, nu ngalakukeun cék otoritas. Dina hal ieu, kode anu disimpen dina enclave tiasa nganggo metode nelepon klasik pikeun ngakses fungsi di jero enclave sareng paréntah khusus pikeun nelepon fungsi éksternal. Énkripsi mémori enclave dianggo pikeun ngajagaan tina serangan hardware sapertos nyambungkeun ka modul DRAM.

Serangan kana Intel SGX pikeun nimba data sénsitip atanapi ngaéksekusi kode dina enclave

Masalahna nyaeta téhnologi SGX ngamungkinkeun sistem operasi abort hiji enclave ku ngalungkeun iwal hardware, sarta enclaves teu leres nerapkeun primitif pikeun atom nanganan iwal sapertos. Beda sareng kernel sistem operasi sareng aplikasi biasa, kode di jero enclaves teu gaduh aksés ka primitif pikeun ngatur tindakan atom nalika nanganan pengecualian anu dialungkeun sacara asinkron. Tanpa primitif atom nu ditangtukeun, enclave bisa interrupted iraha wae tur balik ka palaksanaan, sanajan di kali nalika enclave ngajalankeun bagian kritis tur aya dina kaayaan unsafe (Contona, nalika registers CPU teu disimpen / disimpen).

Serangan kana Intel SGX pikeun nimba data sénsitip atanapi ngaéksekusi kode dina enclave

Pikeun operasi normal, téhnologi SGX ngamungkinkeun palaksanaan enclave ka interrupted ku iwal hardware configurable. Fitur ieu ngamungkinkeun lingkungan runtime enclave pikeun ngalaksanakeun penanganan pengecualian intra-enclave atanapi pamrosésan sinyal, tapi ogé tiasa nyababkeun kasalahan reentrant. Serangan SmashEx didasarkeun kana ngamangpaatkeun cacad dina SDK kusabab kaayaan nelepon deui panangan iwal henteu diurus leres. Penting pikeun ngamangpaatkeun kerentanan, panyerang kedah tiasa ngaganggu palaksanaan enclave, nyaéta. kedah ngadalikeun operasi lingkungan sistem.

Saatos ngalungkeun pengecualian, panyerang nampi jandela waktos leutik dimana benang palaksanaan tiasa dicegat ku manipulasi parameter input. Khususna, upami anjeun gaduh aksés kana sistem (lingkungan di luar enclave), anjeun tiasa nyiptakeun pengecualian énggal saatos ngalaksanakeun instruksi éntri enclave (EENTER), anu bakal ngabalikeun deui kontrol kana sistem dina tahap nalika setelan tumpukan pikeun enclave henteu acan réngsé, dimana kaayaan CPU ngadaptar ogé disimpen.

Sistim nu lajeng bisa balik kontrol deui ka enclave, tapi saprak tumpukan enclave urang teu ngonpigurasi dina waktu interupsi, enclave bakal ngaéksekusi kalawan tumpukan residing dina mémori sistem, nu bisa dipaké pikeun employ balik-berorientasi programming (ROP). ) téhnik eksploitasi. Pemrograman Berorientasi). Nalika ngagunakeun téknik ROP, panyerang henteu nyobian nempatkeun kode na dina mémori, tapi ngoperasikeun potongan instruksi mesin anu tos aya di perpustakaan anu dimuat, ditungtungan ku instruksi mulang kontrol (sapertos aturan, ieu mangrupikeun tungtung fungsi perpustakaan). . Karya eksploitasi asalna handap pikeun ngawangun ranté panggero ka blok sarupa ("gadget") pikeun ménta pungsionalitas nu dipikahoyong.

Serangan kana Intel SGX pikeun nimba data sénsitip atanapi ngaéksekusi kode dina enclave
Serangan kana Intel SGX pikeun nimba data sénsitip atanapi ngaéksekusi kode dina enclave


sumber: opennet.ru

Tambahkeun komentar