Vydanie Bubblewrap 0.8, vrstvy na tvorbu izolovaných prostredí

K dispozícii je verzia nástroja na organizáciu práce izolovaných prostredí Bubblewrap 0.8, zvyčajne používaného na obmedzenie jednotlivých aplikácií nepriviligovaných používateľov. V praxi sa Bubblewrap používa projektom Flatpak ako medzičlánok na izoláciu spúšťaných aplikácií z balíkov. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou LGPLv2+.

Na izoláciu sa používajú tradičné technológie kontajnerovej virtualizácie pre Linux, založené na použití cgroups, priestorov mien (namespaces), Seccomp a SELinux. Na vykonávanie privilegovaných operácií pri konfigurácii kontajnera sa Bubblewrap spúšťa s právami root (vykonávateľný súbor s suid-flagom) s následným zrušením privilégií po dokončení inicializácie kontajnera.

Aktivácia v systéme priestorov mien identifikátorov používateľa (user namespaces), ktoré umožňujú používať vo vreciach vlastný samostatný súbor identifikátorov, na prácu nie je potrebná, pretože predvolene nefunguje v mnohých distribúciách (Bubblewrap sa pozicionuje ako obmedzená suid-implementácia podmnožiny možností user namespaces — na vylúčenie všetkých identifikátorov používateľov a procesov z prostredia, okrem aktuálneho, sa používajú režimy CLONE_NEWUSER a CLONE_NEWPID). Pre ďalšiu ochranu sa programy spúšťané pod správou Bubblewrap spúšťajú v režime PR_SET_NO_NEW_PRIVS, ktorý zakazuje získanie nových privilégií, napríklad pri existencii príznaku setuid.

Izolácia na úrovni súborového systému sa uskutočňuje prostredníctvom vytvorenia predvolene nového priestoru názvov bodov montovania (mount namespace), v ktorom sa pomocou tmpfs vytvára prázdny koreňový oddiel. Do tohto oddielu sa pri potreba pripájajú oddiely externých FS v režime „mount —bind“ (napríklad pri spustení s možnosťou „bwrap —ro-bind /usr /usr“ sa oddiel /usr prenáša z hlavného systému v režime iba na čítanie). Sieťové možnosti sú obmedzené na prístup k loopback rozhraniu s izoláciou sieťového zásobníka prostredníctvom vlajok CLONE_NEWNET a CLONE_NEWUTS.

Kľúčovým rozdielom od podobného projektu Firejail, ktorý tiež používa model spúšťania s použitím setuid, je to, že v Bubblewrap vrstva na vytváranie kontajnerov obsahuje len nevyhnutné minimum funkcií, pričom všetky rozšírené funkcie potrebné na spúšťanie grafických aplikácií, interakciu s desktopom a filtrovanie požiadaviek na Pulseaudio, sú presunuté na stranu Flatpak a vykonávajú sa až po zrušení privilégií. Firejail však spája všetky súvisiace funkcie v jednom vykonateľnom súbore, čo komplikuje jeho audit a udržanie bezpečnosti na požadovanej úrovni.

V novom vydaní:

  • Pridaná možnosť „—disable-userns“, ktorá zakazuje vytváranie vlastného vnoreného priestoru identifikátorov používateľov (user namespace) v prostredí sandbox.
  • Pridaná možnosť „—assert-userns-disabled“ na overenie, že pri použití možnosti „—disable-userns“ je využívaný existujúci priestor identifikátorov používateľov.
  • Zvýšená informatívnosť chybových správ spojených s vypnutím nastavení CONFIG_SECCOMP a CONFIG_SECCOMP_FILTER v jadre.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster