uusim vÀljaanne tööriistade komplekt , mis on mÔeldud isoleeritud keskkondade haldamiseks Linuxis ja toimib rakenduste tasandil mitteprivilegeeritud kasutajate jaoks. Praktikas kasutatakse Bubblewrap'i projekti Flatpak'is talletatavate rakenduste isoleerimise kihina. Projekti kood on kirjutatud C keeles ja on litsentseeritud LGPLv2+ alusel.
Isolatsiooni tagamiseks kasutatakse Linuxile omaseid konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroup'e, nimede nimete (namespaces), Seccomp'i ja SELinuxi kasutamisel. Bubblewrap'i konteinereid seadistavate privileegidega toimingute tegemiseks kĂ€ivitatakse see root'i Ă”igustes (tehtud fail c suid-lipuga) ning privileegid tĂŒhistatakse pĂ€rast konteineri algatamist.
Kasutaja nimede ruumide (user namespaces) aktiveerimine, mis vĂ”imaldab konteinerites kasutada eraldi identifikaatorite kogumit, ei ole tööks vajalik, kuna see ei tööta vaikimisi paljudes jaotustes (Bubblewrap positsioneeritakse kui piiratud suid-implementatsioon kasutaja nimede ruumide objektidest â keskkonnast eemaldatakse kĂ”ik kasutaja- ja protsessiidentifikaatorid, vĂ€lja arvatud praegused, kasutades reĆŸiime CLONE_NEWUSER ja CLONE_NEWPID). TĂ€iendava kaitse tagamiseks kĂ€ivitatavad programmid
Bubblewrap'is kĂ€ivitatakse PR_SET_NO_NEW_PRIVS reĆŸiimis, mis keelab uute privileegide saamise, nĂ€iteks juhul, kui on olemas setuid lipp.
FailisĂŒsteemi tasemel isolatsioon saavutatakse vaikimisi uue montaaĆŸiruumi (mount namespace) loomisega, milles tmpfs abil luuakse tĂŒhi juurdunder. Sellesse sektsiooni ĂŒhendatakse vajadusel vĂ€liste failisĂŒsteemide jaotised reĆŸiimis âmount âbindâ (nt. kĂ€ivitamisel valikuga âbwrap âro-bind /usr /usrâ edastatakse /usr jaotis pĂ”hisĂŒsteemist ainult lugemiseks). VĂ”rguvĂ”imalusi piiratakse juurdepÀÀsuga loopback-liidesele, isoleerides vĂ”rguharu CLONE_NEWNET ja CLONE_NEWUTS lipud.
Peamine erinevus sarnase projekti , mis kasutab samuti setuid mudeli kĂ€ivitamiseks, on see, et Bubblewrap'i konteinerite loomise kiht sisaldab vaid vajalikku miinimumi vĂ”imalustest, samas kui kĂ”ik laiendatud funktsioonid, mis on vajalikud graafiliste rakenduste kĂ€itamiseks, töölaua suhtlemiseks ja Pulseaudio'le suunatud pĂ€ringute filtreerimiseks, on vĂ€lja toodud Flatpak'i poole, kus need kĂ€ivitatakse juba pĂ€rast privileegide kustutamist. Firejail koondab kĂ”ik toetavad funktsioonid ĂŒhte tĂ€idesaatvasse faili, mis muudab selle auditeerimise ja turvalisuse sĂ€ilimise keeruliseks .
Uus vĂ€ljaanne on mĂ€rkimisvÀÀrne olemasolevate kasutaja nimede ruumide (user namespaces) ja protsesside (pid namespaces) ĂŒhendamise toe rakendamise poolest. Ruumide ĂŒhendamise haldamiseks on lisatud lipud ââusernsâ, ââuserns2â ja ââpidnsâ.
See vĂ”imalus ei toimi setuid reĆŸiimis ja nĂ”uab eraldi reĆŸiimi kasutamist, mis suudab töötada ilma root'i Ă”iguste saamiseta, kuid nĂ”uab kasutaja nimede ruumide aktiveerimist (vaikimisi on need Debianis ja RHEL/CentOS'is keelatud) ning ei vĂ€lista
potentsiaalselt koossete "user namespaces" hulga piirangu jaoks. Uute vÔimalustena toob Bubblewrap 0.4 esile ka vÔimaluse koostada C-raamatukoguga musl glibc asemel ning toeta nime ruumide teabe salvestamist statistikaa failisse JSON-formaadis.
Allikas: opennet.ru
