VMware ESXi et la sécurité informatique
Les systèmes informatiques sont sensibles aux failles de sécurité, pas étonnant n’est-ce pas?
VMware ESXi est lui aussi touché par des vulnérabilités qui sont ensuite corrigées par l’éditeur.
Aujourd’hui, il est important de suivre l’évolution d’un produit afin de colmater ses failles.
Nous allons prendre l’exemple d’une template ESXi 5.1 : OVH. Nous allons patcher les vulnérabilités.
Le système deviendra alors un peu plus fiable et rendra la tâche plus difficile aux potentiels pirates.
La découverte de la faille HeatBleed a aussi touché la version 5.5 d’ESXi : exemple de vulnérabilité.
Bien comprendre l’enjeu :
Avant de se lancer dans la correction de vulnérabilité sur une infrastructure il est important d’en connaître certaines étapes, avec certains points à retenir :
- La correction de vulnérabilité est un processus à étapes multiples, il faut réaliser les étapes dans l’ordre.
- Avant de les effectuer, il faut comprendre le processus dans son ensemble.
- Les étapes sont réversibles, un patch peut être désinstallé.
- Si vous utilisez des plugins vérifiez leur compatibilité avec leurs futurs updates.
- Il faut également maîtriser le langage technique (VIB, profil d‘image, dépôt logiciel, etc…).
- Prenez des précautions (on ne le répète jamais assez) : sauvegardez vos VM’s !
- Comprendre la commande esxcli et ses paramètres.
- Vérifiez vos checksum VIB : effectuez un test avant le déploiement.
- Appliquez le patch ou l’update sur votre hôte.
La problématique :
Notre problématique est de patcher un hyperviseur sous VMware ESXi 5.1 vers 5.1U1 puis U2.
Pour le processus de mise à jour (ESXi 5.1 vers 5.1U1), il faut se poser certaines questions :
- Mon serveur ESXi est-il en production actuellement? Peut-il être en mode maintenance?
- Quels sont les composants qui constituent mon serveur? Sont-ils compatibles avec ESXi 5.1?
- Les drivers sont-ils disponibles pour le futur système ESXi 5.1 que je souhaite implanter?
Ce type de questions est indispensable avant de se lancer dans une migration quelle qu’elle soit.
Adapter vos updates suivant votre serveur, dans mon cas j’utilise un serveur dédié mSP 2013.
Lister les CVE
Il existe un nombre important de site de CVE comme par exemple : CVE.mitre et CERT SSI gouv fr.
Quand un CVE est accessible publiquement, il y a généralement un patch pour colmater la faille.
VMware a un portail public pour ses vunérabilités disponible à cette adresse : portail VMware.
Dans notre cas nous allons lister les CVE connus publiquement après le 29 aout 2012 (date de sortie de VMware ESXi 5.1) depuis le site de CVEdetails accessible à cette adresse : vunerability.
La liste des CVE connus pour l’éditeur VMware et le produit ESXi est à l’adresse suivante.
On se rend compte que notre hyperviseur actuellement en production connaît des failles importantes de sécurité, il est donc temps de colmater les brèches!
Patches VMware ESXi 5.1
Nous l’avons vu précédemment, le portail de VMware nous permet de télécharger des patchs.
Nous allons commencer à utiliser ce service en mode CLI dans notre busybox ESXi.
Pour ma part, je vais joindre mon ESXi par SSH, éteindre mes VMs et le mettre en maintenance.
vim-cmd hostsvc/maintenance_mode_enter
Rendez-vous maintenant sur le portail de VMware afin de patcher ESXi 5.1.
Cliquez maintenant sur « Search » et une liste déroulante apparaît :
Vous avez ici les deux dernières release qui comblent des vulnérabilités ou des bugs dans ESXi 5.1.
Il vous faut cocher l’ensemble de vos patchs postérieurs à votre version. Mon système Build Number est le « 799733 » et date du 29/08/2012. Je coche donc l’ensemble des updates disponibles puis je clique sur le bouton « Download now ».
Après avoir téléchargé le fichier vous avez l’ensemble des patchs dans votre archive.
Si vous rencontrez des problèmes, téléchargez-les un par un.
Pour commencer, je vous conseille de les transférer par SFTP (avec le logiciel Filezilla par exemple).
Veillez à bien noter le md5sum de votre archive afin de vérifier de l’intégrité après le transfère !
La commande de vérification du md5sum est la suivante dans VMware ESXi :
md5sum /chemin/ESXi510-201406001.zip 6f2931d6ad8d85bbc493ca42715030fb /chemin/ESXi510-201406001.zip
On vérifie le md5 de la source d’origine (vmware) :
md5sum:6f2931d6ad8d85bbc493ca42715030fb Build Number: 1900470 KB 2077640
Le MD5 correspond parfaitement, nous passons à la dernière étape.
Patch avec esxcli software vib
Pour patcher notre hyperviseur VMware en version 5.1 vers la 5.1U1, nous utiliserons la commande esxcli. On se positionne dans la hiérarchie de la commande suivante :
esxcli software vib
Ce qui nous renvoie les commandes disponibles :
Available Commands: get Displays detailed information about one or more installed VIBs install Installs VIB packages from a URL or depot. VIBs may be installed, upgraded, or downgraded. WARNING: If your installation requires a reboot, you need to disable HA first. list Lists the installed VIB packages remove Removes VIB packages from the host. WARNING: If your installation requires a reboot, you need to disable HA first. update Update installed VIBs to newer VIB packages. No new VIBs will be installed, only updates. WARNING: If your installation requires a reboot, you need to disable HA first.
Les détails des commandes sont très bien expliqués, dans mon cas j’utilise les updates.
Connaître la version ESXi (optionnel) :
Avant de vous lancer, vous pouvez savoir à tout instant la version de votre hyperviseur :
esxcli system version get
Product: VMware ESXi Version: 5.1.0 Build: Releasebuild-799733 Update: 0
Il existe un équivalent de la commande ci-dessus tel que :
vmware -l VMware ESXi 5.1.0 Update 0
Nous pouvons maintenant appliquer notre premier patch! Je vous conseille comme première commande d’utiliser le paramètre suivant : –dry-run car il permet de connaître les changements qui seront effectifs après l’update. C’est très pratique pour être certain de ne pas enlever un VIB personnalisé, comme le driver d’une carte réseau par exemple.
Voici comment appliquer un patch en mode simulation avec l’argument –dry-run à la fin :
esxcli software vib update -d "/vmfs/volumes/datastore1/ESXi550-201407001.zip" --dry-run
Dryrun only, host not changed. The following installers will be applied
Je n’affiche pas la liste mais il y a 3 onglets : update, remove, et skip, si tout vous semble correct nous pouvons passer à l’update de notre ESXi :
esxcli software vib update -d "/vmfs/volumes/datastore1/ESXi550-201407001.zip"
Vous pouvez désormais désactiver le mode maintenance sur le serveur :
vim-cmd hostsvc/maintenance_mode_exit
Effectuez un redémarrage du serveur :
reboot
Une fois le redémarrage du serveur terminé, votre client vSphere va se mettre à jour.
Une fois connecté en SSH à l’hyperviseur voici le nouveau build de l’update :
esxcli system version get
Product: VMware ESXi Version: 5.1.0 Build: Releasebuild-1065491 Update: 1
Il suffit d’appliquer les même étapes pour le passer en 5.1U2 ce qui donne après application :
esxcli system version get
Product: VMware ESXi Version: 5.1.0 Build: Releasebuild-1483097 Update: 2
Je vous l’accorde, la manipulation est assez fastidieuse, c’est une méthode sur un seul hôte.
Il existe une méthode plus simple avec VMware Vcenter Update Manager (payant).
Vous savez désormais comment colmater une faille dans votre hyperviseur ESXi!
Je vous encourage à colmater les failles de sécurité, tenez vous informé, abonnz-vous au flux RSS CVE!