Bubblewrap 0.9 vÀljaanne, isoleeritud keskkondade loomiseks mÔeldud kihid

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

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster