Menu Fermer

La virtualisation ou les machines virtuelles

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.

La virtualisation ou les machines virtuelles

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 :

Vmware permet de faire tourner des machines virtuelles

et VirtualBox avec une machine infectée en Windows 7 :

Virtualbox une autre solution pour faire tourner des machines virtuelles

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 :

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.
Le fonctionnement des machines virtuelle (Virtualbox, VMWare, ...)
Le fonctionnement des machines virtuelle (Virtualbox, VMWare, …)

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.

Exemple de machine virtuelle avec VMware

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.

Comment créer une VM VMware Workstation Player et installer Windows 10

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 :

virtualbox logiciel de virtualisation

Mais surtout le site propose un dossier complet sur cette solution de virtualisation :