Bubblewrap 0.4.0:n julkaisu, kerros eristettyjen ympäristöjen luomiseen

Saatavilla työkalupakin uusi julkaisu Bubblewr 0.4.0, suunniteltu organisoimaan erillisten ympäristöjen työtä Linuxissa ja toimimaan etuoikeutettujen käyttäjien sovellustasolla. Käytännössä Flatpak-projekti käyttää Bubblewrapia kerroksena eristämään paketeista käynnistetyt sovellukset. Projektin koodi on kirjoitettu C- ja jakelija lisensoitu LGPLv2+:lla.

Eristykseen käytetään perinteisiä Linux-konttivirtualisointitekniikoita, jotka perustuvat cgroups-, nimiavaruuksien, Seccompin ja SELinuxin käyttöön. Jotta voidaan suorittaa etuoikeutettuja toimintoja säilön määrittämiseksi, Bubblewrap käynnistetään pääkäyttäjän oikeuksin (suid-lipulla varustettu suoritettava tiedosto) ja nollaa sitten käyttöoikeudet säilön alustuksen jälkeen.

Käyttäjien nimiavaruuksien aktivointi nimiavaruusjärjestelmässä, jonka avulla voit käyttää omaa erillistä tunnistejoukkoa säilöissä, ei vaadi toimintaa, koska se ei toimi oletuksena monissa jakeluissa (Bubblewrap on sijoitettu rajoitettuun tarkoitukseen. käyttäjien nimiavaruuksien alijoukko - jotta kaikki käyttäjä- ja prosessitunnisteet voidaan sulkea pois ympäristöstä, paitsi nykyinen, käytetään CLONE_NEWUSER- ja CLONE_NEWPID-tiloja). Lisäsuojaa varten, suoritettava hallinnassa
Bubblewrap-ohjelmat käynnistetään PR_SET_NO_NEW_PRIVS-tilassa, mikä estää uusien oikeuksien hankkimisen, jos esimerkiksi setuid-lippu on olemassa.

Eristäminen tiedostojärjestelmätasolla suoritetaan luomalla oletusarvoisesti uusi liitännän nimiavaruus, johon luodaan tyhjä juuriosio tmpfs:n avulla. Tarvittaessa tähän osioon liitetään ulkoiset FS-osiot "mount —bind"-tilassa (esimerkiksi kun se käynnistetään "bwrap -ro-bind /usr /usr" -vaihtoehdolla, /usr-osio välitetään pääjärjestelmästä. vain luku -tilassa). Verkkoominaisuudet rajoittuvat pääsyyn takaisinkytkentärajapintaan verkkopinon eristyksellä CLONE_NEWNET- ja CLONE_NEWUTS-lippujen kautta.

Suurin ero vastaavaan projektiin Palomies, joka myös käyttää setuid-käynnistysmallia, on se, että Bubblewrapissa säilön luontikerros sisältää vain tarvittavat vähimmäisominaisuudet ja kaikki edistyneet toiminnot, joita tarvitaan graafisten sovellusten suorittamiseen, työpöydän kanssa vuorovaikutukseen ja Pulseaudion kutsujen suodattamiseen, on ulkoistettu Flatpak ja suoritetaan. sen jälkeen, kun oikeudet on palautettu. Firejail puolestaan ​​yhdistää kaikki asiaan liittyvät toiminnot yhteen suoritettavaan tiedostoon, mikä vaikeuttaa turvallisuuden tarkastamista ja ylläpitoa. oikea taso.

Uusi julkaisu on huomionarvoinen olemassa olevien käyttäjien nimiavaruuksien ja prosessien pid-nimiavaruuksien yhdistämisen tuen toteuttamisesta. Nimiavaruuksien yhdistämisen ohjaamiseksi on lisätty liput "--userns", "--userns2" ja "-pidns".
Tämä ominaisuus ei toimi setuid-tilassa ja vaatii erillisen tilan käytön, joka voi toimia ilman pääkäyttäjän oikeuksia, mutta vaatii aktivoinnin
käyttäjänimitilat järjestelmässä (oletusarvoisesti poissa käytöstä Debianissa ja RHEL/CentOS:ssä) eikä sulje pois mahdollisuutta hyväksikäyttö mahdollisesti jäljelle jäänyt haavoittuvuuksia "käyttäjänimiavaruuksien" rajoituskehykselle. Bubblewrap 0.4:n uusia ominaisuuksia ovat myös kyky rakentaa musl C -kirjastolla glibc:n sijaan ja tuki nimitilan tietojen tallentamiseen tiedostoon, jossa on tilastotietoja JSON-muodossa.

Lähde: opennet.ru

Lisää kommentti