Mozilla yn Dechrau Gweithredu Technoleg Ynysu Llyfrgell RLBox

Ymchwilwyr o Brifysgol Stanford, Prifysgol California yn San Diego a Phrifysgol Texas yn Austin wedi datblygu offer RLBox, y gellir ei ddefnyddio fel haen ynysu ychwanegol i rwystro gwendidau mewn llyfrgelloedd swyddogaeth. Mae RLBox wedi'i anelu at ddatrys problem diogelwch llyfrgelloedd trydydd parti nad ydynt yn ymddiried ynddynt nad ydynt o dan reolaeth datblygwyr, ond y gall eu gwendidau beryglu'r prif brosiect.

Cwmni Mozilla cynlluniau defnyddio RLBox mewn adeiladau Linux o Firefox 74 ac adeiladau macOS o Firefox 75 i ynysu gweithrediad llyfrgell graffit, yn gyfrifol am rendro ffontiau. Fodd bynnag, nid yw RLBox yn benodol i Firefox a gellir ei ddefnyddio i ynysu unrhyw lyfrgelloedd mewn prosiectau mympwyol. Datblygiadau RLBox lledaenu dan drwydded MIT. Ar hyn o bryd mae RLBox yn cefnogi llwyfannau Linux a macOS, a disgwylir cefnogaeth Windows yn ddiweddarach.

Mecanwaith Daw gwaith RLBox i lawr i grynhoi cod C/C++ llyfrgell ynysig yn god WebCynulliad canolradd lefel isel, sydd wedyn wedi'i gynllunio fel modiwl WebAssembly, y mae ei ganiatadau wedi'u gosod mewn perthynas â'r modiwl hwn yn unig (er enghraifft, llyfrgell ar gyfer prosesu tannau ni fydd yn gallu agor soced rhwydwaith neu ffeil) . Mae trosi cod C/C++ i WebAssembly yn cael ei wneud gan ddefnyddio wasi-sdk.

I'w weithredu'n uniongyrchol, mae modiwl WebAssembly yn cael ei grynhoi i god peiriant gan ddefnyddio casglwr Lucet ac yn rhedeg mewn "nanoprocess" ar wahân wedi'i ynysu oddi wrth weddill cof y cais. Mae casglwr Lucet yn seiliedig ar yr un cod â'r injan JIT lifft craen, a ddefnyddir yn Firefox i weithredu WebAssembly.

Mae'r modiwl sydd wedi'i ymgynnull yn gweithredu mewn man cof ar wahân ac nid oes ganddo fynediad i weddill y gofod cyfeiriad. Os manteisir ar fregusrwydd yn y llyfrgell, bydd yr ymosodwr yn gyfyngedig ac ni fydd yn gallu cyrchu mannau cof y brif broses na throsglwyddo rheolaeth y tu allan i'r amgylchedd ynysig.

Mozilla yn Dechrau Gweithredu Technoleg Ynysu Llyfrgell RLBox

Darperir gwybodaeth lefel uchel i ddatblygwyr API, sy'n eich galluogi i alw swyddogaethau llyfrgell yn y modd ynysu. Nid oes angen bron dim adnoddau ychwanegol ar drinwyr WebCynulliad ac nid yw rhyngweithio â nhw yn llawer arafach na galw swyddogaethau arferol (mae swyddogaethau'r llyfrgell yn cael eu gweithredu ar ffurf cod brodorol, a dim ond wrth gopïo a gwirio data yn ystod rhyngweithio â'r amgylchedd ynysig y mae costau gorbenion yn codi). Ni ellir galw swyddogaethau llyfrgell ynysig yn uniongyrchol a rhaid eu cyrchu gan ddefnyddio
haen invoke_sandbox_function().

Yn ei dro, os oes angen galw swyddogaethau allanol o'r llyfrgell, rhaid diffinio'r swyddogaethau hyn yn benodol gan ddefnyddio'r dull register_callback (yn ddiofyn, mae RLBox yn darparu mynediad i swyddogaethau llyfrgell safonol). Er mwyn sicrhau diogelwch cof, nid yw ynysu gweithredu cod yn ddigon ac mae angen gwirio'r ffrydiau data a ddychwelwyd hefyd.

Mae gwerthoedd a gynhyrchir mewn amgylchedd ynysig yn cael eu marcio fel rhai annibynadwy a defnydd cyfyngedig marciau llygredig ac ar gyfer “glanhau” y maent yn gofyn dilysu a chopïo i gof y cais.
Heb lanhau, mae ceisio defnyddio data llygredig mewn cyd-destun sy'n gofyn am ddata rheolaidd (ac i'r gwrthwyneb) yn arwain at gamgymeriadau yn cael eu cynhyrchu ar amser crynhoi. Mae dadleuon swyddogaeth fach, gwerthoedd dychwelyd, a strwythurau yn cael eu trosglwyddo trwy gopïo rhwng cof proses a chof blwch tywod. Ar gyfer setiau data mawr, dyrennir cof mewn amgylchedd ynysig a dychwelir pwyntydd cyfeirio blwch tywod uniongyrchol i'r brif broses.

Ffynhonnell: opennet.ru

Ychwanegu sylw