Saadaval on tööriistade vĂ€ljaanne izolatsioonikeskkondade korraldamiseks Bubblewrap 0.8, mida tavaliselt kasutatakse piiratud Ă”igustega kasutajate ĂŒksikrakenduste piiramiseks. Praktiliselt kasutatakse Bubblewrap'i projekti Flatpak poolt, et eraldada pakettide kaudu kĂ€ivitatavaid rakendusi. Projekti kood on kirjutatud C keeles ja seda levitatakse 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:
- Lisatud on valik ââdisable-usernsâ, mis keelab sandbox-keskkonnas oma sisemise kasutajaidentifikaatori ruumi (user namespace) loomise.
- Lisatud on valik ââassert-userns-disabledâ, et kontrollida, kas ââdisable-usernsâ valiku kasutamisel on olemasolev kasutajaidentifikaatori ruum kaasatud.
- Suurendatud on vigade teateid, mis on seotud kernelis CONFIG_SECCOMP ja CONFIG_SECCOMP_FILTER seadete keelamisega.
Allikas: opennet.ru
