Uscita di Bubblewrap 0.12, uno strato per creare ambienti isolati

È stata pubblicata una nuova versione dello strumento Bubblewrap 0.12 per l'organizzazione del lavoro in ambienti isolati, utilizzato per limitare applicazioni specifiche da parte di utenti non privilegiati. In pratica, Bubblewrap è utilizzato dal progetto Flatpak come strato di isolamento per le applicazioni avviate dai pacchetti. Per l'isolamento vengono utilizzate le tecnologie tradizionali di virtualizzazione dei container tipiche di Linux, basate sull'uso di cgroups, spazi dei nomi (namespaces), Seccomp e SELinux. Il codice del progetto è scritto in C e distribuito sotto licenza LGPLv2.1+.

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 i identificatori non necessari degli utenti e dei processi dall'ambiente isolato creato, possono essere utilizzati i modi CLONE_NEWUSER (user namespace) e CLONE_NEWPID (PID namespace), e per vietare l'acquisizione di nuovi privilegi è utilizzato il modo PR_SET_NO_NEW_PRIVS. Per l'ottenimento dei privilegi necessari si utilizza il "user namespace".

Nel nuovo rilascio:

  • La licenza del codice è stata cambiata da LGPL 2.0+ a LGPL 2.1+.
  • È stata interrotta la supporto per la compilazione di un file eseguibile che acquisisce privilegi aggiuntivi tramite il flag suid root. La disponibilità del supporto "user namespace" è ora obbligatoria. Come motivo viene citata la complessità nella gestione dell'opzione con flag suid a fronte del supporto generalizzato del "user namespace" nelle distribuzioni.
  • È stata aggiunta l'opzione "—not-a-security-boundary", che, se attivata, impedisce a determinati errori durante la configurazione di un ambiente sandbox isolato, come il rimontaggio di una sottosezione, di portare a un'uscita imprevista.
  • È stata aggiunta l'opzione di compilazione "assume_kernel", che disabilita il supporto per la retrocompatibilità con i kernel Linux più vecchi della versione specificata. Ad esempio, specificare versioni 5.6.0+ escluderà l'implementazione alternativa della funzionalità "openat2(RESOLVE_IN_ROOT)".

Fonte: opennet.ru

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