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