KĂ«rkuesit nga Universiteti i Mbrojtjes Shkencore dhe Teknologjik tĂ« UshtrisĂ« Ălirimtare tĂ« KinĂ«s, Universiteti KombĂ«tar tĂ« Singaporit dhe Shkolla Politeknike e Cyrihut kanĂ« zhvilluar njĂ« metodĂ« tĂ« re sulmi ndaj enclave-ve tĂ« izoluara Intel SGX (Software Guard eXtensions). Sulmi njihet si SmashEx dhe shkaktohet nga problemet e ri-atribuueshmĂ«risĂ« gjatĂ« trajtimit tĂ« situatave pĂ«rjashtuese nĂ« procesin e punĂ«s sĂ« komponenteve runtime pĂ«r Intel SGX. Metoda e sugjeruar e sulmit mundĂ«son, pĂ«rmes kontrollit tĂ« sistemit operativ, identifikimin e tĂ« dhĂ«nave konfidenciale tĂ« vendosura nĂ« enclave, ose organizimin e kopjimit tĂ« kodit tĂ« vet nĂ« memorjen e enclave dhe ekzekutimin e tij.
Prototipat e eksploitëve janë përgatitur për enclave me runtime të bazuar në Intel SGX SDK (CVE-2021-0186) dhe Microsoft Open Enclave (CVE-2021-33767). Në rastin e parë është demonstruar mundësia e nxjerrjes së çelësit RSA, i cili përdoret në serverin web për HTTPS, ndërsa në të dytin është arritur të identifikohet përmbajtja e marrë nga utilitarja cURL, e ekzekutuar brenda enclave. Shtigjshmëria është eliminuar tashmë përmes një azhurnimi programor në versionet Intel SGX SDK 2.13 dhe Open Enclave 0.17.1. Përveç paketave Intel SGX SDK dhe Microsoft Open Enclave, kjo shtigjshmëri shfaqet gjithashtu në SDK-të Google Asylo, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX dhe Veracruz.
KujtojmĂ« se teknologjia SGX (Software Guard Extensions) shfaqet nĂ« procesorĂ«t Intel Core tĂ« brezit tĂ« gjashtĂ« (Skylake) dhe ofron njĂ« seri instrukcionesh qĂ« lejojnĂ« ndarjen e zonave tĂ« mbyllura tĂ« memories pĂ«r aplikacionet e nivelit pĂ«rdorues â enclave, pĂ«rmbajtja e tĂ« cilave nuk mund tĂ« lexohet dhe ndryshohet as nga bĂ«rthama dhe as nga kodi qĂ« ekzekutohet nĂ« modelet ring0, SMM dhe VMM. Transferimi i kontrollit nĂ« kodin brenda enclave nuk Ă«shtĂ« i mundur pĂ«rmes funksioneve tradicionale tĂ« kalimit dhe manipulimeve me regjistrat dhe stack-un â pĂ«r tĂ« kaluar kontrollin nĂ« enclave pĂ«rdoren instrukcione tĂ« reja EENTER, EEXIT dhe ERESUME, tĂ« cilat kryejnĂ« verifikimin e autorizimeve. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, kodi i vendosur nĂ« enclave mund tĂ« pĂ«rdorĂ« metoda klasike thirrjeje pĂ«r tĂ« aksesuar funksionet brenda enclave dhe njĂ« instrukcion tĂ« veçantĂ« pĂ«r tĂ« thirrur funksione ekstern. PĂ«r tĂ« mbrojtur nga sulmet harduerike, siç Ă«shtĂ« lidhja me modul tĂ« DRAM, pĂ«rdoret enkriptimi i memories sĂ« enclave.

Problemi është se teknologjia SGX lejon sistemin operativ të ndërpresë ekzekutimin e enklavës duke gjeneruar një përjashtim harduerik, ndërsa në enklava nuk realizohen siç duhet primitivet për përpunimin atomik të këtyre përjashtimeve. Ndryshe nga bërthama e sistemit operativ dhe aplikacionet e zakonshme, kodi brenda enklavave nuk ka akses në primitivet për organizimin e veprimeve atomike gjatë përpunimit të përjashtimeve që ndodhin asinkronisht. Pa këto primitive atomike, enklava mund të ndërpritet në çdo moment dhe të kthehet në ekzekutim, madje në momentet kur në enklavë përfundohen seksionet kritike dhe ajo ndodhet në një gjendje të pasigurt (për shembull, kur regjistrat e CPU nuk janë ruajtur/rivendosur).

PĂ«r funksionimin normal, teknologjia SGX lejon ndĂ«rprerjen e ekzekutimit tĂ« enklavĂ«s nga pĂ«rjashtime harduerike tĂ« personalizuara. Kjo veçori lejon mjediseve runtime tĂ« enklavave tĂ« realizojnĂ« pĂ«rpunimin e pĂ«rjashtimeve brenda-enklavĂ«s ose pĂ«rpunimin e sinjaleve, por gjithashtu mund tĂ« provokojĂ« gabime tĂ« ri-ndĂ«rhyrjes. Sulmi SmashEx bazohet nĂ« shfrytĂ«zimin e mangĂ«sive nĂ« SDK pĂ«r shkak tĂ« tĂ« cilave situata e thirrjes sĂ« pĂ«rsĂ«ritur tĂ« trajtuesit tĂ« pĂ«rjashtimit nuk pĂ«rpunizohet siç duhet. ĂshtĂ« e rĂ«ndĂ«sishme qĂ« pĂ«r tĂ« shfrytĂ«zuar kĂ«tĂ« vulnerabilitet, sulmuesi duhet tĂ« ketĂ« mundĂ«sinĂ« pĂ«r tĂ« ndĂ«rprerĂ« ekzekutimin e enklavĂ«s, pra, duhet tĂ« kontrollojĂ« funksionimin e mjedisit sistemor.
Pas gjenerimit të një përjashtimi, sulmuesi merr një dritare të vogël kohore, gjatë së cilës mund të kapë fluksin e ekzekutimit përmes manipulimit me parametrat e hyrjes. Në veçanti, me qasje në sistem (mjedisi jashtë enklavës), është e mundur të krijohet një përjashtim i ri menjëherë pas ekzekutimit të instrukcionit të hyrjes në enklavë (EENTER), i cili do të çonte në kthimin e kontrollit në sistem në një fazë kur akoma nuk është përfunduar konfigurimi i grumbullit për enklavën, ku përfshihet në mënyrë të veçantë ruajtja e gjendjes së regjistrave të CPU.
Sistemi mĂ« pas mund tĂ« kthejĂ« kontrollin pĂ«rsĂ«ri nĂ« enkla, por pasi steka e enkla gjatĂ« ndĂ«rprerjes nuk ishte konfiguruar, enkla do tĂ« ekzekutohet me stekĂ«n qĂ« ndodhet nĂ« memorinĂ« e sistemit, e cila mund tĂ« pĂ«rdoret pĂ«r tĂ« aplikuar metoda shfrytĂ«zimi tĂ« bazuara nĂ« programimin e orientuar nĂ« kthim (ROP â Return-Oriented Programming). Kur pĂ«rdoret teknika ROP, sulmuesi nuk pĂ«rpiqet tĂ« vendosĂ« kodin e tij nĂ« memorie, por operon me copa tĂ« instrukcioneve tĂ« makinĂ«s qĂ« tashmĂ« janĂ« nĂ« bibliotekat e ngarkuara, tĂ« cilat pĂ«rfundojnĂ« me njĂ« instrukcion pĂ«r kthimin e kontrollit (nĂ« pĂ«rgjithĂ«si, kĂ«to janĂ« pĂ«rfundimet e funksioneve tĂ« bibliotekĂ«s). Funksioni i eksploitit reduktohet nĂ« ndĂ«rtimin e njĂ« zinxhiri thirrjesh tĂ« njĂ«sive tĂ« ngjashme (âgadgetsâ) pĂ«r tĂ« arritur funksionalitetin e nevojshĂ«m.


Burimi: opennet.ru
