Joanna Rutkowska, leader del progetto Qubes, fa un ottimo lavoro nel documentare i concetti su cui si basa Qubes. Vi consiglio quindi vivamente di informarvi alla fonte, ed in particolare di leggere i due seguenti documenti:
- Compartimentalizzazione del software rispetto alla separazione fisica (o perché il sistema operativo Qubes è più di una semplice raccolta casuale di VM)
- In che modo il sistema operativo QUbes è diverso da...
Qubes non solo offre un miglioramento dell'esperienza utente rispetto all'esecuzione di diverse istanze vmWare, ma offre anche un isolamento più granulare.
Per spiegarlo approssimativamente, il modello che descrivi è come mettere un insieme 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 di DVD, ecc.) e il sistema host controlla sia le VM, i dispositivi, l'interfaccia utente e si affaccia direttamente su Internet.
L'idea alla base di Qubes non è quella di immagazzinare le piccole scatole in una grande scatola sovrapotente, ma piuttosto di configurare le piccole scatole in una sorta di rete locale virtuale in modo che, insieme, appaiano come una grande scatola senza esserlo e senza usarne uno.
La necessità di guardare come qualcosa che gli utenti già sanno è importante per l'adozione da parte dell'utente. Ma dietro le quinte tutte le parti del sistema si intendono isolate l'una dall'altra. Tra le principali differenze c'è il fatto che l'interfaccia utente non è rivolta verso la rete e non ha connessione a Internet. La VM dedicata ad affrontare la rete è isolata dal resto delle VM da un'altra VM dedicata al firewalling. Qubes 3.0 ha introdotto una funzionalità tanto attesa che consente di avere una VM dedicata ai dispositivi USB.
Per vederlo dal punto di vista dell'attaccante:
-
Se voglio hackerare la tua soluzione basata su Windows, tutto quello che devo fare è riuscire a sfruttare il tuo host Windows (single point of failure). Una volta ottenuto, ottengo potere su tutto e questo dovrebbe essere relativamente facile dato che si trova di fronte alla rete, consentendo un'ampia gamma di possibilità, dagli exploit remoti ai trojan della shell inversa.
-
Se voglio hackerare Qubes, non avrò altra scelta che partire da una posizione ospite poiché né Xen né il dominio principale Dom0 hanno alcun collegamento diretto con il mondo esterno, e da lì trovare un modo per migrare da ospite a ospite o riuscire a sfruttare il core Xen o raggiungere l'interfaccia dell'utente in esecuzione in Dom0 (sapendo che i guest hanno il loro server X sostituito da un server di visualizzazione rinforzato appositamente progettato per evitare precisamente tale possibilità. Tutte le comunicazioni tra VM in generale sono state attentamente progettate per ridurre qualsiasi area di esposizione al minimo), e costruisci i tunnel appropriati per poter ancora comunicare con il tuo software dannoso (entrare non è sufficiente, vuoi anche che i dati possano uscire, il che è banale su un sistema rivolto alla rete, ma molto più difficile sui sistemi guest isolati).
Voglio solo aggiungere che mentre il sistema operativo Qubes è il più noto e documentato come, per quanto ne sappiamo, 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 che adotta esattamente lo stesso approccio per proteggere i sistemi desktop a livello di difesa. Lo dico solo per evidenziare il fatto che discutere di tale tecnologia va oltre la discussione di sistemi operativi open source e proprietari.