17 abril 2010

Qubes: Sistema Operativo con la Seguridad como premisa

Como sabéis, SecurityByDefault, coordina el área de seguridad de la edición especial de Campus Party Europa, que se está celebrando en Madrid con motivo de la presidencia de España en la Unión Europea. Este área comprende la organización de un wargame, así como varias charlas relacionadas con seguridad informática.

Entre otras, pudimos contar con la presentación de Qubes, por parte de la propia creadora del mismo: Joanna Rutkowska, considerada como una de las gurús internacionales en el mundo de la Seguridad.


Empezó la presentación dejándonos ver los problemas de los sistemas operativos actuales más usados: Windows, Linux y Apple Mac OS X. Hizo especial hincapié en que, la forma en que ven la seguridad los fabricantes de software para este tipo de Sistemas Operativos es, que según se van descubriendo vulnerabilidades, se van publicando parches o service packs que solucionan dichos agujeros. Además, otra forma de intentar dar mayor protección de las aplicaciones y sistemas operativos, es aislando la ejecución de unas aplicaciones de otras, drivers y demás, mediante protecciones establecidas a nivel de kernel del sistema operativo. Evidentemente, ninguno está exento de fallos y, debido a tener que compartir recursos y memoria por parte del mismo, es posible en ocasiones "leer y escribir" datos en sitios que no se debe.

Para Joanna, está claro que los modelos actuales basados en corregir y en aislar procesos (utilizando un kernel monolítico enorme) no funcionan como deberían y, debido a la evolución natural del software genera más y más fallos.

Por eso plantea utilizar otro mecanismo basado en virtualización, llevando el aislamiento de aplicaciones al extremo. En grandes rasgos, Qubes plantea un sistema operativo basado en un único "Dom-0" de virtualización basado en Xen que, utilizando un único hipervisor como mecanismo comunicación y gestión, comunica las diferentes aplicaciones con el usuario.


Para ello se define, como se puede ver en la foto, tantas máquinas virtuales de aplicación, en adelante AVMs, como deseemos, dedicando cada una de ellas a una finalidad determinada. Joanna planteaba un ejemplo con tres máquinas virtuales de aplicación (o Qubes = Cubos) diferentes: una para trabajar, otra para compras online y otra para el resto de las aplicaciones. Entre las diferentes AVMs, no está permitida ni es posible la comunicación, garantizándose por parte del hipervisor.

Se pueden definir tantas como se desee, estando limitados únicamente por la RAM del equipo donde se esté instalando. Según Joanna, en 4 GB de RAM ha llegado a ejecutar unos 8 entornos sin llegar a utilizar los ficheros swap de la máquina.

Aparte de las máquinas virtuales donde están corriendo las aplicaciones, existe una más que es la que tiene el escritorio del usuario: "lo que el usuario ve realmente". Para éste es transparente, pero en realidad, su interacción con las aplicaciones no es directa. Su máquina virtual es la única que se comunica con los dispositivos de entrada/salida (video, audio, teclado, ratón, etc,...)


Cuando el usuario ejecuta en su escritorio una aplicación se ejecuta en su AVM correspondiente, en modo "sandbox", y el usuario sólo ve ventanas, que son enviadas (exportando las XWindows) desde cada AVM por un agente Qubes, a un visor de aplicaciones que corre en la máquina virtual escritorio. Todas las aplicaciones que pertenecen a cada AVM tienen un marco de color único, definido en la creación de cada AVM). Por supuesto, es posible compartir información entre aplicaciones de las diferentes AVMs, mediante copiar/pegar o envío de ficheros, pero de una forma muy controlada y pasando por la máquina virtual escritorio del usuario, a través del hipervisor.

Para acceder a la red, cada AVM define opcionalmente el acceso, porque puede que queramos algún AVM que no tenga capa de red, y todo pasa a través del hipervisor, que es quien hablará con el hardware finalmente.

Cada AVM se crea a partir de una imagen única y protegida en modo "sólo lectura". A partir de ahí tienen una estructura mínima de directorios (/boot, /bin, /etc, /lib,....) de unos 5GB, lo cuál es un entorno chroot un poco grande, pero bueno... Al apagar el sistema operativo, cada AVM guarda los datos de usuario en una imagen privada y la de sistema operativo en otra diferente. Cuando se hace una actualización de aplicaciones se aplica en todas las AVMs a la vez así como en la imagen original.

Los datos van cifrados a nivel de disco (LUKS) e incluso se ha tenido en cuenta consideraciones de arranque utilizando tecnología Intel TXT (Trusted Execution Technology)que libera un TPM (un sello que se libera o no según TXT), permitiendo complementar además el gestor de arranque con una contraseña o una smartcard, y así llevar a cabo un arranque verificado.

La filosofía de este sistema operativo tan seguro, es además que cualquier usuario, por muy pocos conocimientos técnicos tenga (Joanna ponía ejemplos de abogados o personas de negocios), pueda usarlo perfectamente y se sienta seguro con él.

Qubes OS es un proyecto Open Source, licenciado bajo GPLv2. Está basado en Fedora Core 12. La idea surgió hace unos dos años, y se ha llevado a la implementación práctica desde hace unos seis meses. Actualmente está libre para desarrolladores, y se pretende que la versión estable se publique a final de año, cuando solucionen ciertos problemas relativos al dominio de almacenamiento de datos.



Joanna traía traía dos portátiles, uno con Qubes y un Macbook negro de 13",... por lo que parece que mientras no esté disponible Qubs, Mac OS X es el sistema operativo que más la convence. Esperemos que el roadmap se cumpla en tiempos y que podamos disfrutar de un sistema operativo pensado con la seguridad en mente por parte de una de las mentes más preclaras en el mundo de la seguridad.

Only paranoid survive!

7 comments :

akae dijo...

Supongo que en el sistema "anfitrión" las X no correrá bajo el usuario root...
Nos quedamos con ganas de preguntarle por qué Xen y no OpenVZ, que tiene mejor desempeño para la virtualización de linuxes. Quizás es por la filosofía del kernel único de OVZ, que no "separa" suficientemente las virtuales de la anfitriona.

Anónimo dijo...

Sin demasiados conocimientos y sin reflexionar demasiado...
... parece bastante seguro, pero si quisieramos hacer algo de "mal" al sistema el asunto no estaría en saber ¿ cómo atacar al hipervisor ?

No sé cúan seguro será el OS, pero siempre me dijeron que no existía un sistema 100%.

¿ Merece la pena tener tanta RAM para contar con seguridad ?

Bueno dejo que los sabios hablen del tema.

txani dijo...

¿No este concepto similar al del microkernel?

Yo dijo...

Vamos, básicamente está intentando hacer un MLS basándose en VMs no?

J dijo...

Yo leí sobre Qubes hace una semana más o menos en el blog de Joanna y le estube echando un vistazo a la página del proyecto y la verdad me sorprendió que eligiera XEN que está en decadencia... Pero bueno si te lees el documento que tiene en la página explica por qué ha elegido XEN y muchas mas cosas.

Anónimo dijo...

Por muchos OS que salgan, entre la gente comun pasara sin pena ni gloria, como hará el Google OS entre otros, Windows ya esta en todos los hogares. Este nuevo OS me parece increible, ingenioso y parece ser muy seguro, veremos a ver cuanto de lejos llega.

Unknown dijo...

Hace semanas me entere de este proyecto y desde entonces visito la página cada poco, me parece una buena idea, ya veremos en que queda todo.

Una faena más el no haber podido asistir a esta "Campus". Aprovechad que muchos a lo peor no pueden coger los aviones y que os expliquen más cosas, :)

NaCl u2