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

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

  • Dodana je opcija “--disable-users” za onemogućavanje stvaranja vlastitog ugniježđenog korisničkog prostora imena u okruženju sandboxa.
  • Dodana opcija "--assert-userns-disabled" za provjeru koristi li se prostor postojećeg korisničkog ID-a kada se koristi opcija "--disable-users".
  • Povećan je sadržaj informacija u porukama o pogreškama koje se odnose na onemogućavanje postavki CONFIG_SECCOMP i CONFIG_SECCOMP_FILTER u kernelu.

Izvor: opennet.ru

Dodajte komentar