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

Erillisten ympäristöjen työn järjestämiseen tarkoitettujen työkalujen julkaisu Bubblewrap 0.6 on saatavilla, jota käytetään yleensä rajoittamaan etuoikeutettujen käyttäjien yksittäisiä sovelluksia. Käytännössä Flatpak-projekti käyttää Bubblewrapia kerroksena eristämään paketeista käynnistetyt sovellukset. Projektikoodi on kirjoitettu C-kielellä ja sitä jaetaan LGPLv2+-lisenssillä.

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 toimintaan, koska se ei toimi oletuksena monissa jakeluissa (Bubblewrap on sijoitettu rajoitettuun tarkoitukseen. käyttäjien nimiavaruuksien alijoukko - kaikkien käyttäjä- ja prosessitunnisteiden sulkemiseksi pois ympäristöstä, paitsi nykyinen, käytetään CLONE_NEWUSER- ja CLONE_NEWPID-tiloja). Lisäsuojauksen vuoksi Bubblewrapin alla suoritettavat 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.

Keskeinen ero vastaavaan Firejail-projektiin, joka käyttää myös setuid-käynnistysmallia, on se, että Bubblewrapissa säilön luontikerros sisältää vain tarvittavat vähimmäisominaisuudet ja kaikki lisätoiminnot, jotka ovat tarpeen graafisten sovellusten suorittamiseen, työpöydän kanssa vuorovaikutukseen ja pyyntöjen suodattamiseen. Pulseaudioon, siirretään Flatpak-puolelle ja suoritetaan sen jälkeen, kun oikeudet on nollattu. Firejail puolestaan ​​yhdistää kaikki asiaan liittyvät toiminnot yhteen suoritettavaan tiedostoon, mikä vaikeuttaa turvallisuuden tarkastamista ja ylläpitämistä oikealla tasolla.

Uudessa julkaisussa:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Lähde: opennet.ru

Lisää kommentti