# Qubes OS

Qubes OS est un système d'exploitation (OS) orienté sécurité, qui vise à fournir la sécurité des systèmes d'information par l'isolement. Qubes est un logiciel libre, open-source et gratuit.

## Historique

Joanna Rutkowska et Rafal Wojtczuk commencent le développement de leur système en septembre 2010. La première version, Qubes 1.0, sort en 2012. Le système est recommandé par Edward Snowden en 2016. En septembre 2016, le système en est à sa version 3.2 et le 29 mars 2018 c'est la version 4.0 qui voit le jour.

## Objectifs

Qubes prend une approche appelée sécurité par la compartimentation qui permet de compartimenter les différentes parties de l’activité numérique de l’utilisateur en compartiments isolés en toute sécurité appelés Qubes.
Le concept sous-jacent est qu’aucun environnement ne peut être parfait et exempt de bogues, car le nombre de lignes de code et d’interactions entre le matériel et les logiciels est beaucoup trop important. Un seul bogue critique suffit alors à un logiciel malveillant pour maîtriser la machine$^,$.
Pour protéger son ordinateur, l’utilisateur de Qubes doit veiller à compartimenter son activité, de façon que seules les données d’un compartiment soient touchées en cas de compromission par un logiciel malveillant.
La compartimentation de Qubes s’étend à deux niveaux. Au niveau matériel, les différents contrôleurs peuvent être isolés dans des domaines différents (pour le réseau, l’USB), tandis que les domaines des logiciels de l’utilisateur sont séparés et disposent de différents niveaux de confiance. Le domaine de travail est ainsi jugé plus fiable que le domaine des achats en ligne, ou de la consultation de sites divers. Chacun de ces domaines est exécuté dans une machine virtuelle distincte.
Qubes n’est pas multi-utilisateur.

## Fonctionnement

La virtualisation est effectuée par l’hyperviseur Xen et les environnements utilisateur peuvent être basés sur Fedora, Debian, Whonix, Microsoft Windows et d'autres systèmes d'exploitation.

## Aperçu de l'architecture du système
### Hyperviseur Xen et domaine administratif (Dom0)

L'hyperviseur fournit une isolation entre les différentes machines virtuelles. Le domaine administratif, également appelé Dom0 (un terme hérité de Xen), a un accès direct à la totalité du matériel par défaut. Dom0 héberge le domaine GUI et contrôle le périphérique graphique, ainsi que les périphériques d'entrée, tels que le clavier et la souris. Le domaine GUI exécute le serveur X, qui affiche le bureau de l'utilisateur, et le gestionnaire de fenêtres, qui permet à l'utilisateur de démarrer et d'arrêter les applications et de manipuler leurs fenêtres.
L'intégration des différentes machines virtuelles est assurée par l'Application Viewer, qui fournit l'illusion à l'utilisateur que toutes les applications s'exécutent nativement sur le bureau, alors qu'en fait, elles sont hébergées (et isolées) dans différentes machines virtuelles. Qubes intègre toutes ces machines virtuelles dans un environnement de bureau commun.
Parce que Dom0 est primordial et prépondérant pour la sécurité, celui-ci est isolé du réseau. Il doit avoir le moins d'interface et de communication possible avec les autres domaines afin de minimiser la possibilité d'une attaque provenant d'une machine virtuelle infectée.
Le domaine Dom0 gère les disques virtuels des autres machines virtuelles, qui sont en fait stockés sous forme de fichiers sur le(s) système(s) de fichiers dom0. L'espace disque est sauvegardé grâce à diverses machines virtuelles (VM) partageant le même système de fichiers racine en mode « lecture seule ». Le stockage sur disque séparé n'est utilisé que pour le répertoire de l'utilisateur et les paramètres par VM. Cela permet de centraliser l'installation et les mises à jour du logiciel. Il est également possible d'installer le logiciel uniquement sur une machine virtuelle (VM) spécifique, en l'installant comme utilisateur avec des droits moindres que ceux du super-utilisateur, ou en l'installant dans la hiérarchie non standard, spécifique à Qubes, accessible en lecture-écriture.

### Domaine réseau

La composante domaine réseau est la plus exposée aux attaques de sécurité. Pour contourner cela, cette composante est isolée dans une machine virtuelle séparée et non privilégiée, appelée le « domaine réseau ».
Une machine virtuelle « pare-feu » supplémentaire est utilisée pour héberger le pare-feu basé sur le noyau Linux, de sorte que même si le « domaine réseau » est compromis en raison d'une faille présente au niveau du pilote de périphérique, le pare-feu est toujours isolé et protégé (puisqu'il tourne dans un noyau Linux distinct dans une machine virtuelle (VM) distincte).

### Application Machines virtuelles (AppVM)

Les « AppVM » sont les machines virtuelles utilisées pour héberger les applications des utilisateurs, telles qu'un navigateur Web, un client de messagerie électronique ou un éditeur de texte. Pour des raisons de sécurité, ces applications peuvent être regroupées dans différents domaines dénommés : « personnel », « travail », « Achat », « banque », etc. Les domaines de sécurité sont implémentés en tant que machines virtuelles (VM) séparées, celles-ci sont isolés les unes des autres comme si elles s'exécutaient sur des machines différentes.
Certains documents ou applications peuvent être exécutés dans des machines virtuelles jetables grâce à une option disponible dans le gestionnaire de fichiers. Le mécanisme s'appuie sur l'idée des bacs à sable : après avoir visionné le document ou exécuté l'application, toute la VM jetable sera détruite.
A chaque domaine ou compartiment est assigné une couleur déterminée par ses risques propres dus à l'environnement particulier dans lequel elle évolue. Par exemple : rouge pour le plus critique et vert pour le moins exposé, avec des teintes intermédiaires fixées. Graphiquement, chaque bordure de fenêtre est marquée par la couleur du domaine auquel elle appartient.

## Différence avec les machines virtuelles (VM) lancées dans les systèmes d'exploitation conventionnels

Toutes les machines virtuelles ne sont pas identiques en matière de sécurité. Les machines virtuelles utilisées dans les logiciels VirtualBox ou VMware sont appelées machines virtuelles de « type 2 ». Ces programmes sont populaires pour leur facilité d'utilisation et peuvent être exécutés sur des systèmes d'exploitation populaires. Étant de « type 2 », elles sont aussi sûres que le système d'exploitation sur lequel elles s'exécutent, si celui-ci est compromis, toutes les VM le sont aussi.
Qubes OS, quant à lui, utilise un hyperviseur de « type 1 » également connu sous le nom de Bare Metal, Xen. Il s'exécute directement sur le matériel, ce qui signifie qu'un attaquant doit trouver le moyen de corrompre et de détourner l'hyperviseur lui-même pour parvenir à mettre en danger l'ensemble du système, ce qui est beaucoup plus difficile.
Qubes permet de disposer du même confort que celui offert par un système d'exploitation conventionnel tout en bénéficiant de la sécurité découlant de plusieurs machines virtuelles fonctionnant sur un hyperviseur de type 1. Par exemple, toutes les fenêtres d'application sont placées sur le même bureau avec des bordures colorées spéciales qui indiquent les niveaux de confiance de leurs machines virtuelles respectives. Il permet également des opérations de sauvegarde et de collage entre machines virtuelles, la copie et le transfert de fichiers entre celles-ci et une meilleure sécurisation des réseaux de communication entre celles-ci et Internet.

## Distinctions

Le 16 février 2014, Qubes est finaliste du prix Accès Innovation 2014 pour la solution Endpoint Security.