Mozilla fillon implementimin e teknologjisë së izolimit RLBox

Kërkuesit nga Universiteti i Stanfordit, Universiteti i Kalifornisë në San Diego dhe Universiteti i Teksasit në Austin kanë zhvilluar mjet RLBox, i cili mund të përdoret si një nivel shtesë izolimi për të bllokuar vulnerabilitetet në bibliotekat e funksioneve. RLBox synon të zgjidhë problemin e sigurisë së bibliotekave të jashtme që nuk kontrollohen nga zhvilluesit, por vulnerabilitetet e të cilave mund të komprometojnë projektin kryesor.

Kompania Mozilla planifikon të angazhohet RLBox në ndërtimet Linux të Firefox 74 dhe ndërtimet macOS të Firefox 75 për të izoluara ekzekutimin e bibliotekës Graphite, e cila është përgjegjëse për paraqitjen e fonteve. Ndërsa RLBox nuk është specifik për Firefox dhe mund të përdoret për të izoluar çdo bibliotekë në projekte të ndryshme. Punimet RLBox shpërndahen në licencën MIT. Aktualisht RLBox mbështet punën në platforma Linux dhe macOS, mbështetje për Windows pritet më vonë.

Mekanizmi Puna e RLBox konsiston në kompilimin e kodit C/C++ nga një bibliotekë e izoluar në kodin e ndërmjetëm me nivel të ulët WebAssembly, i cili më pas formohet si një modul WebAssembly, me autorizimet e tij të caktuara vetëm për këtë modul (për shembull, një bibliotekë për përpunimin e vargjeve nuk do të mund të hapë një socket rrjeti ose një skedë). Transformimi i kodit C/C++ në WebAssembly realizohet përmes wasi-sdk.

Për ekzekutimin e drejtpërdrejtë, moduli WebAssembly kompilohet në kod makine me ndihmën e kompilatorit Lucet dhe ekzekutohet në një "nanoproces", i izoluar nga pjesa tjetër e memorisë së aplikacionit. Kompilatori Lucet bazohet në të njëjtin kod si motori JIT Cranelift, i cili përdoret në Firefox për ekzekutimin e WebAssembly.

Moduli i ndërtuar punon në një zonë të veçantë të memories dhe nuk ka akses në hapësirën e adresave të tjera. Në rastin e shfrytëzimit të një dobie në bibliotekë, sulmuesi do të jetë i kufizuar dhe nuk do të mund të qasjej në zonat e memories së procesit kryesor ose të kalojë kontrollin jashtë mjedisit të izoluar.

Mozilla fillon implementimin e teknologjisë së izolimit RLBox

Për zhvilluesit është ofruar një nivel i lartë API, i cili lejon thirrjen e funksioneve të bibliotekës në modalitetin izoluese. WebAssembly-handlers kërkojnë pothuajse asnjë burim shtesë dhe ndërveprimi me to nuk është shumë më i ngadalshëm se thirrja e funksioneve të zakonshme (funksionet e bibliotekës ekzekutohen si kod natyror, dhe shpërndarjet ndodhin vetëm gjatë kopjimit dhe verifikimit të të dhënave në procesin e ndërveprimit me mjedisin e izoluar). Funksionet e bibliotekës izoluese nuk mund të thirren drejtpërdrejt dhe për të arritur ato është e nevojshme të përdoren
shtresa invoke_sandbox_function().

Nga ana tjetër, nëse nga biblioteka duhen thirrur funksione të jashtme, këto funksione duhet të definohen qartë me metodën register_callback (në mënyrë të paracaktuar, RLBox ofron qasje në funksionet e bibliotekës standarde). Për të siguruar një funksionim të sigurt me kujtesën (memory safety), izolimi i ekzekutimit të kodit nuk është mjaftueshëm dhe kërkohet gjithashtu të sigurohet verifikimi i rrjedhave të të dhënave të kthyera.

Vlerat e formuar në mjedisin e izoluar shënohen si të pabesueshme, kufizohen duke përdorur etiketat e ndotura dhe për "çlirimin" kërkojnë verifikimin dhe kopjimit në kujtesën e aplikacionit.
Pa pastrimin, përpjekja për të përdorur të dhëna të ndotura në një kontekst që kërkon të dhëna normale (dhe anasjelltas) çon në gjenerimin e gabimeve gjatë fazës së kompilimit. Argumentet e vogla të funksioneve, vlerat e kthimit dhe strukturat kalohen përmes kopjimit midis kujtesës së procesit dhe kujtesës së ambientit të izoluar. Për grupe të mëdha të dhënash, kujtesa ndahet në ambientin e izoluar, ndërsa procesit kryesor i kthehet një tregues direkt "referencë-sandbox".

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster