Izdanje Bubblewrap 0.6, sloja za kreiranje izolovanog okruženja

Dostupno je izdanje alata za organizovanje rada izolovanih okruženja Bubblewrap 0.6, 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:

  • Dodata podrška za Meson montažni sistem. Podrška za izgradnju pomoću Autotools-a je za sada zadržana, ali će biti uklonjena u budućem izdanju.
  • Implementirana opcija "--add-seccomp" za dodavanje više od jednog seccomp programa. Dodato je upozorenje da će se, ako ponovo navedete opciju "--seccomp", primijeniti samo posljednji parametar.
  • Glavna grana u git spremištu je preimenovana u main.
  • Dodata je djelomična podrška za REUSE specifikaciju, koja objedinjuje proces specificiranja informacija o licenci i autorskim pravima. Mnoge datoteke koda imaju dodana zaglavlja SPDX-License-Identifier. Praćenje smjernica REUSE olakšava automatsko određivanje koja se licenca primjenjuje na koje dijelove koda aplikacije.
  • Dodata je provjera vrijednosti brojača argumenata komandne linije (argc) i implementiran izlaz u nuždi ako je brojač nula. Promjena pomaže u blokiranju sigurnosnih problema uzrokovanih netačnim rukovanjem proslijeđenim argumentima komandne linije, kao što je CVE-2021-4034 u Polkitu.

izvor: opennet.ru

Dodajte komentar