Izdanje Bubblewrap 0.8, sloja za kreiranje izolovanog okruženja

Dostupno je izdanje alata za organizovanje rada izolovanih okruženja Bubblewrap 0.8, koji se obično koristi za ograničavanje pojedinačnih aplikacija neprivilegovanih korisnika. U praksi, Bubblewrap projekt Flatpak koristi kao sloj za izolaciju aplikacija pokrenutih iz paketa. Kod projekta je napisan u C i distribuira se pod licencom LGPLv2+.

Za izolaciju se koriste tradicionalne Linux tehnologije virtualizacije kontejnera, zasnovane na korištenju cgroups, imenskih prostora, Seccomp i SELinux. Za izvođenje privilegiranih operacija za konfiguriranje kontejnera, Bubblewrap se pokreće s root pravima (izvršna datoteka sa suid zastavicom), a zatim resetuje privilegije nakon što se kontejner inicijalizira.

Aktivacija korisničkih imenskih prostora u sistemu imenskog prostora, koji vam omogućava da koristite vlastiti zasebni skup identifikatora u kontejnerima, nije potrebna za rad, jer ne radi po defaultu u mnogim distribucijama (Bubblewrap je pozicioniran kao ograničena suid implementacija podskup mogućnosti korisničkog prostora imena - da se iz okoline izuzmu svi identifikatori korisnika i procesa, osim trenutnog, koriste se načini 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 nivou sistema datoteka se postiže kreiranjem novog prostora imena za montiranje prema zadanim postavkama, u kojem se kreira prazna root particija pomoću tmpfs-a. Ako je potrebno, eksterne FS particije su pripojene ovoj particiji u "mount —bind" modu (na primjer, kada se pokrene sa opcijom "bwrap —ro-bind /usr /usr", /usr particija se prosljeđuje iz glavnog sistema u režimu samo za čitanje). Mrežne mogućnosti su ograničene na pristup sučelju povratne petlje sa izolacijom mrežnog steka preko CLONE_NEWNET i CLONE_NEWUTS zastavica.

Ključna razlika od sličnog Firejail projekta, koji također koristi setuid model pokretanja, je u tome što u Bubblewrap sloj kreiranja kontejnera uključuje samo neophodne minimalne mogućnosti i sve napredne funkcije potrebne za pokretanje grafičkih aplikacija, interakciju sa desktopom i filtriranje zahtjeva na Pulseaudio, prebačen na Flatpak stranu i izvršen nakon što su privilegije resetirane. Firejail, s druge strane, kombinuje sve povezane funkcije u jednoj izvršnoj datoteci, što otežava reviziju i održavanje sigurnosti na odgovarajućem nivou.

U novom izdanju:

  • Добавлена опция «—disable-userns» отключающая создание в sandbox-окружении своего вложенного пространства идентификаторов пользователей (user namespace).
  • Добавлена опция «—assert-userns-disabled» для проверки, что при использовании опции » —disable-userns» задействовано существующее пространство идентификаторов пользователей.
  • Повышена информативность сообщений об ошибках, связанных с отключением в ядре настроек CONFIG_SECCOMP и CONFIG_SECCOMP_FILTER.

izvor: opennet.ru

Dodajte komentar