Mozilla Mimitian Palaksanaan Téknologi Isolasi Perpustakaan RLBox

Panaliti ti Universitas Stanford, Universitas California di San Diego sareng Universitas Texas di Austin dimekarkeun parabot RLBox, nu bisa dipaké salaku lapisan isolasi tambahan pikeun meungpeuk vulnerabilities di perpustakaan fungsi. RLBox ditujukeun pikeun ngarengsekeun masalah kaamanan perpustakaan pihak katilu anu teu dipercaya anu henteu dikadalikeun ku pamekar, tapi anu kerentananna tiasa kompromi kana proyék utama.

Perusahaan Mozilla rencana nganggo RLBox dina Linux ngawangun Firefox 74 sareng macOS ngawangun Firefox 75 pikeun ngasingkeun palaksanaan perpustakaan Grafit, jawab rendering fon. Nanging, RLBox henteu khusus pikeun Firefox sareng tiasa dianggo pikeun ngasingkeun perpustakaan naon waé dina proyék-proyék sawenang-wenang. Kamekaran RLBox nyebar handapeun lisénsi MIT. RLBox ayeuna ngadukung platform Linux sareng macOS, kalayan dukungan Windows diperkirakeun engké.

lantaran make mesin Karya RLBox asalna handap pikeun nyusun kode C/C++ perpustakaan terasing kana kode WebAssembly panengah tingkat low, nu lajeng dirancang salaku modul WebAssembly, nu idin nu diatur dina hubungan ukur jeung modul ieu (contona, perpustakaan. pikeun ngolah string moal bisa muka stop kontak jaringan atawa file) . Ngarobih kode C / C ++ ka WebAssembly dilakukeun nganggo wasi-sdk.

Pikeun palaksanaan langsung, modul WebAssembly disusun kana kode mesin maké compiler a Lucet tur ngalir dina misah "nanoprocess" terasing tina sesa memori aplikasi urang. Kompiler Lucet dumasar kana kode anu sami sareng mesin JIT angkat bango, dipaké dina Firefox pikeun ngaéksekusi WebAssembly.

modul nu dirakit ngoperasikeun di wewengkon memori misah tur teu boga aksés ka sesa spasi alamat. Upami kerentanan di perpustakaan dieksploitasi, panyerang bakal diwatesan sareng moal tiasa ngaksés daérah mémori tina prosés utama atanapi mindahkeun kontrol di luar lingkungan terasing.

Mozilla Mimitian Palaksanaan Téknologi Isolasi Perpustakaan RLBox

Inpormasi tingkat luhur disayogikeun pikeun pamekar API, nu ngidinan Anjeun pikeun nelepon fungsi perpustakaan dina modeu isolasi. Pawang WebAssembly merlukeun ampir euweuh sumberdaya tambahan sarta interaksi jeung aranjeunna teu pira laun ti nelepon fungsi biasa (fungsi perpustakaan dieksekusi dina bentuk kode asli, sarta waragad overhead timbul ngan lamun nyalin jeung mariksa data salila interaksi jeung lingkungan terasing). fungsi perpustakaan terasing teu bisa disebut langsung tur kudu diakses maké
lapisan invoke_sandbox_function ().

Sabalikna, upami perlu nelepon fungsi éksternal ti perpustakaan, fungsi ieu kudu didefinisikeun sacara eksplisit ngagunakeun métode register_callback (sacara standar, RLBox nyadiakeun aksés ka fungsi. perpustakaan baku). Pikeun mastikeun kasalametan memori, isolasi palaksanaan kode teu cukup sarta merlukeun ogé mariksa aliran data balik.

Nilai-nilai anu dibangkitkeun dina lingkungan terasing ditandaan salaku teu tiasa dipercaya sareng panggunaan terbatas tanda tainted jeung "beberesih" maranéhna merlukeun verifikasi jeung niron kana mémori aplikasi.
Tanpa ngabersihkeun, nyobian nganggo data anu kacemar dina kontéks anu meryogikeun data biasa (sabalikna) nyababkeun kasalahan dina waktos kompilasi. Argumen fungsi leutik, nilai mulang, jeung struktur disalurkeun ngaliwatan salinan antara mémori prosés jeung mémori sandbox. Pikeun set data badag, mémori dialokasikeun dina lingkungan terasing sarta pointer sandbox-rujukan langsung balik ka prosés utama.

sumber: opennet.ru

Tambahkeun komentar