Bubblewrap, një mjet për krijimin e aplikacioneve në mjedise të izoluara

Bubblewrap është një mjet çfarë funksionon për të organizuar punën e sandbox në Linux dhe vrapo në nivelin e aplikimit të përdoruesve jo të privilegjuar. Në praktikë, Bubblewrap përdoret nga projekti Flatpak si një shtresë e ndërmjetme për të izoluar aplikacionet e nisura nga paketat e programeve.

Për izolim, Linux përdor teknologjitë e virtualizimit të kontejnerëve tradicionalë bazuar në përdorimin e grupeve, hapësirave të emrave, Seccomp dhe SELinux. Për të kryer operacione të privilegjuara për të konfiguruar një kontejner, Bubblewrap fillon me privilegjet root (një skedar i ekzekutueshëm me një flamur suid), i ndjekur nga një rivendosje e privilegjit pasi të jetë iniciuar ena.

Nuk ka nevojë të aktivizoni hapësirat e emrave të përdoruesve në sistem, duke ju lejuar të përdorni grupin tuaj të ID-ve në kontejnerë, pasi që si parazgjedhje nuk funksionon në shumë shpërndarje.

Rreth Bubblewrap

Bubblewrap është pozicionuar si një zbatim i kufizuar i suidës nga nëngrupi i funksioneve të hapësirës së emrave të përdoruesit për të përjashtuar të gjithë id-të e përdoruesit dhe të procesit nga mjedisi përveç asaj aktuale, përdorni modalitetet CLONE_NEWUSER dhe CLONE_NEWPID.

Për mbrojtje shtesë, programet që ekzekutohen në Bubblewrap fillojnë në modalitet PR_SET_NO_NEW_PRIVS, që ndalon privilegjet e reja, për shembull, me flamurin setuid.

Izolimi në nivelin e sistemit të skedarëve bëhet duke krijuar, si parazgjedhje, një hapësirë ​​të re për emrin e malit, në të cilën krijohet një ndarje e zbrazët e rrënjës duke përdorur tmpfs.

Nëse është e nevojshme, seksionet e jashtme të FS-së janë bashkangjitur këtij seksioni në «mali - lidh»(Për shembull, duke filluar me opsionin«bwrap –ro-bind / usr / usr', Seksioni / usr përcillet nga hosti në mënyrën vetëm për lexim).

Aftësitë e rrjetit janë të kufizuara për të hyrë në ndërfaqen e kthimit përmbyset me izolimin e pirgut të rrjetit përmes treguesve CLONE_NEWNET dhe CLONE_NEWUTS.

Dallimi kryesor me projektin e ngjashëm Firejail, i cili gjithashtu përdor lëshuesin setuid, është ai në Bubblewrap, shtresa e kontejnerit përfshin vetëm tiparet minimale të nevojshme dhe të gjitha funksionet e përparuara të nevojshme për të nisur aplikacione grafike, për të bashkëvepruar me desktopin dhe për të filtruar thirrjet në Pulseaudio, sillen së bashku me Flatpak dhe ekzekutohen pasi të rivendosen privilegjet.

Nga ana tjetër, Firejail, kombinon të gjitha funksionet e lidhura në një skedar të ekzekutueshëm, duke komplikuar auditimin tuaj dhe mbajtjen e sigurisë në nivelin e duhur.

Bubblewrap në thelb funksionon me anë të krijimi i një hapësire të zbrazët të emrave në një skedar të përkohshëm i cili do të shkatërrohet pasi të ketë përfunduar përpunimi i sandboxit.

Duke përdorur ndërprerësit, përdoruesi mund të ndërtojë mjedisin e dëshiruar të sistemit të skedarëve brenda hapësirës së emrave të malit duke u montuar në lidhjen e drejtorive të dëshiruara nga sistemi pritës.

Mbështjellës flluskash 0.4.0

Bubblewrap aktualisht është në versionin e tij 0.4.0 i cili është lëshuar së fundmi. Kodi i projektit është shkruar në C dhe shpërndahet nën licencën LGPLv2 +.

Versioni i ri shquhet për zbatimin e mbështetjes për bashkimin e hapësirave të emrave dhe proceseve përdoruesit ekzistues (hapësirat e emrave pid).

Flamujt "–përdorime", "–userns2" dhe "–pidns" janë shtuar për të kontrolluar lidhjen e hapësirave të emrave.

Kjo karakteristikë nuk funksionon në modalitetin setuid dhe kërkon një mënyrë të veçantë që mund të funksionojë pa privilegjet e rrënjës, por kërkon që hapësira e emrave të përdoruesve të aktivizohet në sistem (e çaktivizuar si parazgjedhje në Debian dhe RHEL / CentOS) dhe nuk përjashton mundësinë e shfrytëzimit potencialisht dobësitë e mbetura për kufijtë e "hapësirave të përdoruesve" kufizimet.

Nga tiparet e reja të Bubblewrap 0.4, vërehet gjithashtu mundësia e ndërtimit me bibliotekën musl C në vend të glibc, dhe mbështetje për ruajtjen e informacionit mbi hapësirën e emrave në një skedar statistikor në formatin JSON.

Kodi Bubblewrap, si dhe dokumentacioni në lidhje me të, mund të konsultohen në Github, lidhja është kjo.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.