Pag-atake sa Intel SGX aron makuha ang sensitibo nga datos o ipatuman ang code sa usa ka enclave

Ang mga tigdukiduki gikan sa People's Liberation Army Defense Science and Technology University, National University of Singapore ug ETH Zurich nakahimo og bag-ong pamaagi sa pag-atake sa mga nahilit nga enclaves Intel SGX (Software Guard eXtensions). Ang pag-atake gitawag nga SmashEx ug tungod sa mga problema sa reentrance kung nagdumala sa mga sitwasyon sa eksepsiyon sa panahon sa operasyon sa mga sangkap sa runtime alang sa Intel SGX. Ang gisugyot nga paagi sa pag-atake nagpaposible, kung ikaw adunay kontrol sa operating system, aron mahibal-an ang kompidensyal nga datos nga nahimutang sa enclave, o aron maorganisar ang pagkopya sa imong code sa memorya sa enclave ug ang pagpatuman niini.

Ang mga prototype sa pagpahimulos giandam na alang sa mga enclave nga adunay runtime base sa Intel SGX SDK (CVE-2021-0186) ug Microsoft Open Enclave (CVE-2021-33767). Sa una nga kaso, ang abilidad sa pagkuha sa usa ka RSA nga yawe nga gigamit sa usa ka web server alang sa HTTPS gipakita, ug sa ikaduha, posible nga mahibal-an ang sulud nga nakuha sa cURL utility nga nagdagan sa sulod sa enclave. Ang pagkahuyang natubag na sa programmatically sa mga pagpagawas sa Intel SGX SDK 2.13 ug Open Enclave 0.17.1. Dugang sa Intel SGX SDK ug Microsoft Open Enclave, ang kahuyang makita usab sa Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ug Veracruz.

Atong hinumdoman nga ang SGX (Software Guard Extensions) nga teknolohiya nagpakita sa ikaunom nga henerasyon nga Intel Core processors (Skylake) ug nagtanyag og sunod-sunod nga mga instruksyon nga nagtugot sa user-level nga mga aplikasyon sa paggahin sa mga closed memory nga mga dapit - mga enclave, ang mga sulod niini dili mabasa ug giusab bisan sa kernel ug sa code nga gipatuman sa ring0, SMM ug VMM modes. Imposible nga ibalhin ang kontrol sa code sa enclave gamit ang tradisyonal nga mga function sa paglukso ug pagmaniobra sa mga rehistro ug stack - espesyal nga gihimo ang mga bag-ong panudlo nga EENTER, EEXIT ug ERESUME gigamit aron mabalhin ang kontrol sa enclave, nga nagpahigayon mga pagsusi sa awtoridad. Sa kini nga kaso, ang code nga gibutang sa enclave mahimong mogamit sa klasikal nga mga pamaagi sa pagtawag aron ma-access ang mga function sa sulod sa enclave ug espesyal nga mga panudlo aron tawagan ang mga eksternal nga gimbuhaton. Ang enclave memory encryption gigamit sa pagpanalipod batok sa mga pag-atake sa hardware sama sa pagkonektar sa usa ka DRAM module.

Pag-atake sa Intel SGX aron makuha ang sensitibo nga datos o ipatuman ang code sa usa ka enclave

Ang problema mao nga ang teknolohiya sa SGX nagtugot sa operating system nga i-abort ang usa ka enclave pinaagi sa paglabay sa usa ka eksepsiyon sa hardware, ug ang mga enclave dili husto nga nag-implementar sa mga primitibo alang sa atomikong pagdumala sa maong mga eksepsiyon. Dili sama sa kernel sa operating system ug mga regular nga aplikasyon, ang code sa sulod sa mga enclave walay access sa mga primitives alang sa pag-organisar sa mga aksyong atomiko kung nagdumala sa mga asynchronously thrown nga mga eksepsiyon. Kung wala ang piho nga atomic primitives, ang enclave mahimong mabalda sa bisan unsang oras ug ibalik sa pagpatuman, bisan sa mga panahon nga ang enclave nagpatuman sa mga kritikal nga seksyon ug naa sa dili luwas nga kahimtang (pananglitan, kung ang mga rehistro sa CPU wala ma-save / gipahiuli).

Pag-atake sa Intel SGX aron makuha ang sensitibo nga datos o ipatuman ang code sa usa ka enclave

Alang sa normal nga operasyon, ang teknolohiya sa SGX nagtugot sa pagpatuman sa enclave nga mabalda pinaagi sa ma-configure nga mga eksepsiyon sa hardware. Kini nga feature nagtugot sa enclave runtime environment nga mag-implementar sa intra-enclave exception handling o signal processing, apan mahimo usab kini nga hinungdan sa reentrant errors. Ang pag-atake sa SmashEx gibase sa pagpahimulos sa mga kasaypanan sa SDK tungod niini ang sitwasyon sa pagtawag pag-usab sa exception handler dili husto nga pagdumala. Importante nga aron mapahimuslan ang pagkahuyang, ang tig-atake kinahanglan nga makabalda sa pagpatay sa enclave, i.e. kinahanglan nga kontrolon ang operasyon sa palibot sa sistema.

Human sa paglabay sa usa ka eksepsiyon, ang tig-atake makadawat og gamay nga bintana sa panahon diin ang execution thread mahimong ma-intercept pinaagi sa pagmaniobra sa input parameters. Sa partikular, kung ikaw adunay access sa sistema (kalibotan sa gawas sa enclave), makahimo ka og bag-ong eksepsiyon diha-diha dayon human sa pagpatuman sa enclave entry instruction (EENTER), nga ibalik ang kontrol sa sistema sa usa ka yugto sa dihang ang stack setup alang sa Ang enclave wala pa nahuman, diin ang kahimtang sa mga rehistro sa CPU gitipigan usab.

Mahimong ibalik sa sistema ang kontrol balik sa enclave, apan tungod kay ang stack sa enclave wala ma-configure sa panahon sa interrupt, ang enclave ipatuman uban ang stack nga nagpuyo sa memorya sa sistema, nga magamit aron magamit ang pagbalik-oriented nga programming (ROP). ) mga teknik sa pagpahimulos. Oriented Programming). Kung gigamit ang teknik sa ROP, ang tig-atake wala mosulay sa pagbutang sa iyang code sa panumduman, apan naglihok sa mga piraso sa mga panudlo sa makina nga magamit na sa gikarga nga mga librarya, nga nagtapos sa usa ka panudlo sa pagkontrol sa pagbalik (ingon usa ka lagda, kini ang mga katapusan sa mga gimbuhaton sa librarya) . Ang buhat sa pagpahimulos moabut sa paghimo sa usa ka kadena sa mga tawag sa parehas nga mga bloke ("gadget") aron makuha ang gitinguha nga pagpaandar.

Pag-atake sa Intel SGX aron makuha ang sensitibo nga datos o ipatuman ang code sa usa ka enclave
Pag-atake sa Intel SGX aron makuha ang sensitibo nga datos o ipatuman ang code sa usa ka enclave


Source: opennet.ru

Idugang sa usa ka comment