# Qubes OS

Qubes OS es un sistema operativo centrado en la seguridad del escritorio a través de aislamiento. La virtualización está implementada por el micronucleo Xen, mientras que los entornos o dominios o ámbitos de usuario pueden estar basados en Fedora, Debian, Whonix, y Microsoft Windows, entre otros sistemas operativos.
El 16 de febrero de 2014, Qubes fue seleccionado como finalista del Premio Access Innovation 2014 en la categoría de Solución de Seguridad de Punto Final.

## Metas de seguridad

Qubes Implementa Seguridad por aproximación de Aislamiento. Está basado en la asunción de que no puede haber ningún sistema perfecto, libre de bugs o errores. Dado que cada entorno cuenta con millones de líneas de código y miles de millones de interacciones software/hardware. Un error crítico en cualquier de estas interacciones puede ser suficiente para que un software malicioso pueda tomar el control de una máquina.
Para asegurar el sistema, un usuario de Qubes experimenta un aislamiento en varios entornos o dominios, de modo que si uno de los componentes es comprometido, el software atacante/malicioso solo conseguiría acceso a los datos dentro de dicho entorno o dominio.
En Qubes, el aislamiento está proporcionado por dos dimensiones: los controladores de hardware que están aislados en ámbitos/dominios funcionales (GUI, red y ámbitos/dominios de almacenamiento), mientras que la vida digital del usuario está distribuida en dominios con diferentes niveles de confianza. Por ejemplo: ámbito/dominio de trabajo (el de mayor confianza), ámbito/dominio de compra, ámbito/dominio aleatorio (el de menor confianza). Cada uno de ellos ejecutándose en una máquina virtual separada e independiente. Qubes NO es un sistema multiusuario.

## Requerimientos

Qubes no fue creado con la intención de correr sobre sistemas mulltiarranque para que en caso de que un atacante obtenga control sobre uno de los sistemas operativos también lo tendía sobre Qubes (e.g. before Qubes boots). Sin embargo, todavía es posible usar Qubes como parte de un sistema de arranque múltiple e incluso usar grub2 como boot loader/boot manager. Una instalación estándar de Qubes ocupa todo el espacio en el storage medium (e.g. hard drive, USB flash drive) en el que está instalado (no solo todo el espacio libre disponible) y utiliza LUKS/dm-crypt cifrado de disco completo. Es posible (aunque no trivial) personalizar gran parte de la instalación del sistema operativo Qubes, pero por razones de seguridad, esto se desaconseja para los usuarios que no están íntimamente familiarizados con Qubes. Qubes 4.x necesita al menos 32 GiB de espacio en disco y 4 GB de RAM. Sin embargo, en la práctica, normalmente necesita más de 6-8 GB de RAM, ya que aunque es posible ejecutarlo con solo 4 GB de RAM, es probable que los usuarios se limiten a ejecutar no más de tres Qubes a la vez.
Desde 2013, Qubes no ha tenido soporte para arquitecturas x86 de 32 bits y ahora requiere un procesador de 64 bits. Qubes utiliza Intel VT-d/AMD's AMD-Vi, que solo está disponible en arquitecturas de 64 bits, para aislar dispositivos y controladores. La arquitectura de 64 bits también proporciona un poco más de protección contra algunas clases de ataques.. Desde Qubes 4.x, este requiere ya sea un procesador Intel con soporte para VT-x cont EPT y tecnología de virtualización Intel VT-d o un procesador AMD son soporte para AMD-V con RVI (SLAT) y tecnología de virtualización AMD-Vi (también conocido como AMD IOMMU) . Qubes apunta al mercado desktop. Este mercado está dominado por portátiles con procesadores y conjuntos de chips Intel, por esto los desarrolladores de Qubes se centran en las tecnologías VT-x / VT-d de Intel. Este no es un problema importante para los procesadores AMD, ya que AMD IOMMU es funcionalmente idéntico al VT-d de Intel.

## Diferencia con VMs en Sistemas Operativos convencionales

No todas las máquinas virtuales son iguales en lo que se refiere a la seguridad. Las máquinas virtuales utilizadas en softwares VirtualBox o VMware son conocidas como de "Tipo 2". Estos programas son populares por su facilidad de uso y pueden ser ejecutados en los Sistemas Operativos populares. Al ser de Tipo 2 son tan seguros como lo es el propio sistema operativo, si este es comprometido, todas las VMs también lo son.
Qubes OS, en cambio, usa un hipervisor de "Tipo 1" también conocido como Bare Metal (en inglés), Xen. Se ejecuta directamente sobre el hardware, lo que significa que un atacante debe ser capaz de subvertir el hipervisor en sí con el fin de poner en peligro todo el sistema, que es mucho más difícil.
Qubes logra que múltiples máquinas virtuales que se ejecutan en un hipervisor de Tipo 1 se pueden utilizar con seguridad como un sistema operativo integrado. Por ejemplo, se pone todas sus ventanas de la aplicación en el mismo escritorio con bordes de colores especiales que indican los niveles de confianza de sus respectivas máquinas virtuales. También permite cosas como las operaciones de copia de seguridad / pegar entre máquinas virtuales, copiar y transferir archivos entre máquinas virtuales y redes seguras entre las máquinas virtuales y de Internet de forma segura.

## Visión general de la arquitectura del sistema
### Hipervisor Xen y dominio administrativo (Dom0)

El hipervisor proporciona aislamiento entre las diferentes máquinas virtuales. El dominio administrativo, también conocido como Dom0, tiene acceso directo al hardware del equipo. Dom0 aloja el dominio GUI y controla los dispositivos gráficos, así como los dispositivos de entrada, como teclado y ratón. El dominio GUI se ejecuta en el servidor X, el cual muestra el escritorio del usuario, y el gestor de ventanas, que permite al usuario arrancar y parar las diferentes aplicaciones así como manipular sus ventanas.
La integración de las diferentes máquinas virtuales está proporcionada por el Application Viewer, el cual crea la ilusión de que las aplicaciones se ejecutan nativamente en el escritorio para el usuario, mientras que en realidad están alojadas (y aisladas) en diferentes máquinas virtuales. Qubes Integra todas estas máquinas virtuales en un entorno de escritorio común.
Precisamente porque el Dom0 es el que mayor riesgo de seguridad supone, está aislado de la red. Se tiende a tener una interfaz muy pequeña y una comunicación con otros ámbitos tan mínima como sea posible para reducir la posibilidad de un ataque proveniente de una máquina virtual infectada.

### El dominio de red

El mecanismo de red es el más expuesto a ataques de seguridad. Este es el motivo por el que está aislado en un dominio separado en una máquina virtual sin privilegios llamada Network Domain.
Se utiliza una máquina virtual proxy adicional para la configuración avanzada de la red (networking).

### El dominio de almacenamiento

El espacio de disco queda a salvo gracias a varias máquinas virtuales (VM) que comparten el mismo sistema de archivos raíz en modo solo lectura. El almacenamiento en discos externos solo es utilizado por el dominio administrativo (Dom0) y en cada VM mediante configuración establecida específicamente por el usuario. Esto permite que la instalación de software y las actualizaciones puedan ser centralizadas. Naturalmente, cualquier software puede ser instalado solo en una VM en concreto.
Se usa cifrado para proteger los sistemas de archivos, de modo que el dominio de almacenamiento no pueda leer datos confidenciales contenidos en otros dominios.

### Máquinas Virtuales de Aplicación (AppVM)

Las AppVMs son las máquinas virtuales utilizadas para hospedaje de aplicaciones de usuario, como un navegador web, un cliente de correo electrónico o un editor de texto. Por motivos de seguridad, estas aplicaciones pueden ser agrupadas en dominios diferentes, como “personal”, “trabajo”, “compras”, “banca”, etc. Los dominios de seguridad están implementados como Máquinas Virtuales separadas (VMs), por lo que son aislados unos de otros como si se ejecutaran en diferentes máquinas físicas.
Algunos documentos o aplicaciones pueden ser ejecutados en VMs desechables a través de un lanzador disponible en el gestor de archivos. Siguiendo la idea de las cajas de arena o sandboxes: después de ver el documento o ejecutar la aplicación correspondiente, la VM será destruida.
Cada dominio de seguridad está etiquetado con un color, y cada ventana está marcada por dicho color del dominio al que pertenece. De forma que siempre sea claramente visible a qué ámbito/dominio pertenece una ventana dada.