Guide de sécurité
Aperçu
Principes généraux de sécurité
Les principes suivants sont fondamentaux pour utiliser une application
en toute sécurité.
Maintenir à jour le logiciel
Une des bonnes pratiques de sécurité est d'avoir des versions de
logiciel et des correctifs à jour. Activez la notification de
mise à jour de VirtualBox pour être averti quand une nouvelle
version de VirtualBox est disponible. Quand vous mettez à jour
VirtualBox, n'oubliez pas de mettre à jour aussi les suppléments
invité. Maintenez à jour le système d'exploitation hôte ainsi
que l'invité.
Restreindre l'accès réseau des services critiques
Utilisez les moyens, tels qu'un pare-feu, pour protéger votre
ordinateur et vo(s) invité(s) de l'extérieur. Choisir le bon mode
de réseau pour les VMs permet de distinguer le réseau de l'hôte
de l'invité et vice versa.
Suivre le principe du privilège le plus restreint
Le principe du privilège le plus restreint dispose qu'il faut
donner aux utilisateurs les privilèges strictement nécessaires
pour accomplir leurs tâches. Exécutez toujours VirtualBox en
tant qu'utilisateur ordinaire. Nous déconseillons fortement
d'exécuter VirtualBox avec des privilèges système.
Choisissez des droits restrictifs quand vous créez des fichiers
de configuration, par exemple quand vous créez
/etc/default/virtualbox, voir
. Le mode 0600 serait
idéal.
Surveiller l'activité du système
La sécurité du système repose sur trois piliers : de bons
protocoles de sécurité, une bonne configuration du système et
la surveillance du système. L'évaluation et la lecture des
fruits de l'évaluation constituent la troisième exigence. Chaque
composant d'un système a un certain degré de capacité à être
surveillé. Suivez les conseils d'évaluation de ce document et
surveillez régulièrement les fruits de l'évaluation.
Garder à jour les informations de sécurité
Oracle améliore en permanence ses logiciels et sa documentation.
Vérifiez ce passage chaque année pour trouver les révisions.
Installation et configuration sécurisées
Aperçu de l'installation
Vous ne devriez télécharger le paquet de base de VirtualBox qu'à partir d'une
source de confiance, telle que le site Internet officiel
http://www.virtualbox.org.
Vous devriez vérifier l'intégrité du paquet avec la somme de contrôle
SHA256 fournie sur le site officiel.
Vous pouvez trouver des instructions générales d'installation de VirtualBox
pour les hôtes supportés au .
Sur les hôtes Windows, l'installeur permet de désactiver le support USB,
le support du réseau bridgé, le support du réseau host-only et les bindings
du langage Python, voir . Toutes ces
fonctionnalités sont activées par défaut mais la désactivation de certaines
d'entre elles pourrait être adaptée si vous n'avez pas besoin des
fonctionnalités correspondantes sur une machine virtuelle. Les bindings du
langage Python ne sont nécessaires que si vous devez utiliser l'API de
VirtualBox avec des applications Python externes. En particulier, le
support USB et le support des deux modes réseaux nécessitent d'installer
des pilotes du noyau Windows sur l'hôte. Donc, la désactivation de ces
fonctions peut non seulement permettre d'encadrer l'utilisateur dans
certaines fonctionnalités, mais aussi de minimiser le champ d'attaque d'un
pirate potentiel.
En général, on installe tout le paquet VirtualBox. Il faut faire
l'installation avec les privilèges système. Tous les binaires de VirtualBox
devraient être lancés en tant qu'utilisateur ordinaire et jamais en tant
qu'utilisateur privilégié.
Le pack d'extension d'Oracle VM VirtualBox apporte des fonctionnalités
supplémentaires et il doit être téléchargé et installé à part, voir
. Comme pour le paquet de base, vous devriez vérifier
la somme de contrôle SHA256 du pack d'extension. Comme le système d'installation
exige des privilèges systèmes, VirtualBox vous demandera le mot de passe
système pendant l'installation du pack d'extension.
Configuration post installation
Normalement, aucune configuration post installation d'un composant de
VirtualBox n'est nécessaire. Cependant, sur les hôtes Solaris et Linux,
il faut configurer les droits adaptés pour que les utilisateurs exécutent
des VMs et puissent accéder à certaines ressources de l'hôte. Par exemple,
les utilisateurs Linux doivent faire partie du groupe vboxusers
pour pouvoir donner des périphériques USB à un invité. Si vous devriez
accéder à une interface série à partir d'une VM, il faut donner les bons
droits à l'utilisateur pour qu'il puisse accéder à ce périphérique. La
même chose s'applique à d'autres ressources comme la partition brute, les
lecteurs DVD/CD et les périphériques de son.
Fonctions de sécurité
Cette section évoque les mécanismes de sécurité spécifiques à
VirtualBox.
Le modèle de sécurité
Une des propriétés des gestionnaires de machines virtuels (VMMs) comme
VirtualBox est d'enfermer un invité en l'exécutant dans un environnement
protégé, une machine virtuelle laquelle fonctionne en tant que processus
d'un utilisateur du système d'exploitation hôte. L'invité ne peut pas
communiquer directement avec le matériel hôte ou avec d'autres ordinateurs,
mais uniquement via le VMM. Le VMM offre des ressources physiques et des
périphériques émulés à l'invité, auxquels on accède par le système d'exploitation hôte pour effectuer les
tâches nécessaires. Les paramètres de la VM contrôlent les ressources
fournies à l'invité, par exemple la quantité de mémoire de l'invité ou
le nombre de processeurs invités (voir )
et les fonctionnalités activées pour cet invité (par exemple le contrôle à distance, certains paramètres
d'affichage et autres).
Configuration sécurisée des machines virtuelles
Plusieurs aspects de la configuration d'une machine virtuelle sont sujets
à des considérations de sécurité.
Le réseau
Le mode réseau par défaut des VMs est NAT, ce qui signifie que la VM
se comporte comme un ordinateur derrière un routeur, voir
. L'invité fait partie d'un sous-réseau
privé appartenant à cette VM et l'adresse IP de l'invité n'est pas visible
de l'extérieur. Ce mode réseau fonctionne sans paramétrage supplémentaire
et il suffit pour la plupart des besoins.
Si vous utilisez le réseau bridgé, la VM se comporte comme un ordinateur
dans le même réseau que l'hôte, voir .
Dans ce cas, l'invité a un accès réseau identique à l'hôte et un
pare-feu pourrait être nécessaire pour protéger d'autres ordinateurs
du sous-réseau contre des invités malveillants potentiels et pour
protéger l'invité contre un accès direct par les autres ordinateurs.
Dans certains cas, il est intéressant de songer à utiliser une règle
de redirection pour un port spécifique en mode NAT, plutôt que d'utiliser
le réseau bridgé.
Certaines configurations n'ont pas besoin que la VM soit connectée au
réseau public. Le réseau interne (voir )
ou le réseau host-only (voir ) suffisent
souvent pour connecter des VMs entre elles ou pour ne connecter des VMs
qu'à l'hôte mais pas au réseau public.
Authentification sur un bureau distant (VRDP)
Quand on utilise le pack d'extension de VirtualBox fourni par Oracle
pour accéder à distance (VRDP), on peut éventuellement utiliser
plusieurs méthodes pour configurer l'authentification RDP. La méthode
"null" est très peu sûre, vous devriez l'éviter sur un réseau public.
Voir pour les détails.
Presse-papier
Le presse-papier partagé permet aux utilisateurs de partager des
données entre l'hôte et l'invité. L'activation du presse-papier en
"mode bidirectionnel" permet à l'invité de lire et d'écrire dans le
presse-papier de l'hôte. Le mode "hôte vers invité" et "Invité vers
hôte" limitent l'accès à un seul sens. Si l'invité peut accéder au
presse-papier de l'hôte, il peut aussi accéder potentiellement à des
données sensibles de l'hôte partagées dans le presse-papier.
Si l'invité peut lire et/ou écrire dans le presse-papier de l'hôte,
un utilisateur distant qui se connecte à l'invité par le réseau aura
également cette possibilité, ce qui peut ne pas être souhaitable. Par
conséquent, le presse-papier partagé est désactivé pour les nouvelles
machines.
Dossiers partagés
Si un dossier de l'hôte est partagé avec l'invité, n'importe quel utilisateur
connecté à distance à l'invité par le réseau peut accéder aussi à ces
fichiers car le mécanisme de partage des dossiers ne peut pas être désactivé
de manière sélective pour des utilisateurs distants.
Accélération graphique 3D
L'activation de la 3D avec les suppléments invité expose l'hôte
à des risques supplémentaires de sécurité ; voir .
CD/DVD passthrough
L'activation du CD/DVD passthrough permet à l'invité d'effectuer
des opérations avancées sur le lecteur CD/DVD, voir .
Cela peut poser un problème de sécurité car un invité pourrait écraser
des données sur un DVD.
USB passthrough
La présentation de périphériques USB à l'invité offre à l'invité un
accès complet à ces périphériques, voir .
Par exemple, outre la lecture et l'écriture du contenu des partitions
d'un disque USB externe, l'invité pourra également lire et écrire la
table de partitions et des données matérielles sur ce disque.
Configurer et utiliser l'authentification
Les composants suivants de VirtualBox peuvent utiliser des mots de
passe pour l'authentification :
Lors de l'utilisation du stockage iSCSI à distance et si le
serveur de stockage exige une authentification, vous pouvez fournir
un mot de passe d'initiateur avec la commande
VBoxManage storageattach. Tant que
vous ne fournissez pas de réglage de mots de passe (l'option
--settingspwfile en ligne de commande), ce mot
de passe secret est stocké sans chiffrement
dans la configuration de la machine et il est donc potentiellement
lisible sur l'hôte. Voir et .
Quand vous utilisez le service Web de VirtualBox pour contrôler
un hôte VirtualBox à distance, les connexions au service sont authentifiées
de plusieurs façons. Ceci est décrit en détails dans manuel de référence
du kit de développement logiciel de VirtualBox (SDK) ; merci de
voir .
Opérations potentiellement non sécurisées
Les fonctions suivantes de VirtualBox peuvent présenter des problèmes
de sécurité :
L'activation de la 3D par les suppléments invité expose l'hôte
à des risques de sécurité supplémentaires ; voir .
En téléportant une machine, le flux de données par lequel passe
le contenu de la mémoire de la machine est transféré d'un hôte à l'autre
sans chiffrement. Un tiers ayant un accès au réseau par lequel les
données sont transférées pourrait donc intercepter ces données. On
pourrait utiliser un tunnel SSH pour sécuriser la connexion entre les
deux hôtes. Mais au moment de téléporter une VM par un réseau non fiable,
la première question à vous poser est celle de savoir comment les VMs
peuvent accéder de manière sécurisée à la/aux même(s) image(s) de disque
virtuel avec une performance raisonnable.
Quand vous utilisez le service Web de VirtualBox pour contrôler
un hôte VirtualBox à distance, les connexions au service (par lesquelles
les appels de l'API sont transférées en SOAP XML) ne sont pas chiffrées,
elles utilisent par défaut le HTTP en clair. C'est un risque potentiel
de sécurité ! Pour des détails sur le service Web, merci de voir
.
Les services web ne sont pas lancés par défaut. Merci de vous
reporter au pour voir comment
démarrer ce service et activer le support SSL/TLS. Il faut le démarrer
en tant qu'utilisateur ordinaire et seules les VMs de cet utilisateur
sont contrôlables. Par défaut, le service sonde localhost, empêchant
toute connexion distante.
Le trafic envoyé par une connexion réseau en tunnel UDP n'est
pas chiffré. Vous pouvez soit le chiffrer au niveau du réseau hôte
(avec IPsec), soit utiliser des protocoles chiffrés dans le réseau
invité (tel que SSH). Les propriétés de sécurité sont similaires à un Ethernet bridgé.
Chiffrement
Les composants suivants de VirtualBox utilisent le chiffrement pour
protéger les données sensibles :
Quand on utilise le pack d'extension de VirtualBox fourni par
Oracle pour le support du bureau distant (VRDP), les données peuvent
être éventuellement chiffrées. Voir pour
des détails. Seule la méthode Enhanced RDP Security (RDP5.2) avec le
protocole TLS offre une connexion sécurisée. La Standard RDP Security
(RDP4 et RDP5.1) est vulnérable à une attaque man-in-the-middle.