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:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

izvor: opennet.ru

Dodajte komentar