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

Dostupno je izdanje alata za organiziranje rada izoliranih okruženja Bubblewrap 0.5.0, 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.

Novo izdanje nudi sljedeće opcije: "--chmod" za promjenu dopuštenja, "--clearenv" za brisanje varijabli okruženja (osim PWD) i "--perms" za definiranje dopuštenja koja se koriste pri izvođenju operacija "--bind" -data", "- dir", "--file", "--ro-bind-data" i "--tmpfs". Poboljšana dijagnoza problema koji se javljaju kada montaža ne uspije u načinu povezivanja. Dodana podrška za dovršetak naredbe pritiskom na tab za zsh.

Izvor: opennet.ru

Dodajte komentar