Rhyddhau Bubblewrap 0.8, haen ar gyfer creu amgylcheddau ynysig

Mae rhyddhau offer ar gyfer trefnu gwaith amgylcheddau ynysig Bubblewrap 0.8 ar gael, a ddefnyddir fel arfer i gyfyngu ar gymwysiadau unigol defnyddwyr difreintiedig. Yn ymarferol, mae Bubblewrap yn cael ei ddefnyddio gan brosiect Flatpak fel haen i ynysu cymwysiadau a lansiwyd o becynnau. Mae cod y prosiect wedi'i ysgrifennu yn C ac yn cael ei ddosbarthu o dan drwydded LGPLv2+.

Ar gyfer ynysu, defnyddir technolegau rhithwiroli cynhwysydd Linux traddodiadol, yn seiliedig ar ddefnyddio cgroups, gofodau enwau, Seccomp a SELinux. Er mwyn cyflawni gweithrediadau breintiedig i ffurfweddu cynhwysydd, mae Bubblewrap yn cael ei lansio gyda hawliau gwraidd (ffeil gweithredadwy gyda baner suid) ac yna'n ailosod breintiau ar Γ΄l i'r cynhwysydd gael ei gychwyn.

Nid oes angen actifadu gofodau enwau defnyddwyr yn y system gofod enwau, sy'n eich galluogi i ddefnyddio eich set ar wahΓ’n eich hun o ddynodwyr mewn cynwysyddion, ar gyfer gweithredu, gan nad yw'n gweithio'n ddiofyn mewn llawer o ddosbarthiadau (mae Bubblewrap wedi'i leoli fel gweithrediad siwt cyfyngedig o a is-set o alluoedd gofod enwau defnyddwyr - i eithrio pob dynodwr defnyddiwr a phroses o'r amgylchedd, ac eithrio'r un gyfredol, defnyddir y moddau CLONE_NEWUSER a CLONE_NEWPID). Ar gyfer amddiffyniad ychwanegol, mae rhaglenni a weithredir o dan Bubblewrap yn cael eu lansio yn y modd PR_SET_NO_NEW_PRIVS, sy'n gwahardd caffael breintiau newydd, er enghraifft, os yw'r faner setuid yn bresennol.

Cyflawnir ynysu ar lefel y system ffeiliau trwy greu gofod enw mowntio newydd yn ddiofyn, lle mae rhaniad gwraidd gwag yn cael ei greu gan ddefnyddio tmpfs. Os oes angen, mae rhaniadau FS allanol ynghlwm wrth y rhaniad hwn yn y modd β€œmount β€”bind” (er enghraifft, pan gaiff ei lansio gyda'r opsiwn "bwrap β€”ro-bind / usr / usr", anfonir y rhaniad /usr o'r brif system mewn modd darllen yn unig). Mae galluoedd rhwydwaith wedi'u cyfyngu i fynediad i'r rhyngwyneb loopback gydag ynysu stac rhwydwaith trwy'r baneri CLONE_NEWNET a CLONE_NEWUTS.

Y gwahaniaeth allweddol o'r prosiect tebyg Firejail, sydd hefyd yn defnyddio'r model lansio setuid, yw bod yr haen creu cynhwysydd yn Bubblewrap yn cynnwys y galluoedd lleiaf angenrheidiol yn unig, a'r holl swyddogaethau uwch sy'n angenrheidiol ar gyfer rhedeg cymwysiadau graffigol, rhyngweithio Γ’'r bwrdd gwaith a hidlo ceisiadau. i Pulseaudio, ei drosglwyddo i ochr Flatpak a'i ddienyddio ar Γ΄l i'r breintiau gael eu hailosod. Mae Firejail, ar y llaw arall, yn cyfuno'r holl swyddogaethau cysylltiedig mewn un ffeil weithredadwy, sy'n ei gwneud hi'n anodd archwilio a chynnal diogelwch ar y lefel gywir.

Yn y datganiad newydd:

  • Ychwanegwyd yr opsiwn β€œ--disable-userns” i analluogi creu ei le enw defnyddiwr nythu ei hun yn yr amgylchedd blwch tywod.
  • Ychwanegwyd opsiwn "--asserns-disabled" i wirio bod defnyddio opsiwn "--disable-userns" yn defnyddio gofod ID defnyddiwr presennol.
  • Mae cynnwys gwybodaeth negeseuon gwall sy'n ymwneud ag analluogi gosodiadau CONFIG_SECCOMP a CONFIG_SECCOMP_FILTER yn y cnewyllyn wedi'i gynyddu.

Ffynhonnell: opennet.ru

Ychwanegu sylw