Joanna Rutkowska, leader del progetto Qubes, fa un ottimo lavoro nel documentare i concetti su cui si basa Qubes. Pertanto ti consiglio vivamente di ottenere le informazioni alla fonte, in particolare di leggere i due seguenti documenti:
Qubes non solo migliora l'esperienza utente rispetto all'esecuzione di diverse istanze di vmWare, ma porta anche un isolamento più fine.
Per spiegarlo in modo approssimativo, il modello che descrivi è come mettere una serie di scatole più piccole (le VM) all'interno di un'unica grande scatola (il sistema host). Tutte le VM passeranno attraverso il sistema host per accedere a qualsiasi dispositivo (rete, USB, lettore DVD, ecc.) E il sistema host controlla sia le VM, i dispositivi, l'interfaccia utente e sia direttamente di fronte a Internet.
L'idea alla base di Qubes non è quella di archiviare le piccole scatole in una grande scatola sovrapotente, ma invece configurare le piccole scatole in una sorta di rete locale virtuale in modo che, insieme, guardino come un grande casella senza essere uno e senza usarne uno.
La necessità di aspetto come qualcosa che gli utenti già conoscono è importante per l'adozione da parte dell'utente. Ma dietro la scena tutte le parti del sistema si intendono isolate l'una dall'altra. Tra le principali differenze vi sono il fatto che l'interfaccia utente non è rivolta verso la rete e non ha una connessione Internet. La VM dedicata ad affrontare la rete è isolata dal resto delle macchine virtuali da un'altra VM dedicata al firewalling. Qubes 3.0 ha portato una funzionalità tanto attesa che consente di avere una VM dedicata ai dispositivi USB.
Per vedere questo e dalla vista punti degli attaccanti:
-
Se voglio modificare la tua soluzione basata su Windows, tutto quello che devo fare è riuscire a sfruttare l'host Windows (single point of failure). Una volta ottenuto, ottengo energia su tutto e questo dovrebbe essere relativamente facile poiché è rivolto verso la rete, consentendo un'ampia gamma di possibilità dagli exploit remoti ai trojan shell inversi.
-
Se voglio hackerare Qubes, non avrò altra scelta che iniziare da una posizione ospite dato che né Xen né il dominio Dom0 principale hanno alcun collegamento diretto con il mondo esterno, e da lì trovare un modo per migrare da guest to guest o gestire sfruttare Xen core o raggiungere l'interfaccia utente in esecuzione in Dom0 (sapendo che gli ospiti hanno il loro server X sostituito da un display server appositamente progettato per evitare con precisione tale possibilità.Tutta la comunicazione inter-VM in generale è stata attentamente progettato per ridurre al minimo l'area di esposizione e costruire i tunnel appropriati per poter comunicare con il tuo software dannoso (entrare non è sufficiente, vuoi anche che i dati siano in grado di uscire, il che è banale in un sistema di rete, ma molto più difficile su sistemi guest isolati).
Voglio solo aggiungere che mentre Qubes OS è il più conosciuto e documentato che sia, per quanto ne so, l'unica iniziativa open source che implementa questo concetto, il concetto stesso non è qualcosa di completamente nuovo e rivoluzionario. Polyxene ad esempio, un sistema proprietario utilizza esattamente lo stesso approccio per proteggere i sistemi desktop di livello difensivo. Dico questo solo per sottolineare il fatto che discutere di questa tecnologia va oltre la discussione di sistemi operativi open source e proprietari.