KĂ€es on Bubblewrap 0.6 tööriistakomplekti vĂ€ljaanne, mis on tavaliselt kasutatav isoleeritud keskkondade korraldamiseks ja mis piirab mittesĂŒsteemi kasutajate eraldi rakendusi. Praktikas kasutab Bubblewrap Flatpaki projekti rakendusi pakettide isoleerimise kihina. Projekti kood on kirjutatud C-keeles ja levitatakse LGPLv2+ litsentsi alusel.
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 identsuste ruumide (user namespaces) aktiveerimine, mis vĂ”imaldab konteinerites kasutada oma eraldi identsuste kogumit, ei ole vajalik, kuna vaikimisi ei tööta see paljudes jaotustes (Bubblewrap on positsioneeritud kui piiratud suid-implementatsioon kasutaja identsuste vĂ”imaluste alamhulgast - kĂ”ik kasutaja ja protsessi identsused keskkonnast, vĂ€lja arvatud praegune, vĂ€listamiseks kasutatakse reĆŸiime CLONE_NEWUSER ja CLONE_NEWPID). TĂ€iendava kaitse tagamiseks kĂ€ivitatakse Bubblewrap'i juhtimise all programmid PR_SET_NO_NEW_PRIVS reĆŸiimis, 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 Firejail vahel, mis kasutab samuti setuid mudelit, on see, et Bubblewrap-i konteinerite loomise kiht sisaldab vaid vajalikku minimaalsust, samas kui kĂ”ik laiendatud funktsioonid, mis on vajalikud graafiliste rakenduste kĂ€itamiseks, lauaarvutiga suhtlemiseks ja Pulseaudio nĂ”uete filtreerimiseks, on vĂ€lja viidud Flatpaki kĂŒlge ja teostatakse pĂ€rast privileegide tĂŒhistamist. Firejail koondab aga kĂ”ik kaasnevad funktsioonid ĂŒhte tĂ€idisega faili, mis muudab selle auditeerimise ja turvalisuse sĂ€ilitamise keerulisemaks.
Uues vÀljaandes:
- Lisatud on tugi Meson koostamis sĂŒsteemile. Autotools koostamise tugi on endiselt olemas, kuid eemaldatakse ĂŒhes jĂ€rgmises vĂ€ljaandes.
- Rakendatud on valik ââadd-seccompâ, mis vĂ”imaldab lisada rohkem kui ĂŒhe seccomp programmi. Lisatud on hoiatus, et kui valikut ââseccompâ antakse uuesti, rakendatakse ainult viimast parameetrit.
- Git-repositooriumi master haru on nimetatud ĂŒmber main-iks.
- Lisatud on osaline tugi REUSE spetsifikatsioonile, mis standardiseerib litsentside ja autoriÔiguste teabe esitamise protsessi. Paljusid koodifaile on lisatud pÀiseid SPDX-License-Identifier. REUSE soovituste jÀrgimine lihtsustab litsentside automaatset mÀÀramist rakenduse koodiosadele.
- Lisatud kontroll argumentide arvu (argc) vÀÀrtuse ĂŒle ning rakendatud hĂ€daĂ„vĂ€ljumine, kui arvu vÀÀrtus on null. Muudatus aitab vĂ€ltida turvaprobleeme, mis on pĂ”hjustatud vale argumentide töötlemisest kĂ€skude rea kaudu, nagu CVE-2021-4034 Polkitis.
Allikas: opennet.ru
