È stata pubblicata una nuova versione dello strumento per la gestione di ambienti isolati Bubblewrap 0.11, utilizzato per limitare le singole applicazioni da parte di utenti non privilegiati. In pratica, Bubblewrap è utilizzato dal progetto Flatpak come strato per l'isolamento delle applicazioni avviate dai pacchetti. Vengono utilizzate tecnologie tradizionali di virtualizzazione dei container di Linux per l'isolamento, basate su cgroups, spazi dei nomi (namespaces), Seccomp e SELinux. Il codice del progetto è scritto in linguaggio C e distribuito con licenza LGPLv2+.
L'isolamento a livello di file system avviene creando un nuovo spazio di nomi per i punti di montaggio (mount namespace) per impostazione predefinita, in cui viene creato un filesystem root vuoto tramite tmpfs. In questa partizione, se necessario, vengono montate le partizioni della FS esterna in modalità 'mount —bind' (ad esempio, all'avvio 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 sono limitate all'accesso all'interfaccia loopback, con isolamento dello stack di rete attuato tramite i flag CLONE_NEWNET e CLONE_NEWUTS.
Per escludere tutti gli identificatori superflui 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'acquisizione di nuove autorizzazioni 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 introdotta la possibilità di creare punti di montaggio che utilizzano il file system monolayer OverlayFS, che combina più parti di altri file system. Per gestire l'utilizzo 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 inserire nel output diagnostico il livello di priorità in stile syslog, consentendo l'uso di strumenti come «logger» e «systemd-cat» per la gestione dell'output.
- È stata interrotta la supporto per il sistema di build Autotools. Ora è necessario utilizzare l'ambiente di build Meson.
Fonte: opennet.ru
