Välja antud Bubblewrap 0.6, kiht isoleeritud keskkondade loomiseks

Saadaval on tööriistade väljalase isoleeritud keskkondade töö korraldamiseks Bubblewrap 0.6, mida tavaliselt kasutatakse privilegeerimata kasutajate üksikute rakenduste piiramiseks. Praktikas kasutab Flatpaki projekt Bubblewrapi kihina pakettidest käivitatud rakenduste isoleerimiseks. Projekti kood on kirjutatud C-keeles ja seda levitatakse LGPLv2+ litsentsi all.

Isoleerimiseks kasutatakse traditsioonilisi Linuxi konteinerite virtualiseerimistehnoloogiaid, mis põhinevad cgroupide, nimeruumide, Seccompi ja SELinuxi kasutamisel. Konteineri konfigureerimiseks privilegeeritud toimingute tegemiseks käivitatakse Bubblewrap juurõigustega (käivitatav fail lipuga suid) ja lähtestab seejärel õigused pärast konteineri lähtestamist.

Kasutajanimeruumide aktiveerimine nimeruumisüsteemis, mis võimaldab konteinerites kasutada oma eraldi identifikaatorite komplekti, ei ole tööks vajalik, kuna see ei tööta vaikimisi paljudes distributsioonides (Bubblewrap on positsioneeritud kui piiratud sobiv rakendus kasutajanimeruumide võimaluste alamhulk - kõigi kasutajate ja protsesside identifikaatorite välistamiseks keskkonnast, välja arvatud praegune, kasutatakse režiime CLONE_NEWUSER ja CLONE_NEWPID). Täiendava kaitse tagamiseks käivitatakse Bubblewrap all käivitatavad programmid režiimis PR_SET_NO_NEW_PRIVS, mis keelab uute õiguste omandamise, näiteks kui setuid lipp on olemas.

Failisüsteemi tasemel isoleerimine saavutatakse vaikimisi uue mounti nimeruumi loomisega, milles luuakse tmpfs abil tühi juurpartitsioon. Vajadusel lisatakse sellele partitsioonile välised FS-i partitsioonid režiimis “mount —bind” (näiteks kui käivitatakse suvandiga “bwrap –ro-bind /usr /usr”, edastatakse /usr partitsioon põhisüsteemist kirjutuskaitstud režiimis). Võrguvõimalused on piiratud juurdepääsuga tagasisilmusliidesele koos võrgupinu isoleerimisega lippude CLONE_NEWNET ja CLONE_NEWUTS kaudu.

Peamine erinevus sarnasest Firejaili projektist, mis kasutab ka setuid käivitusmudelit, seisneb selles, et Bubblewrapis sisaldab konteineri loomise kiht ainult vajalikke minimaalseid võimalusi ja kõiki täiustatud funktsioone, mis on vajalikud graafiliste rakenduste käitamiseks, töölauaga suhtlemiseks ja päringute filtreerimiseks. Pulseaudiole, kantakse üle Flatpaki poolele ja käivitatakse pärast õiguste lähtestamist. Firejail seevastu ühendab kõik seotud funktsioonid ühte täitmisfaili, mis muudab kontrollimise ja turvalisuse õigel tasemel hoidmise keeruliseks.

Uues väljaandes:

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

Allikas: opennet.ru

Lisa kommentaar