Mozilla byrjar innleiðingu á RLBox bókasafns einangrunartækni

Vísindamenn frá Stanford University, University of California í San Diego og University of Texas í Austin þróað verkfæri RLBox, sem hægt er að nota sem viðbótar einangrunarlag til að loka fyrir veikleika í virknisöfnum. RLBox miðar að því að leysa öryggisvandamál ótrausts þriðja aðila bókasöfnum sem eru ekki undir stjórn þróunaraðila, en veikleikar þeirra geta komið í veg fyrir aðalverkefnið.

Mozilla fyrirtæki áætlanir notaðu RLBox í Linux byggingum af Firefox 74 og macOS byggingum af Firefox 75 til að einangra framkvæmd bókasafns Graphite, ábyrgur fyrir endurgerð leturgerða. Hins vegar er RLBox ekki sértækt fyrir Firefox og hægt er að nota það til að einangra hvaða bókasöfn sem er í handahófskenndum verkefnum. Þróun RLBox dreifing undir MIT leyfi. RLBox styður eins og er Linux og macOS palla, með Windows stuðningi væntanlega síðar.

Vélbúnaður Vinna RLBox gengur út á að setja saman C/C++ kóða einangraðs bókasafns í lágstigs millistigs WebAssembly kóða, sem síðan er hannaður sem WebAssembly eining, þar sem heimildirnar eru aðeins settar í tengslum við þessa einingu (til dæmis bókasafn til að vinna strengi mun ekki geta opnað netinnstung eða skrá) . Umbreyta C/C++ kóða í WebAssembly er gert með því að nota wasi-sdk.

Fyrir beina framkvæmd er WebAssembly einingin sett saman í vélkóða með því að nota þýðanda Það skín og keyrir í sérstöku "nanoprocess" einangrað frá restinni af minni forritsins. Lucet þýðandinn er byggður á sama kóða og JIT vélin Kranalyfta, notað í Firefox til að keyra WebAssembly.

Samsetta einingin starfar á sérstöku minnisvæði og hefur ekki aðgang að restinni af vistfangarýminu. Ef varnarleysi í bókasafninu er nýtt, verður árásarmaðurinn takmarkaður og mun ekki geta nálgast minnissvæði aðalferlisins eða flutt stjórn út fyrir einangraða umhverfið.

Mozilla byrjar innleiðingu á RLBox bókasafns einangrunartækni

Upplýsingar á háu stigi eru veittar fyrir þróunaraðila API, sem gerir þér kleift að hringja í bókasafnsaðgerðir í einangrunarham. WebAssembly meðhöndlarar þurfa nánast engin viðbótarauðlindir og samskipti við þá eru ekki mikið hægari en að hringja í venjulegar aðgerðir (safnsins aðgerðir eru keyrðar í formi innfædds kóða, og kostnaður vegna kostnaðar myndast aðeins þegar afritað er og athugað gögn í samskiptum við einangraða umhverfið). Ekki er hægt að kalla á einangraðar aðgerðir bókasafns beint og verður að nálgast þær með því að nota
layer invoke_sandbox_function().

Aftur á móti, ef það er nauðsynlegt að kalla á ytri aðgerðir úr bókasafninu, verða þessar aðgerðir að vera sérstaklega skilgreindar með því að nota register_callback aðferðina (sjálfgefið, RLBox veitir aðgang að aðgerðum staðlað bókasafn). Til að tryggja minnisöryggi er einangrun kóða keyrslu ekki nóg og krefst þess að athuga gagnastrauma sem skilað er.

Gildi sem myndast í einangruðu umhverfi eru merkt sem ótraust og takmörkuð notkun lituð merki og fyrir "þrif" sem þeir þurfa sannprófun og afrita í minni forrita.
Án hreinsunar, tilraun til að nota menguð gögn í samhengi sem krefst reglulegra gagna (og öfugt) leiðir til þess að villur verða til við samantektartíma. Lítil föll rök, skilgildi og mannvirki eru send í gegnum afritun milli vinnsluminni og sandkassaminnis. Fyrir stór gagnasöfn er minni úthlutað í einangruðu umhverfi og beinum sandkassatilvísunarbendingu er skilað aftur í aðalferlið.

Heimild: opennet.ru

Bæta við athugasemd