Rhyddhau Bubblewrap 0.6, haen ar gyfer creu amgylcheddau ynysig

Mae rhyddhau offer ar gyfer trefnu gwaith amgylcheddau ynysig Bubblewrap 0.6 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:

  • Cefnogaeth ychwanegol i system ymgynnull Meson. Mae cefnogaeth ar gyfer adeiladu gydag Autotools wedi'i gadw am y tro, ond bydd yn cael ei ddileu mewn datganiad yn y dyfodol.
  • Wedi gweithredu opsiwn "--add-seccomp" i ychwanegu mwy nag un rhaglen seccomp. Ychwanegwyd rhybudd, os byddwch yn nodi'r opsiwn "--seccomp" eto, dim ond y paramedr olaf fydd yn cael ei gymhwyso.
  • Mae'r brif gangen yn yr ystorfa git wedi'i hailenwi'n brif gangen.
  • Ychwanegwyd cefnogaeth rannol i'r fanyleb REUSE, sy'n uno'r broses o nodi gwybodaeth am drwydded a hawlfraint. Mae penawdau SPDX-License-Identifier wedi'u hychwanegu at lawer o ffeiliau cod. Mae dilyn y canllawiau REUSE yn ei gwneud hi'n haws penderfynu'n awtomatig pa drwydded sy'n berthnasol i ba rannau o god y cais.
  • Ychwanegwyd gwirio gwerth rhifydd dadl y llinell orchymyn (argc) a gweithredu allanfa frys os yw'r rhifydd yn sero. Mae'r newid yn helpu i rwystro materion diogelwch a achosir gan drin dadleuon llinell orchymyn a basiwyd yn anghywir, megis CVE-2021-4034 yn Polkit.

Ffynhonnell: opennet.ru

Ychwanegu sylw