Joanna Rutkowska, líder del proyecto Qubes, hace un gran trabajo al documentar los conceptos en los que se basa Qubes. Por lo tanto, le sugiero encarecidamente que obtenga la información en la fuente y, en particular, que lea los dos documentos siguientes:
- Compartimentación de software frente a separación física (o por qué Qubes OS es más que una colección aleatoria de máquinas virtuales)
- ¿En qué se diferencia QUbes OS de...?
Qubes no solo brinda una mejora en la experiencia del usuario en comparación con la ejecución de varias instancias de vmWare, sino que también brinda un aislamiento más detallado.
Para explicarlo a grandes rasgos, el modelo que describe es como colocar un conjunto de cajas más pequeñas (las máquinas virtuales) dentro de una sola caja grande (el sistema host). Todas las VM pasarán por el sistema host para acceder a cualquier dispositivo (red, USB, lector de DVD, etc.), y el sistema host controla las VM, los dispositivos, la interfaz de usuario y está directamente frente a Internet.
La idea detrás de Qubes no es almacenar las cajas pequeñas en una caja grande demasiado potente, sino configurar las cajas pequeñas en una especie de red local virtual para que, juntas, se vean. como una gran caja sin serlo y sin usar.
La necesidad de mirar como algo que los usuarios ya saben que es importante para la adopción del usuario. Pero detrás de escena, todas las partes del sistema están aisladas entre sí. Entre las principales diferencias se encuentran el hecho de que la interfaz de usuario no está frente a la red y no tiene conexión a Internet. La VM dedicada a hacer frente a la red está aislada del resto de las VM por otra VM dedicada al firewall. Qubes 3.0 trajo una función largamente esperada que permite tener una VM dedicada a dispositivos USB.
Para ver esto desde el punto de vista del atacante:
-
Si quiero piratear su solución basada en Windows, todo lo que tengo que hacer es lograr explotar su host de Windows (punto único de falla). Una vez que lo obtengo, enciendo todo y esto debería ser relativamente fácil ya que se enfrenta a la red, lo que permite una amplia gama de posibilidades, desde exploits remotos hasta troyanos de shell inversos.
-
Si quiero hackear Qubes, no tendré más remedio que comenzar en una posición de invitado ya que ni Xen ni el dominio principal Dom0 tienen ningún vínculo directo con el mundo exterior, y desde allí encontrar una manera de migrar de invitado a invitado o lograr explote el núcleo Xen o acceda a la interfaz del usuario que se ejecuta en Dom0 (sabiendo que los invitados tienen su servidor X reemplazado por un servidor de pantalla reforzado especialmente diseñado para evitar precisamente tal posibilidad. Toda la comunicación entre máquinas virtuales en general se ha diseñado cuidadosamente para reducir cualquier área de exposición al mínimo), y construya los túneles apropiados para poder comunicarse con su software malicioso (entrar no es suficiente, también desea que los datos puedan salir, lo cual es trivial en un sistema orientado a la red, pero mucho más difícil en sistemas invitados aislados).
Solo quiero agregar que si bien Qubes OS es el más conocido y documentado por ser, hasta donde se sabe, la única iniciativa de código abierto que implementa este concepto, el concepto en sí no es algo completamente nuevo y revolucionario. Polyxene, por ejemplo, es un sistema patentado que adopta exactamente el mismo enfoque para proteger los sistemas de escritorio de nivel de defensa. Digo esto solo para resaltar el hecho de que hablar de dicha tecnología va más allá de hablar de sistemas operativos de código abierto y propietarios.