Izdanje Bubblewrap 0.6, slojevi za stvaranje okruženja u sandboxu

Dostupno je izdanje alata za organiziranje rada izoliranih okruženja Bubblewrap 0.6, koji se obično koristi za ograničavanje pojedinačnih aplikacija nepovlaštenih korisnika. U praksi, projekt Flatpak koristi Bubblewrap kao sloj za izolaciju aplikacija pokrenutih iz paketa. Kôd projekta napisan je u C-u i distribuira se pod licencom LGPLv2+.

Za izolaciju se koriste tradicionalne tehnologije virtualizacije Linux spremnika, temeljene na korištenju cgroups, namespaces, Seccomp i SELinux. Za izvođenje privilegiranih operacija za konfiguriranje spremnika, Bubblewrap se pokreće s root pravima (izvršna datoteka s oznakom suid), a zatim poništava privilegije nakon što se spremnik inicijalizira.

Aktivacija korisničkih prostora imena u sustavu prostora imena, koji vam omogućuje korištenje vlastitog zasebnog skupa identifikatora u spremnicima, nije potrebna za rad, budući da ne radi prema zadanim postavkama u mnogim distribucijama (Bubblewrap je pozicioniran kao ograničena suid implementacija podskup mogućnosti korisničkih imenskih prostora - za isključivanje svih identifikatora korisnika i procesa iz okruženja, osim trenutnog, koriste se načini rada CLONE_NEWUSER i CLONE_NEWPID). Za dodatnu zaštitu, programi koji se izvršavaju pod Bubblewrap pokreću se u PR_SET_NO_NEW_PRIVS modu, koji zabranjuje stjecanje novih privilegija, na primjer, ako je prisutna zastavica setuid.

Izolacija na razini datotečnog sustava postiže se stvaranjem novog namespacea montiranja prema zadanim postavkama, u kojem se prazna korijenska particija stvara pomoću tmpfs. Ako je potrebno, vanjske FS particije se pridružuju ovoj particiji u načinu rada "mount —bind" (na primjer, kada se pokrene s opcijom "bwrap —ro-bind /usr /usr", /usr particija se prosljeđuje iz glavnog sustava u načinu rada samo za čitanje). Mrežne mogućnosti ograničene su na pristup sučelju povratne petlje s izolacijom mrežnog stoga putem oznaka CLONE_NEWNET i CLONE_NEWUTS.

Ključna razlika u odnosu na sličan Firejail projekt, koji također koristi model pokretanja setuid, je da u Bubblewrapu sloj za stvaranje spremnika uključuje samo potrebne minimalne mogućnosti i sve napredne funkcije potrebne za pokretanje grafičkih aplikacija, interakciju s radnom površinom i filtriranje zahtjeva u Pulseaudio, prebačen na stranu Flatpaka i izvršen nakon poništavanja privilegija. Firejail, s druge strane, kombinira sve povezane funkcije u jednoj izvršnoj datoteci, što otežava reviziju i održavanje sigurnosti na odgovarajućoj razini.

U novom izdanju:

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

Izvor: opennet.ru

Dodajte komentar