Bubblewrap, una eina per crear aplicacions en entorns aïllats

Bubblewrap és una eina que serveix per organitzar el treball d'entorns aïllats en Linux i funcionar a nivell d'aplicació d'usuaris sense privilegis. A la pràctica, Bubblewrap és utilitzat pel projecte Flatpak com una capa intermèdia per aïllar aplicacions llançades des paquets de programari.

Per l'aïllament, Linux utilitza tecnologies de virtualització de contenidors tradicionals basades en l'ús de cgroups, namespaces, Seccomp i SELinux. Per realitzar operacions privilegiades per configurar un contenidor, Bubblewrap s'inicia amb privilegis de root (un arxiu executable amb un indicador de suid), seguit de restabliment de privilegis després que s'inicialitza el contenidor.

No cal activar els espais de noms d'usuari en el sistema, el que li permet usar el seu propi conjunt d'identificadors en contenidors, ja que per defecte no funciona en moltes distribucions.

sobre Bubblewrap

Bubblewrap es posiciona com una implementació Suida limitada de l'subconjunt de les funcions d'espais de noms d'usuari per excloure tots els identificadors d'usuaris i processos de l'entorn, excepte l'actual, fan servir les maneres CLONE_NEWUSER i CLONE_NEWPID.

Per a la protecció addicional, els programes que s'executen en Bubblewrap s'inicien en la manera PR_SET_NO_NEW_PRIVS, que prohibeix nous privilegis, per exemple, amb l'indicador setuid.

L'aïllament en el nivell de sistema d'arxius es realitza creant, per defecte, un nou espai de noms de muntatge, en el qual es crea un partició arrel buida utilitzant tmpfs.

Si cal, les seccions de l'FS extern s'adjunten a aquesta secció en la manera «mount -bind»(Per exemple, a l'començar amb l'opció«bwrap -RO-bind / usr / usr«, La secció / usr es reenvia des del sistema principal en mode de només lectura).

Les capacitats de xarxa es limiten a l'accés a la interfície de bucle invertit amb aïllament de la pila de xarxa a través dels indicadors CLONE_NEWNET i CLONE_NEWUTS.

La diferència clau amb el projecte similar d'Firejail, que també fa servir l'iniciador setuid, és que en Bubblewrap, la capa de contenidor inclou només les característiques mínimes necessàries i totes les funcions avançades necessàries per iniciar aplicacions gràfiques, interactuar amb l'escriptori i filtrar trucades a PulseAudio, es duen a el costat de Flatpak i s'executen després de restablir els privilegis.

Firejail, d'altra banda, combina totes les funcions relacionades en un arxiu executable, El que complica la seva auditoria i manté la seguretat en el nivell adequat.

Bubblewrap bàsicament funciona mitjançant la creació d'un espai de noms de muntatge buit en un sistema d'arxius temporal que es destruirà després que finalitzi el procés de l'espai aïllat.

Mitjançant l'ús de commutadors, l'usuari pot construir l'entorn d'el sistema d'arxius desitjat dins de l'espai de noms de muntatge mitjançant el muntatge a l'enllaç dels directoris desitjats des del sistema host.

Bubblewrap 0.4.0

Actualment Bubblewrap es troba en la seva versió 0.4.0 la qual va ser recentment alliberada. El codi de el projecte està escrit en C i distribuït sota la llicència LGPLv2 +.

La nova versió és notable per la implementació de suport per unir els espais de noms i processos d'usuaris existents (espais de noms pid).

Els indicadors «-userns», «-userns2» i «-pidns» s'han agregat per controlar la connexió d'espais de noms.

Aquesta característica no funciona en mode setuid i requereix una manera separat que pot funcionar sense privilegis de root, però requereix que els espais de noms d'usuari s'activin en el sistema (deshabilitat per defecte a Debian i RHEL / CentOS) i no exclou la possibilitat d'explotar vulnerabilitats potencialment restants per la vora de les restriccions de «espais de noms d'usuari».

De les noves característiques de Bubblewrap 0.4, també s'observa la possibilitat de construir amb la biblioteca musl C en lloc de glibc, i el suport per guardar la informació de l'espai de noms en un arxiu d'estadístiques en format JSON.

El codi de Bubblewrap, així com la documentació a l'aspecte, pot ser consultada en Github, l'enllaç és aquest.


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.