PĂ€rast aasta kestnud arendust on avaldatud uus versioon tööriistadest isoleeritud keskkondade haldamiseks, Bubblewrap 0.9, mida kasutatakse piiratud privileegidega kasutajate ĂŒksikrakenduste piiramiseks. T praktikas kasutatakse Bubblewrap'i Flatpak'i projektis kĂ€ivitatavate pakettide rakenduste isoleerimiseks. Projekti kood on kirjutatud C keeles ja 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:
- Algteksti paketist on eemaldatud Autotools'is genereeritud failid. NĂŒĂŒd soovitatakse koostamiseks kasutada Meson koostesĂŒsteemi. Autotools'i valikuline tugi on jĂ€tkuvalt olemas, kuid tulevastes vĂ€ljaannetes kavatsetakse see eemaldada.
- Lisatud on valik "âargv0", et seadistada kĂ€ivitusargumentide nullargument (argv[0] - tĂ€itmisfaili nimi, nĂ€iteks "âargv0 /usr/bin/test").
- Valik "âsymlink" aktiveeritakse nĂŒĂŒd ainult siis, kui sĂŒmboolne link juba eksisteerib ja osutab Ă”igele eesmĂ€rgifailile.
- Dokumenditud on valik "âcap-add", mida kasutatakse capability-lippude seadistamiseks, nĂ€iteks "CAP_DAC_READ_SEARCH".
- TÔstetud on vigade informatiivsust, mis kuvatakse mountimise tÔrgete korral.
- Protsessi unit-testide loomine on lihtsustatud.
- KasutusnÀidetes on lÔpetatud vanade Python'i versioonide tugi.
- MĂ€lu eraldamise toimingud on paranenud.
Allikas: opennet.ru
