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

Para panalungtik ti Universitas Nasional Élmu Pertahanan Tentara Pembebasan Rakyat, Universitas Nasional Singapura, sareng ETH Zurich parantos ngembangkeun metode serangan énggal ngalawan enklave Intel SGX (Software Guard eXtensions) anu terasing. Serangan éta, anu dijuluki SmashEx, ngamangpaatkeun masalah reentrancy dina penanganan pengecualian dina komponén runtime Intel SGX. Metode serangan anu diusulkeun, kalayan kontrol kana sistem operasi, ngamungkinkeun para panyerang pikeun nangtukeun data sénsitip anu disimpen dina enklave atanapi nyalin kode na kana mémori enklave sareng ngaéksekusi éta.

Prototipe eksploitasi dikembangkeun pikeun enclave kalayan runtime dumasar kana Intel SGX SDK (CVE-2021-0186) sareng Microsoft Open Enclave (CVE-2021-33767). Dina kasus anu sateuacanna, dimungkinkeun pikeun ngekstrak konci RSA anu dianggo dina server wéb pikeun HTTPS, sedengkeun dina kasus anu terakhir, dimungkinkeun pikeun nangtukeun eusi utilitas cURL anu dicandak ku cara ngajalankeun dina enclave. Kerentanan ieu parantos ditambal dina Intel SGX SDK 2.13 sareng Open Enclave 0.17.1. Salian ti Intel SGX SDK sareng Microsoft Open Enclave, kerentanan ieu ogé mangaruhan Google Asylo, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX, sareng Veracruz SDK.

Salaku panginget, téknologi SGX (Software Guard Extensions) diwanohkeun dina prosesor Intel Core generasi kagenep (Skylake) sareng nawiskeun sarangkaian pitunjuk anu ngamungkinkeun aplikasi tingkat pangguna pikeun ngalokasikeun daérah mémori pribadi—enclave—eusina teu tiasa dibaca atanapi dirobih bahkan ku kernel sareng kode anu dijalankeun dina modeu ring0, SMM, sareng VMM. Mindahkeun kontrol ka kode dina enclave teu mungkin nganggo fungsi luncat tradisional sareng manipulasi register sareng stack. Pitunjuk anyar anu didamel khusus—EENTER, EEXIT, sareng ERESUME—dianggo pikeun mindahkeun kontrol ka enclave, ngalaksanakeun cék idin. Kode anu disimpen dina enclave tiasa nganggo metode panggero klasik pikeun ngaksés fungsi dina enclave sareng pitunjuk khusus pikeun nelepon fungsi éksternal. Mémori enclave dienkripsi pikeun ngajaga tina serangan hardware, sapertos nyambungkeun kana modul DRAM.

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

Masalahna asalna tina kanyataan yén téknologi SGX ngamungkinkeun sistem operasi pikeun ngaganggu palaksanaan enclave ku cara ngalungkeun pengecualian perangkat keras, tapi enclave henteu ngalaksanakeun primitif sacara leres pikeun penanganan atomik tina pengecualian sapertos kitu. Teu sapertos kernel sistem operasi sareng aplikasi biasa, kode di jero enclave henteu gaduh aksés ka primitif pikeun ngatur tindakan atomik salami penanganan pengecualian asinkron. Tanpa primitif atomik ieu, enclave tiasa diganggu sareng diteruskeun iraha waé, bahkan nalika bagian kritis dijalankeun dina enclave sareng éta aya dina kaayaan anu teu aman (contona, nalika register CPU henteu disimpen/dipulihkeun).

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

Pikeun operasi normal, téknologi SGX ngamungkinkeun palaksanaan enclave dieureunkeun ku pengecualian perangkat keras anu tiasa dikonfigurasi. Fitur ieu ngamungkinkeun lingkungan runtime enclave pikeun ngalaksanakeun penanganan pengecualian intra-enclave atanapi pamrosésan sinyal, tapi ogé tiasa micu kasalahan reentrancy. Serangan SmashEx ngamangpaatkeun cacad SDK anu nyegah panyauran ulang tina pangendali pengecualian diurus kalayan leres. Anu penting, pikeun ngamangpaatkeun kerentanan ieu, panyerang kedah tiasa ngeureunkeun enclave, nyaéta, ngontrol lingkungan sistem.

Saatos ngahasilkeun pengecualian, panyerang gaduh waktos anu alit pikeun ngabajak aliran palaksanaan ku cara manipulasi parameter input. Hususna, kalayan aksés ka sistem (lingkungan di luar enclave), pengecualian énggal tiasa didamel langsung saatos ngalaksanakeun instruksi éntri enclave (EENTER), anu bakal mulangkeun kontrol ka sistem dina tahap sateuacan tumpukan enclave, anu nyimpen kaayaan register CPU, parantos dikonfigurasi sapinuhna.

Sistem teras tiasa mulangkeun kontrol deui ka enclave, tapi kumargi tumpukan enclave teu acan disiapkeun dina waktos interupsi, enclave bakal dijalankeun sareng tumpukan dina mémori sistem, anu tiasa dimanfaatkeun nganggo téknik return-oriented programming (ROP). Nganggo ROP, panyerang henteu nyobian nempatkeun kode na dina mémori, tapi beroperasi dina potongan instruksi mesin anu parantos aya dina perpustakaan anu dimuat, ditungtungan ku instruksi return (biasana tungtung fungsi perpustakaan). Éksploitasi diwangun ku ngawangun ranté panggero ka blok anu sami ("gadget") pikeun kéngingkeun fungsi anu 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
Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster