Mozilla татбиқи технологияи изолятсияи китобхонаи RLBox-ро оғоз мекунад

Тадқиқотчиёни Донишгоҳи Стэнфорд, Донишгоҳи Калифорния дар Сан Диего ва Донишгоҳи Техас дар Остин таҳия кардаанд асбобхо RLBox, ки метавонад ҳамчун қабати изолятсияи иловагӣ барои бастани осебпазирӣ дар китобхонаҳои функсия истифода шавад. RLBox ба ҳалли мушкилоти амниятии китобхонаҳои тарафи сеюм, ки таҳти назорати таҳиягарон нестанд, вале осебпазирии онҳо метавонад лоиҳаи асосиро зери хатар гузорад, нигаронида шудааст.

Ширкати Mozilla ният дорад RLBox-ро дар Linux-и Firefox 74 ва macOS-и Firefox 75 барои ҷудо кардани иҷрои китобхона истифода баред Графикӣ, масъул барои расонидани шрифт. Аммо, RLBox барои Firefox хос нест ва метавонад барои ҷудо кардани ҳама гуна китобхонаҳо дар лоиҳаҳои худсарона истифода шавад. Тараккиёти RLBox паҳн шудан таҳти иҷозатномаи MIT. RLBox дар айни замон платформаҳои Linux ва macOS-ро дастгирӣ мекунад ва дастгирии Windows дертар интизор аст.

Механизм Кори RLBox ба тартиб додани коди C/C++-и китобхонаи ҷудошуда ба коди мобайнии WebAssembly-и сатҳи паст, ки баъдан ҳамчун модули WebAssembly тарҳрезӣ шудааст, ки иҷозатҳои он танҳо дар робита ба ин модул муқаррар карда мешаванд (масалан, китобхона) оғоз меёбад. барои коркарди сатрҳо розетка ё файли шабакавиро кушода наметавонанд) . Табдил додани рамзи C/C++ ба WebAssembly бо истифода аз анҷом дода мешавад wasi-sdk.

Барои иҷрои мустақим, модули WebAssembly бо истифода аз компилятор ба рамзи мошин тартиб дода мешавад Лусет ва дар як "нанопросес"-и ҷудошуда аз боқимондаи хотираи барнома кор мекунад. Компилятори Lucet ба ҳамон коде, ки муҳаррики JIT дорад, асос ёфтааст Краниэлифт, дар Firefox барои иҷрои WebAssembly истифода мешавад.

Модули ҷамъшуда дар як минтақаи алоҳидаи хотира кор мекунад ва ба фазои боқимондаи суроға дастрасӣ надорад. Агар осебпазирӣ дар китобхона истифода шавад, ҳамлакунанда маҳдуд мешавад ва наметавонад ба минтақаҳои хотираи раванди асосӣ дастрасӣ пайдо кунад ё интиқоли назоратро берун аз муҳити ҷудогона дастрас кунад.

Mozilla татбиқи технологияи изолятсияи китобхонаи RLBox-ро оғоз мекунад

Барои таҳиягарон маълумоти сатҳи баланд дода мешавад API, ки ба шумо имкон медиҳад, ки функсияҳои китобхонаро дар ҳолати ҷудошавӣ даъват кунед. Корфармоҳои WebAssembly қариб ягон захираи иловагиро талаб намекунанд ва ҳамкорӣ бо онҳо нисбат ба даъват кардани функсияҳои муқаррарӣ чандон сусттар нест (функсияҳои китобхона дар шакли коди аслӣ иҷро мешаванд ва хароҷоти изофӣ танҳо ҳангоми нусхабардорӣ ва тафтиши маълумот ҳангоми ҳамкорӣ бо муҳити ҷудошуда ба вуҷуд меояд). Функсияҳои китобхонаи ҷудошуда наметавонанд мустақиман даъват карда шаванд ва бояд бо истифода аз онҳо дастрас карда шаванд
қабати invoke_sandbox_function ().

Дар навбати худ, агар зарурати даъват кардани функсияҳои беруна аз китобхона вуҷуд дошта бошад, ин функсияҳо бояд бо истифодаи усули register_callback ба таври возеҳ муайян карда шаванд (бо нобаёнӣ, RLBox дастрасӣ ба функсияҳоро таъмин мекунад. китобхонаи стандартӣ). Барои таъмини бехатарии хотира, изолятсияи иҷрои код кофӣ нест ва инчунин тафтиши ҷараёни додаҳои баргардонидашударо талаб мекунад.

Арзишҳое, ки дар муҳити ҷудошуда тавлид мешаванд, ҳамчун истифодаи эътимоднок ва маҳдуд қайд карда мешаванд аломатҳои олудашуда ва барои «тоза» талаб мекунанд санчиш ва нусхабардорӣ ба хотираи барнома.
Бе тозакунӣ, кӯшиши истифодаи маълумоти ифлосшуда дар контекст, ки маълумоти муқаррариро талаб мекунад (ва баръакс) боиси хатогиҳо дар вақти тартибдиҳӣ мегардад. Далелҳои функсионалии хурд, арзишҳои бозгашт ва сохторҳо тавассути нусхабардорӣ байни хотираи раванд ва хотираи қуттии қум интиқол дода мешаванд. Барои маҷмӯи додаҳои калон, хотира дар муҳити ҷудошуда ҷудо карда мешавад ва нишоннамои мустақими қуттии истинод ба раванди асосӣ баргардонида мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ