Izdanje Bubblewrap 0.9, sloja za kreiranje izolovanog okruženja

Nakon godinu dana razvoja, objavljena je nova verzija Bubblewrap 0.9 alata za organizaciju rada izolovanih okruženja, koja se 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 tradicionalni materijali. Linux Tehnologije virtualizacije kontejnera zasnovane na korištenju cgrupa, imenskih prostora, Seccompa i SE-aLinuxDa bi izvršio operacije konfiguracije privilegovanog kontejnera, Bubblewrap se pokreće s root privilegijama (izvršna datoteka ima omogućenu suid zastavicu), a zatim odbacuje privilegije nakon što je inicijalizacija kontejnera završena.

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:

  • Fajlovi generirani u Autotools su uklonjeni iz izvornog paketa. Meson build sistem se sada preporučuje za montažu. Opciona podrška za Autotools ostaje za sada, ali je planirano da bude uklonjena u budućim izdanjima.
  • Dodata je opcija “--argv0” za postavljanje vrijednosti nultog argumenta komandne linije (argv[0] je ime izvršne datoteke, na primjer “-argv0 /usr/bin/test”).
  • Opcija "--symlink" sada se pokreće samo kada simbolična veza već postoji i ukazuje na željeni ciljni fajl.
  • Opcija “--cap-add” je dokumentirana i koristi se za postavljanje oznaka mogućnosti, na primjer, “CAP_DAC_READ_SEARCH”.
  • Povećani sadržaj informacija o greškama koje se prikazuju kada montiranje ne uspije.
  • Proces kreiranja jediničnih testova je pojednostavljen.
  • Slučajevi upotrebe više ne podržavaju starije verzije Pythona.
  • Poboljšane operacije dodjele memorije.

izvor: opennet.ru

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster