Rilascio di Bubblewrap 0.6, un livello per creare ambienti isolati

È disponibile il rilascio di strumenti per l'organizzazione del lavoro in ambienti isolati Bubblewrap 0.6, solitamente utilizzato per limitare le singole applicazioni di utenti non privilegiati. In pratica Bubblewrap viene utilizzato dal progetto Flatpak come livello per isolare le applicazioni lanciate dai pacchetti. Il codice del progetto è scritto in C ed è distribuito sotto la licenza 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 ulteriore protezione, i programmi eseguiti sotto Bubblewrap vengono avviati nella modalitΓ  PR_SET_NO_NEW_PRIVS, che impedisce l'acquisizione di 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.

La differenza fondamentale rispetto al progetto simile Firejail, che utilizza anch'esso il modello di lancio setuid, Γ¨ che in Bubblewrap il livello di creazione del contenitore include solo le capacitΓ  minime necessarie e tutte le funzioni avanzate necessarie per eseguire applicazioni grafiche, interagire con il desktop e filtrare le richieste a Pulseaudio, trasferito sul lato Flatpak ed eseguito dopo che i privilegi sono stati ripristinati. Firejail, d'altro canto, combina tutte le funzioni correlate in un unico file eseguibile, il che rende difficile il controllo e il mantenimento della sicurezza al livello adeguato.

Nella nuova versione:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборочной систСмы Meson. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Autotools ΠΏΠΎΠΊΠ° сохранСна, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусков.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция Β«β€”add-seccompΒ» для добавлСния Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ seccomp. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡ†ΠΈΠΈ Β«β€”seccompΒ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.
  • Π’Π΅Ρ‚ΠΊΠ° master Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² main.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° частичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° спСцификации REUSE, ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ процСсс указания свСдСний ΠΎ лицСнзиях ΠΈ авторских ΠΏΡ€Π°Π²Π°Ρ…. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ SPDX-License-Identifier. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ рСкомСндациям REUSE позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ автоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ какая лицСнзия примСняСтся ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠ· частСй ΠΊΠΎΠ΄Π° прилоТСния.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния счётчика Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (argc) ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ экстрСнный Π²Ρ‹Ρ…ΠΎΠ΄ Π² случаС Ссли счётчик Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ. ИзмСнСниС позволяСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CVE-2021-4034 Π² Polkit.

Fonte: opennet.ru

Aggiungi un commento