uus vÀljaanne tööriistakomplektist , mis on loodud isoleeritud keskkondade korraldamiseks Linuxis ja töötab mitteprivileegitud kasutajate rakendustasandil. Praktiliselt kasutatakse Bubblewrapi Flatpaki projekti poolt rakenduste pakettide isoleerimise kihina. Projekti kood on kirjutatud C keeles ja jagatud LGPLv2+ litsentsi all.
Isolatsiooni tagamiseks kasutatakse traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroupside, nimede ruumide (namespaces), Seccomp-i ja SELinuxi kasutamisel. Privilegeeritud konteineri seadistamise toimingute tĂ€itmiseks kĂ€ivitatakse Bubblewrap root-Ă”igustes (suud-failiga) ning privileegid tĂŒhistatakse pĂ€rast konteineri initsialiseerimise lĂ”petamist.
Kasutaja nimede ruumide (user namespaces) aktiveerimine sĂŒsteemis, mis vĂ”imaldab konteinerites kasutada oma eraldi identifikaatorite komplekti, ei ole vajalik, kuna vaikimisi ei tööta see paljudes jaotustes (Bubblewrapi positsioneeritakse piiratud suid-implementatsioonina kasutaja nimede ruumide vĂ”imaluste alamkogust â kĂ”igi kasutaja ja protsessi identifikaatorite vĂ€listamiseks keskkonnast, vĂ€lja arvatud praegune, kasutatakse reĆŸiime CLONE_NEWUSER ja CLONE_NEWPID). TĂ€iendava kaitse tagamiseks Bubblewrapi halduses
rakendused kĂ€ivitatakse reĆŸiimis PR_SET_NO_NEW_PRIVS, mis keelab uute privileegide saamise, nĂ€iteks setuid lipu olemasolu korral.
FailisĂŒsteemi isolatsioon toimub loomise abil vaikimisi uut mĂ€etamine ruumi (mount namespace), kus tmpfs abil luuakse tĂŒhi juurepartitsioon. Kui vajalik, kinnitatakse sellele partitsioonile vĂ€list failisĂŒsteemi partitsioonid reĆŸiimis âmount âbindâ (nĂ€iteks kĂ€ivitamisel valikuga âbwrap âro-bind /usr /usrâ partitsioon /usr edastatakse pĂ”hisĂŒsteemist ainult lugemiseks). VĂ”rguvĂ”imalused on piiratud juurdepÀÀsuga loopback-liidesele koos vĂ”rguhalli isoleerimisega flagedega CLONE_NEWNET ja CLONE_NEWUTS.
Peamine erinevus sarnase projekti ees , mis kasutab samuti kĂ€ivitamise mudelit setuid rakendamisega, erineb Bubblewrapist, kuna konteinerite loomise kiht sisaldab ainult vajalikku minimaalset vĂ”imaluste kogumit, samas kui kĂ”ik laiendatud funktsioonid, mis on vajalikud graafiliste rakenduste kĂ€itamiseks, töölauaga suhtlemiseks ja Pulseaudio pĂ€ringute filtreerimiseks, on viidud Flatpaki poole ja teostatakse pĂ€rast privileegide tĂŒhistamist. Firejail koondab kĂ”ik kaasnevad funktsioonid ĂŒhte tĂ€itevfaili, mis muudab auditeerimise ja turvalisuse sĂ€ilitamise .
Uus vĂ€ljaanne on silmapaistev, kuna see rakendab olemasolevate kasutaja nimede ruumide (user namespaces) ja protsesside (pid namespaces) ĂŒhendamise toetust. Ruumi ĂŒhendamise juhtimiseks on lisatud lipud "âuserns", "âuserns2" ja "âpidns".
See funktsioon ei tööta setuid reĆŸiimis ja nĂ”uab eraldi reĆŸiimi kasutamist, mis saab töötada ilma root Ă”igusteta, kuid vajab
kasutaja nimede ruumide aktiveerimist sĂŒsteemis (vaikimisi on need Debianis ja RHEL/CentOSis keelatud) ning ei vĂ€lista kasutusest tulenevate piirangute "user namespaces". Uute funktsioonide seas on Bubblewrap 0.4 ka vĂ”imalus koostada musli C teegi abil asemel glibci ja toetus nimede ruumide teabe salvestamiseks statistika failisse JSON formaadis.
Allikas: opennet.ru
