Les machines virtuelles ou virtualisation sont des logiciels d’émulation capables de simuler un ordinateur.
Cela offre beaucoup de possibilités.
Les machines virtuelles sont très utilisées par les chercheurs en sécurité pour faire tourner des logiciels malveillants et étudier leurs fonctionnements.
Enfin elles sont aussi très pratiques dans les entreprises afin de faire tourner des applications sur des serveurs virtuels.
Puisque sur un même serveur physique, vous pouvez faire tourner plusieurs serveurs virtuelles.
Chez vous, vous pouvez utiliser les VM pour tester des OS comme Linux ou faire tourner une ancienne version de Windows.
Voici une présentation rapide du fonctionnement des machines virtuelles.
Table des matières
- 1 Qu’est-ce que la virtualisation et machines virtuelles
- 2 Le fonctionnement des machines virtuelles
- 3 Machines virtuelle et sécurité (malwares, attaques)
- 4 Les machines virtuelles en détail
- 5 Une isolation de l’hôte
- 6 Le pouvoir des snapshots dans les machines virtuelles
- 7 Logiciels de virtualisation
- 8 Liens
Qu’est-ce que la virtualisation et machines virtuelles
A quoi sert une machine virtuelle et la virtualisation ?
Les machines virtuelles (ou VM en anglais pour Virtual Machine) entre dans le cadre de la virtualisation.
Il s’agit de faire tourner des ordinateurs dans un environnement virtualisée, c’est à dire émule.
En clair, à partir d’une machine physique, vous pouvez faire tourner plusieurs ordinateurs.
En effet, elle émule un PC en partie de manière logiciel et matériel.
Il est tout à fait possible de faire tourner un de ces émulateurs sur un système Linux pour créer des ordinateurs qui seront en Windows.
Enfin l’inverse reste aussi possible.
Ci-dessous, VMware (Vmware Workstation) avec une machine virtuelle en Windows 10 :
et VirtualBox avec une machine infectée en Windows 7 :
Vmware en vidéo :
Le marché de la virtualisation est en pleine expansion et beaucoup de solutions différentes existent.
Quel es l’intérêt d’une machine virtuelle ?
Chez vous cela peut avoir plusieurs intérêt comme :
- Tester un OS sans l’installer sur votre disque dur. En effet, vous chargez ce dernier dans la VM. Cela évite de devoir toucher aux partitions de disques. Par exemple : Tester et essayer Linux sans installation.
- Vous pouvez tester un logiciel sans l’installer sur votre PC. Dans le cas où vous pensez qu’il peut planter Windows.
- Faire tourner un vieux logiciel dans une version obsolète de Windows.
- Sécurité : exécuter un fichier non sûr. Par exemple, Windows 10 propose Windows Sandbox dans ce sens : Windows Sandbox : sécuriser l’exécution d’un fichier.
Machine hôte et virtuelle
Afin de bien comprendre de quoi nous parlons.
- La machine hôte : c’est le PC sur lequel vous faites tourner la VM et le logiciel de virtualisation. Dans les entreprises il s’agit de serveurs qui peuvent aussi fonctionner en cluster.
- La machine virtuelle ou VM : c’est le PC émule qui tourne sur la machine hôte.
Machine virtuelle VS bac à sable
Enfin on peut se poser la question des différences entre une machine virtuelle et un bac à sable.
Une machine virtuelle permet d’installer et faire tourner un système d’exploitation.
Elle se comporte comme un PC “réelle”.
Un bac à sable est un environnement isolé du système d’exploitation.
En général, on fait tourner une ou plusieurs application.
Ainsi une machine virtuelle peut être considéré et se comporter comme un bac à sable par définition.
Mais un bac à sable n’est pas une machine virtuelle.
Windows 10 possède beaucoup de système de bac à sable.
Par exemple : Windows Defender Application Guard ou encore l’isolation du noyau.
Enfin jetez un coup d’oeil à l’article : Windows Defender Device Guard et Protection DMA de Windows 10.
L’OS de Microsoft utilise les technologies de virtualisation matérielle pour créer des conteneurs et bac à sable afin de sécuriser Windows 10.
Le fonctionnement des machines virtuelles
Des techniques différentes existent aussi pour émuler un PC.
Voici les principales technologies.
Isolateurs
Il s’agit d’un logiciel qui tourne sur la machine hôte qui permettent de faire tourner différents processus dans un environnement fermé.
L’isolement n’est pas forcément entier puisque ces solutions peuvent être basés sur un système chroot.
Les fichiers utilisés par le système isolé peut être accessible directement depuis la machine hôte.
L’isolateur est assez intéressant sur les système Linux pour faire tourner de manière isolé des serveurs WEB.
Quelques solutions isolateur : Linux-VServer (isolation des processus en espace utilisateur) ; chroot (isolation changement de racine) ; BSD Jail (isolation en espace utilisateur) ; OpenVZ : libre, (partitionnement au niveau noyau sous Linux) ;LXC : libre, (usage des Cgroups du noyau Linux).
Hyperviseur
Logiciel plus lourd installé sur la machine hôte qui se charge de gérer les machines virtuelles. L’hyperviseur se charge d’émuler ou virtualiser un matériel précis.
Les machines virtuelles fonctionnent alors comme un ordinateur classique.
Parmi ces solutions, on trouve : KVM, QEMU, VMware, VirtualBox, VirtualPC, Xen et Bochs sont quelques logiciels de virtualisation.
Virtualisation matérielle
Le matériel informatique s’adapte et intègre un support de virtualisation qui peut accroître les performances. Ce support permet en autre la virtualisation du matériel qui peut être accessible directement par les hyperviseurs et les machines virtuelles.
Des exemples de virtualisation matérielle : Hyperviseur IBM Power & Micro-partitionnement AIX, Mainframes : VM/CMS, Sun LDOM (hyperviseur pour la gestion de « logical domains »), Sun E10k/E15k, HP Superdome, AMD-V (Assistance à la virtualisation de AMD, anciennement Pacifica) et Intel VT (Assistance à la virtualisation de Intel, anciennement Vanderpool).
Machines virtuelle et sécurité (malwares, attaques)
La question qui peut se poser est peut-on infecter la machine hôte avec un malware ou en prendre le contrôle à travers une attaque.
L’article suivant répond à ces questions :
Les machines virtuelles en détail
Les machines virtuelles fonctionnent comme tout ordinateur.
Ces dernières possèdent un BIOS géré par l’hyperviseur.
Ensuite on installe un OS comme si vous étiez sur un vrai ordinateur.
Il faut donc charger le fichier ISO d’installation.
Enfin on fait démarre la VM sur ce fichier ISO.
Comme vous pouvez le voir ci-dessous, on choisir la configuration matérielle de la VM.
Bien entendu on est limité par les capacités physique de l’hôte.
On peut donc voir qu’une interface réseau et USB sont présentes.
Lorsque vous lancez la machine virtuelle, un processus est créé sur la machine hôte.
C’est ce processus qui fait office d’ordinateur virtuelle.
Par exemple, pour VMware, il s’agit de vmware-vmx, exemple :
/usr/lib/vmware/bin/vmware-vmx -s vmx.stdio.keep=TRUE -# product=1;name=VMware Workstation;version=10.0.2;buildnumber=1744117;licensename=VMware Workstation;licenseversion=10.0; -@ duplex=3;instance=0;msgs=ui /home/stockage/vm/Debian/Debian 5 64-bit.vmx
et par exemple pour VirtualBox :
/usr/lib/virtualbox/VirtualBox --comment Windows7_32bits_test --startvm 1964979f-e0d1-44ee-9334-815587e2b209 --no-startvm-errormsgbox
Pour Xen, on peut avoir :
/usr/bin/qemu-system-i386 -xen-domid 4 -chardev socket,id=libxl-cmd,path=/var/run/xen/qmp-libxl-4,server,nowait -mon chardev=libxl-cmd,mode=control -nodefaults -name xenwin7 -vnc 10.1.1.86:0,password,to=99 -display none -serial pty -device VGA -boot order=dc -usb -usbdevice tablet -device rtl8139,id=nic0,netdev=net0,mac=00:16:3e:07:05:8f -netdev type=tap,id=net0,ifname=vif4.0-emu,script=no,downscript=no -machine xenfv -m 4080 -drive file=/xen/xenwin7.img,if=ide,index=0,media=disk,format=raw,cache=writeback -drive file=/xen/ISO/fr_windows_7_professional_x64_dvd_x15-65811.iso,if=ide,index=2,readonly=on,media=cdrom,format=raw,cache=writeback,id=ide-5632
Les éditeurs font tout pour isoler au maximum les machines virtuelles… Bien entendu, comme l’hyperviseur est un logiciel, il peut comporter des vulnérabilités qui permettent de l’attaquer.
Il faut donc, mettre à jour le logiciel hyperviseur.
D’autre part, d’un point de vue sécurité, la machine virtuelle se comporte comme un ordinateur
Elle possède sa propre adresse IP.
Ainsi si un malware attaque la VM, elle peut envoyer des trames sur le réseau pour infecter d’autres ordinateur.
Au final, comme tout ordinateur.
Une isolation de l’hôte
La machine virtuelle étant exécutée sur la machine hôte, il est possible de récupérer des informations, comme c’est le cas avec n’importe quel autre logiciel.
On peut peut récupérer les informations en mémoire, la liste des processus, écoute le réseau etc.
En autre, le programme volatility permet cela. J’en avais déjà parlé sur cette entrée : volatility dump information mémoire
Ce programme est assez utilisé par les chercheurs en sécurité qui font tourner des malwares sur leurs machines virtuelles.
Avec la démocratisation de la virtualisation, on peut imaginer des virus/malwares qui s’attaquent à ce type de serveur pour récupérer des informations sensibles.
Le pouvoir des snapshots dans les machines virtuelles
Chose intéressante lorsqu’il s’agit de tester des logiciels ou infections.
Ce sont les snapshots, il s’agit d’image instantanée, où il est possible de revenir à tout moment.
En clair, vous créé un snapshopt, plantez le système, installé un malware/virus ou effectuez une modification non voulue… vous pouvez revenir en arrière en quelques secondes.
Les machines virtuelles sont vraiment l’idéal pour tester toutes sortes de choses.
Voici une vidéo qui montre après désinstallation de divers logiciels, on revient sur un snapshot et ces derniers sont à nouveaux présents.
Cela supprime les modifications et on revient à une image d’un instantanée.
Logiciels de virtualisation
Enfin si vous voulez tester les machines sur votre ordinateur (il faut une bonne configuration).
Voici les deux logiciels de virtualisation gratuits les plus utilisés.
VM VMware Workstation Player
VM VMware Workstation Player est le programme de virtualisation gratuit de VM VMware Workstation Player.
Ce dernier étant un éditeur des virtualisations les plus connus notamment dans le monde de l’entreprise.
VirtualBox
VirtualBox est le logiciel de virtualisation d’Oracle.
C’est donc un logiciel gratuit qui fonctionne sur Windows et Linux.
Vous pouvez créer autant de machines virtuelles que vous le souhaitez.
Un tutoriel existe sur le site :
Mais surtout le site propose un dossier complet sur cette solution de virtualisation :
Liens
- Comment créer une machine virtuelle VirtualBox
- Comment créer une VM VMware Workstation Player et installer Windows 10
- Comment créer une VM VMware Workstation Player et installer Windows 11
- Comment installer Windows 11 sur VMware avec TPM et Secure boot
- Comment installer VMware Tools sur Windows et Ubuntu
- Comment activer TPM 2.0 dans VMware Workstation Player