Rilascio di Bubblewrap 0.4.0, un livello per creare ambienti isolati

A disposizione nuova versione del toolkit pluriball 0.4.0, progettato per organizzare il lavoro di ambienti isolati in Linux e operare a livello applicativo di utenti non privilegiati. In pratica Bubblewrap viene utilizzato dal progetto Flatpak come strato per isolare le applicazioni lanciate dai pacchetti. Il codice del progetto è scritto in C e distribuito da concesso in licenza con LGPLv2+.

Per l'isolamento vengono utilizzate le tradizionali tecnologie di virtualizzazione dei container Linux, basate sull'utilizzo di cgroup, namespace, Seccomp e SELinux. Per eseguire operazioni privilegiate per configurare un contenitore, Bubblewrap viene avviato con i diritti di root (un file eseguibile con un flag suid) e quindi reimposta i privilegi dopo l'inizializzazione del contenitore.

L'attivazione degli spazi dei nomi utente nel sistema degli spazi dei nomi, che consente di utilizzare il proprio set separato di identificatori nei contenitori, non è richiesta per il funzionamento, poiché non funziona per impostazione predefinita in molte distribuzioni (Bubblewrap è posizionato come un'implementazione suid limitata di un sottoinsieme di funzionalità degli spazi dei nomi utente: per escludere tutti gli identificatori di utenti e processi dall'ambiente, eccetto quello corrente, vengono utilizzate le modalità CLONE_NEWUSER e CLONE_NEWPID). Per una protezione aggiuntiva, eseguibile sotto controllo
I programmi Bubblewrap vengono avviati in modalità PR_SET_NO_NEW_PRIVS, che impedisce di ottenere nuovi privilegi, ad esempio, se è presente il flag setuid.

L'isolamento a livello di file system viene ottenuto creando per impostazione predefinita un nuovo spazio dei nomi di montaggio, in cui viene creata una partizione root vuota utilizzando tmpfs. Se necessario, le partizioni FS esterne vengono collegate a questa partizione nella modalità “mount —bind” (ad esempio, quando avviata con l'opzione “bwrap —ro-bind /usr /usr”, la partizione /usr viene inoltrata dal sistema principale in modalità di sola lettura). Le funzionalità di rete sono limitate all'accesso all'interfaccia di loopback con isolamento dello stack di rete tramite i flag CLONE_NEWNET e CLONE_NEWUTS.

Differenza fondamentale rispetto a un progetto simile prigione antincendio, che utilizza anche un modello di lancio setuid, è che in Bubblewrap il livello di creazione del contenitore include solo le funzionalità minime necessarie e tutte le funzioni avanzate richieste per eseguire applicazioni grafiche, interagire con il desktop e filtrare le chiamate a Pulseaudio vengono esternalizzate da Flatpak e vengono eseguite dopo che i privilegi sono stati reimpostati. Firejail, d'altra parte, combina tutte le funzioni correlate in un unico file eseguibile, il che rende difficile il controllo e il mantenimento della sicurezza su livello adeguato.

La nuova versione è degna di nota per l'implementazione del supporto per l'unione di spazi dei nomi utente esistenti e spazi dei nomi pid di processo. Per controllare la connessione dei namespace sono stati aggiunti i flag “--userns”, “--userns2” e “-pidns”.
Questa funzionalità non funziona in modalità setuid e richiede l'uso di una modalità separata che può funzionare senza ottenere i diritti di root, ma richiede l'attivazione
spazi dei nomi utente sul sistema (disabilitati per impostazione predefinita su Debian e RHEL/CentOS) e non esclude la possibilità Operativo potenzialmente residuo vulnerabilità per il bordo delle restrizioni sugli "spazi dei nomi utente". Le nuove funzionalità di Bubblewrap 0.4 includono anche la possibilità di creare con la libreria musl C invece di glibc e il supporto per salvare le informazioni sullo spazio dei nomi in un file con statistiche in formato JSON.

Fonte: opennet.ru

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster