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.

machines_virtuelles_logo

Présentation

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 intérêt ?

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.
  • Vous pouvez tester un logiciel sans l’installer sur votre PC. Dans le cas où vous pensez qu’il peut planter Windows.
  • Exécuter un fichier non sûr.

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 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).

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.

vmware_materiel

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

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.

Tester les VM

Enfin si vous voulez tester les machines sur votre ordinateur (il faut une bonne configuration).
Voici les deux programmes gratuits les plus utilisés.

VmPlayer

VmPlayer est le programme de virtualisation gratuit de Vmware.
=> http://www.vmware.com/fr/products/player.html

vmware-player-download-run-xp-on-windows-8

VirtualBox

VirtualBox est le logiciel de virtualisation d’Oracle.
=> https://www.virtualbox.org/wiki/Downloads

Un tutoriel existe sur le site : Virtualbox : exécuter Linux Ubuntu, Windows ou Debian

windows7_virtualbox
image_pdfimage_print
(Visité 1 591 fois, 1 visites ce jour)