PÀrast aasta pikkust arendust on vÀlja antud uus versioon tööriistakomplektist isolatsioonikeskkondade loomise jaoks, Bubblewrap 0.9, mida kasutatakse ebapÀdevate kasutajate rakenduste piiramiseks. Praktiliselt kasutab Bubblewrap projekti Flatpak kui kihti pakendites kÀivitatavate rakenduste isoleerimiseks. 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:
- Algse koodiga paketist on eemaldatud Autotools genereeritud failid. Kogu ehitamiseks soovitatakse nĂŒĂŒd kasutada Meson ehitussĂŒsteemi. Otsene tugi Autotools-le on veel sĂ€ilinud, kuid tulevastes vĂ€ljaannetes on plaanis see eemaldada.
- Lisatud on valik ââargv0â, et seadistada kĂ€surea nullargument (argv[0] â kĂ€ivitatava faili nimi, nĂ€iteks ââargv0 /usr/bin/testâ).
- Valik ââsymlinkâ töötab nĂŒĂŒd ainult siis, kui sĂŒmboolne link juba eksisteerib ja osutab Ă”igele sihtfailile.
- Dokumendis on kirjas valik ââcap-addâ, mida rakendatakse capability-lippude seadmiseks, nĂ€iteks âCAP_DAC_READ_SEARCHâ.
- Vead, mis ilmnevad monteerimise ebaÔnnestumise korral, on saanud rohkem teavet.
- Ăksuse testide loomine on lihtsustatud.
- KasutusnÀidetes on vanade Python versioonide tugi lÔpetatud.
- MĂ€lu haldamise operatsioonid on paranenud.
Allikas: opennet.ru
