Saabumine tööriistarikka Bubblewrap 0.5.0, mida tavaliselt kasutatakse piiratud juurdepÀÀsuga kasutajate ĂŒksikute rakenduste isoleerimiseks. Praktikas kasutatakse Bubblewrap'i projekti Flatpak puhul pakettide alusel kĂ€ivitatavate rakenduste isoleerimise kihina. Projekti kood on kirjutatud C keeles ja jagatakse LGPLv2+ litsentsi 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.
Kasutajate nimede (user namespaces) aktiveerimine sĂŒsteemis, mis vĂ”imaldab konteinerites kasutada oma ainulaadset ID-de kogumit, ei ole vajalik, kuna see ei tööta vaikimisi paljudes distributsioonides (Bubblewrap'i positsioneeritakse piiratud suid-teostusena kasutaja nimede vĂ”imaluste alamhulgas â kĂ”ik kasutaja ja protsessi ID-d kĂ”rvaldatakse keskkonnast, vĂ€lja arvatud praegune, kasutades reĆŸiime CLONE_NEWUSER ja CLONE_NEWPID). TĂ€iendava kaitse pakkumiseks kĂ€ivitatakse Bubblewrap'i halduses olevad programmid PR_SET_NO_NEW_PRIVS reĆŸiimis, mis keelab uute privileegide saamise, nĂ€iteks setuid lipu olemasolu korral.
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.
Oluline erinevus sarnase projekti Firejail'iga, mis kasutab samuti setuid mudelit, on see, et Bubblewrap'i konteinerite loomise kiht sisaldab vaid hĂ€davajalikke vĂ”imalusi. KĂ”ik tĂ€iendavad funktsioonid, mis on vajalikud graafiliste rakenduste kĂ€itamiseks, lauaarvutiga suhtlemiseks ning Pulseaudio'le pöördumiste filtreerimiseks, on viidud Flatpak'i poolt ja neid teostatakse juba pĂ€rast privileegide tĂŒhistamist. Firejail aga ĂŒhendab ĂŒhte tĂ€itmisfaili kĂ”ik nĂ”utavad funktsioonid, mis muudab selle kontrollimise ja turvalisuse sĂ€ilitamise keerulisemaks.
Uues vĂ€ljaandes on pakutud valikuid: ââchmodâ, et muuta juurdepÀÀsuluba, ââclearenvâ keskkonnamuutujate (vĂ€lja arvatud PWD) puhastamiseks ning ââpermsâ, et mÀÀrata juurdepÀÀsulubade Ă”igused, mida rakendatakse operatsioonide ââbind-dataâ, ââdirâ, ââfileâ, ââro-bind-dataâ ja ââtmpfsâ kĂ€ivitamisel. Parandatud on tĂ”rke diagnoosimist, mis tekkis sidumise reĆŸiimis monteerimisel. zsh-i jaoks on lisatud tĂŒkeldamise toe toetamine, vajutades tab-key.
Allikas: opennet.ru
