È stata pubblicata una nuova versione dello strumento per l'organizzazione del lavoro in ambienti isolati Bubblewrap 0.11, utilizzato per limitare singole applicazioni di utenti non privilegiati. Nella pratica, Bubblewrap è utilizzato dal progetto Flatpak come strato per l'isolamento delle applicazioni avviate dai pacchetti. Per l'isolamento vengono utilizzate tecnologie di virtualizzazione dei container tradizionali in Linux, basate sull'uso di cgroups, spazi dei nomi (namespaces), Seccomp e SELinux. Il codice del progetto è scritto in linguaggio C ed è distribuito sotto licenza LGPLv2+.
L'isolamento a livello di filesystem avviene creando, per impostazione predefinita, un nuovo spazio dei nomi per i punti di montaggio (mount namespace), nel quale, tramite tmpfs, viene creatta una partizione radice vuota. In questa partizione, se necessario, vengono montate le partizioni del file system esterno in modalità "mount —bind" (ad esempio, avviando con l'opzione "bwrap —ro-bind /usr /usr", la partizione /usr viene trasmessa dal sistema principale in modalità di sola lettura). Le capacità di rete vengono limitate all'accesso all'interfaccia loopback con isolamento dello stack di rete tramite i flag CLONE_NEWNET e CLONE_NEWUTS.
Per escludere tutti gli identificativi non necessari di utenti e processi dall'ambiente isolato creato, possono essere utilizzati i modi CLONE_NEWUSER (user namespace) e CLONE_NEWPID (PID namespace), mentre per vietare l'ottenimento di nuovi privilegi si utilizza la modalità PR_SET_NO_NEW_PRIVS. Su sistemi con "user namespace", Bubblewrap può essere eseguito da un utente normale, mentre su sistemi privi di "user namespace" può essere utilizzato con il flag suid root per eseguire l'inizializzazione necessaria dell'ambiente isolato.
Nel nuovo rilascio:
- È stata fornita la possibilità di creare punti di montaggio, nei quali viene utilizzato il file system monostrato OverlayFS, che unisce diverse parti di altri file system. Per gestire l'uso di OverlayFS sono state proposte nuove opzioni da riga di comando "—overlay", "—tmp-overlay", "—ro-overlay" e "—overlay-src".
- È stata aggiunta l'opzione "—level-prefix" per l'inserimento nel messaggio di diagnostica del livello di priorità in stile syslog, consentendo l'uso di utility come "logger" e "systemd-cat" per elaborare l'output.
- È stata interrotta la supporto per il sistema di build Autotools. Ora il toolkit necessario per la compilazione è Meson.
Fonte: opennet.ru
