Un proyecto afiliado a Gnome está desarrollando aplicaciones sandbox, las cuales, permitirán un formato de paquetes independiente de las distribuciones.
A día de hoy, salvo contadas excepciones, la gran mayoría de software que instalamos lo hacemos a través de los repositorios de la distribución Linux que estemos usando. Dichas aplicaciones han tenido que pasar por un proceso de empaquetado específico por distribución, y tenemos que confiar en ellas garantizándoles acceso completo a nuestro usuario y sus archivos. De esa manera, veremos que dependiendo de la distribución instalaremos programas que han sido empaquetados como
.deb
, .rpm
u otros tipos.
Pero imaginemos que los desarrolladores pudieran distribuir las aplicaciones de una manera estándar sin tener que hacer esta separación por distribución y que además se ejecutasen en modo "sandbox", es decir en un entorno aislado que evitase problemas de seguridad o privacidad. Un sistema de paquetes en común es algo que se lleva intentando conseguir en Linux durante muchísimo tiempo. A mi juicio, es uno de los mayores problemas que tiene el sistema del pingüino. De hecho, este tema suele ser mencionado por Brian Lunduke, autor de los famosos vídeos Linux Sucks, en los que de un modo divertido muestra las cosas que deben mejorar en este sistema.
Ese idílico formato de paquetes es la meta del proyecto GNOME desktop-affiliated Sandboxed Applications y acaban de conseguir crear la primera aplicación de este tipo. Una primera versión de este proyecto ha sido planeada para GNOME 3.16 (se planea dar también soporte a Qt y otros), así que los que usen distribuciones que se dan prisa en implementar las nuevas versiones de este entorno de escritorio, como Fedora y Arch Linux, podrán echarle antes un vistazo.
¿Por qué esto es tan importante?
Para empezar porque se ha conseguido de esta manera un formato de paquetes independiente de las distribuciones. El paquete incluye todo el software que necesita salvo por un sistema base que tendrá que aportarlo la distribución. En definitiva, en lugar de un paquete que sólo funciona en X distribuciones, se obtendría un paquete que funciona en todas las distribuciones de Linux capaces de proporcionar el sistema base que esta pida.
En cuanto a las aplicaciones sandbox, la cosa tiene muy buena pinta. Estas aplicacioens estarían contenidas, aisladas del sistema, de forma que solo tendrían acceso a los mínimos recursos que necesiten. Me recuerda a lo que está haciendo Canonical con snappy Ubuntu core. La primera aplicación sandbox que se ha creado ha sido el juego open source Neverball, que tiene las siguientes características:
- Es independiente de la distribución que lo ejecute
- No tiene acceso a ningún archivo del sistema o del usuario salvo de los que usa la aplicación
- No tiene acceso al hardware, salvo para el renderizado GL
- No tiene acceso a Internet
- No puede ver otros procesos del sistema
- Solo puede recibir órdenes y mostrar gráficos mediante Wayland
- Solo puede emitir audio mediante PulseAudio
- Un atacante o código malicioso solo afectará a lo que tenga acceso el sandbox
- Y muchas otras características que podréis analizar los interesados en el siguiente enlace.
A pesar de todos estos detalles la aplicación es simple de instalar y se integra con el escritorio sin problemas. Todavía que mucho que hacer, por supuesto. Por ejemplo, PulseAudio no protege los clientes uno del otro y las aplicaciones más complejas necesitan nuevas APIs para garantizar un acceso seguro a archivos del sistema o dispositivos. El camino es largo, ¡pero al menos lo hemos empezado!
- Alexander Larsson, desarrollador de aplicaciones sandbox.
Todo esto suena fantástico y lo que ayude a mejorar la seguridad del usuario siempre es bienvenido. Sin embargo, teniendo en cuenta que esta tecnología es posible gracias a Wayland y que Ubuntu decidió abandonarlo por Mir (llevando la contraria a todo el ecosistema Linux), es probable que este hito que se pretende lograr pase desapercibido para la distribución con mayor cantidad de usuarios.
Comentarios
Publicar un comentario