Ces contrôles de sécurité fournissent un ensemble de lignes de base de meilleures pratiques en matière de sécurité des machines virtuelles. Ils sont structurés de manière à expliquer les avantages et les contreparties de la mise en œuvre du contrôle. Pour modifier les paramètres système avancés, vous pouvez utiliser l'instance de PowerCLI fournie ou le vSphere Client ( ).
Variable utilisée
Les commandes PowerCLI de cette section utilisent la variable suivante :
- $VM = « virtual_machine_name »
mks.enable3d
Désactive les fonctions graphiques 3D sur les machines virtuelles qui n'en ont pas besoin pour réduire les vecteurs d'attaque potentiels, améliorant ainsi la sécurité globale du système.
ethernet*.filter*.name
Limite l'accès aux machines virtuelles via l'API réseau « dvFilter ».
L'interface dvFilter est utilisée par des outils tels que NSX pour filtrer et inspecter le trafic réseau. D'autres outils peuvent également l'utiliser. Assurez-vous que ces outils sont autorisés.
Empêcher les machines virtuelles de démarrer à partir de sources non autorisées
Les machines virtuelles doivent empêcher le démarrage à partir de sources non autorisées.
Un accès non autorisé à une machine virtuelle peut se produire lorsque son volume de démarrage principal n'est pas disponible et que le microprogramme EFI recherche d'autres sources de démarrage, telles que le démarrage réseau. Ce problème peut être atténué par des contrôles réseau, ainsi qu'avec les paramètres avancés bios.bootDeviceClasses, bios.bootOrder et bios.hddOrder.
bios.bootDeviceClasses a le format « allow XXXX » ou « deny:XXXX », où XXXX est une liste de classes de démarrage séparées par des virgules. Les classes de démarrage sont net (démarrage PXE réseau), usb (à partir de périphériques USB connectés), pcmcia (cartes d'extension PCMCIA, non utilisées actuellement), cd (à partir de périphériques CD/DVD virtuels connectés), hd (à partir de disques durs virtuels attachés), fd (à partir de lecteurs de disquettes virtuels connectés), réservé (à partir de périphériques inconnus), efishell (dans le shell EFI) et toutes, ou n'importe laquelle de ces classes (identiques à tous).
- deny:all interdit toutes les classes de démarrage
- deny:net interdit le démarrage réseau, mais autorise tous les autres
- allow:hd autorise uniquement le démarrage hd et refuse tous les autres
- allow:hd, cd autorise le démarrage de périphérique hd puis cd et refuse tous les autres
Les nouvelles machines virtuelles peuvent nécessiter un démarrage sur CD/DVD, et certains environnements dynamiques, tels que les laboratoires, peuvent utiliser le démarrage réseau. Définissez ces environnements en conséquence et documentez votre justification.
- Incidence fonctionnelle potentielle si la valeur par défaut est modifiée
- La machine virtuelle ne peut plus démarrer à partir de sources non spécifiées, ce qui peut avoir un impact négatif sur les situations où un support de démarrage ou de récupération PXE est requis. Cependant, le paramètre est facilement modifié à l'échelle via PowerCLI. Une autre approche consiste à spécifier des méthodes bloquées, telles que « deny:net ».
RemoteDisplay.maxConnections
Limite le nombre de connexions de consoles à une machine virtuelle.
La limitation du partage de console de machine virtuelle à un seul utilisateur empêche plusieurs observateurs, améliorant ainsi la sécurité. Toutefois, cela peut créer par inadvertance une voie potentielle de déni de service.
- Incidence fonctionnelle potentielle si la valeur par défaut est modifiée
- Peut créer une condition de déni de service dans laquelle la console est inutilisable, car un utilisateur est connecté ou une session de console déconnectée persiste. D'autres produits, tels que VMware Cloud Director, peuvent nécessiter que vous définissiez cette option sur une valeur supérieure.
Limiter la fonctionnalité de relais de périphérique PCI
Les machines virtuelles doivent limiter la fonctionnalité de relais de périphérique PCI.
Les fonctionnalités d'E/S DirectPath permettent aux machines virtuelles d'accéder directement au matériel système, ce qui affecte les outils d'atténuation des risques tels que vMotion, DRS et High Availability. Les fonctionnalités d'E/S DirectPath offrent également aux pirates un accès privilégié au matériel. Assurez-vous que seules les machines virtuelles nécessaires disposent de ce privilège, en compensant les contrôles de sécurité du système d'exploitation invité.
Supprimer les périphériques de matériel virtuel inutiles des machines virtuelles
Les machines virtuelles doivent supprimer le matériel virtuel inutile.
Pour réduire les surfaces d'attaque potentielles, éliminez le matériel virtuel inutile des machines virtuelles. Les ports rarement utilisés, les lecteurs de CD/DVD temporaires et le matériel introduit par les migrations peuvent être vulnérables. Leur suppression diminue le risque d'introduction de logiciels ou d'exfiltration de données à partir d'un environnement protégé.
- Incidence fonctionnelle potentielle si la valeur par défaut est modifiée
- La suppression du lecteur de CD-ROM peut avoir un impact sur l'installation et la maintenance de VMware Tools. La suppression des contrôleurs XHCI peut affecter la connectivité du clavier et de la souris de la console pour certains systèmes d'exploitation invités.
- Évaluation de la commande PowerCLI
-
$VMview = Get-VM -Name $VM | Get-View $UnnecessaryHardware = "VirtualUSBController|VirtualUSBXHCIController|VirtualParallelPort|VirtualFloppy|VirtualSerialPort|VirtualHdAudioCard|VirtualAHCIController|VirtualEnsoniq1371|VirtualCdrom" $VMview.Config.Hardware.Device | Where-Object {$_.GetType().Name -match $UnnecessaryHardware} | Foreach-Object { $devname = $_.GetType().Name Write-Host "$VM`: [WARNING] VM has a $devname device. Please evaluate and consider removing." -ForegroundColor Yellow }
tools.guestlib.enableHostInfo
Empêche les machines virtuelles d'obtenir des informations sur l'hôte concernant l'hyperviseur.
Empêcher les machines virtuelles d'obtenir des informations sur l'hôte concernant l'hyperviseur réduit le risque d'attaques avancées, car cela permet de refuser aux adversaires des détails cruciaux sur l'hôte physique.
- Évaluation de la commande PowerCLI
-
Get-VM -Name $VM | Get-AdvancedSetting tools.guestlib.enableHostInfo
Définir le chiffrement pour Fault Tolerance
Les machines virtuelles doivent nécessiter un chiffrement pour Fault Tolerance.
L'exigence du chiffrement pour la tolérance aux pannes dans les machines virtuelles garantit la sécurité de la transmission des données. Alors que le chiffrement « opportuniste » par défaut entraîne probablement un chiffrement en raison de la prise en charge omniprésente d'AES-NI dans le matériel compatible avec vSphere, l'application d'un chiffrement « requis » garantit qu'aucune opération non chiffrée n'est garantie.
- Exemple de correction de la commande PowerCLI
-
$VMview = Get-VM -Name $VM | Get-View $ConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $ConfigSpec.FtEncryptionMode = New-object VMware.Vim.VirtualMachineConfigSpecEncryptedFtModes $ConfigSpec.FtEncryptionMode = "ftEncryptionRequired" $VMview.ReconfigVM_Task($ConfigSpec)
isolation.tools.copy.disable
Désactive les opérations de copie de console sur les machines virtuelles.
La désactivation des opérations de copie de console sur les machines virtuelles empêche la copie des données entre la machine virtuelle et le client local, que l'utilisateur accède ou non via la console Web, VMRC ou une autre méthode.
- Valeurs
- Valeur par défaut de l'installation : True
- Action nécessaire
- Contrôlez la valeur par défaut de l'installation.
- Incidence fonctionnelle potentielle si la valeur par défaut est modifiée
- Aucun
- Évaluation de la commande PowerCLI
-
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.copy.disable
isolation.tools.paste.disable
Désactive les opérations de collage de la console sur les machines virtuelles.
En désactivant les opérations de collage de console sur les machines virtuelles, le transfert de données du client local vers la machine virtuelle est bloqué, que l'utilisateur utilise la console Web, VMRC ou une autre console.
isolation.tools.diskShrink.disable
Désactive la réduction de disque virtuel sur les machines virtuelles.
La désactivation de la réduction de disque virtuel sur les machines virtuelles permet d'éviter les problèmes d'indisponibilité du disque. La capacité d'effectuer cette opération est généralement limitée pour les utilisateurs non administratifs dans l'environnement invité.
isolation.tools.diskWiper.disable
Désactive les opérations d'effacement de disque virtuel sur les machines virtuelles.
La désactivation de l'effacement du disque virtuel sur les machines virtuelles permet d'éviter les problèmes d'indisponibilité du disque. La capacité d'effectuer cette opération est généralement limitée pour les utilisateurs non administratifs dans l'environnement invité.
isolation.device.connectable.disable
Empêche les machines virtuelles de supprimer, de connecter et de modifier des périphériques non autorisés.
La prévention des modifications non autorisées des périphériques dans des blocs de machines virtuelles empêche les utilisateurs ou les processus non administratifs de se connecter, de se déconnecter ou d'ajuster les paramètres des périphériques. Cette mesure limite l'accès non autorisé et les interruptions de fonctionnement, ce qui réduit les risques de déni de service, ainsi que certaines possibilités d'exfiltrage des données.
isolation.tools.dnd.disable
Désactive les opérations de glisser-déposer sur les consoles de machine virtuelle.
La désactivation des opérations de glisser-déposer dans la console d'une machine virtuelle empêche les utilisateurs de transférer des données entre la machine virtuelle et le client local, quel que soit le type de console, améliorant ainsi la sécurité des données.
tools.setInfo.sizeLimit
Limite les messages d'information transmis de la machine virtuelle au fichier VMX.
Limiter les messages d'information d'une machine virtuelle au fichier VMX l'empêche de dépasser sa taille par défaut de 1 Mo. Cette option empêche d'éventuelles situations de déni de service qui peuvent se produire si la banque de données est saturée.
Activer la journalisation
Les machines virtuelles doivent activer la journalisation de diagnostic.
La journalisation des diagnostics pour les machines virtuelles facilite les analyses et le dépannage.
log.keepOld
Limite le nombre de journaux de diagnostic de machine virtuelle conservés.
En limitant la quantité de journaux de diagnostic conservés, vous évitez de remplir la banque de données sans compromettre la fonctionnalité de diagnostic.
log.rotateSize
Limite la taille des journaux de diagnostic de machine virtuelle.
La limitation de la taille des journaux de diagnostics sur les machines virtuelles empêche une consommation excessive d'espace, en particulier sur les machines virtuelles au long cours. La limite minimale recommandée est de 2 Mo.
tools.guestlib.enableHostInfo
Désactive la possibilité d'envoyer des informations sur l'hôte aux invités.
En configurant une machine virtuelle pour obtenir des informations détaillées sur l'hôte physique, un adversaire pourrait potentiellement utiliser ces informations pour signaler d'autres attaques sur l'hôte. Comme la valeur par défaut est l'état souhaité, vous pouvez effectuer un audit en vérifiant que ce paramètre n'est pas défini ou, s'il est défini, qu'il est défini sur False.
- Incidence fonctionnelle potentielle si la valeur par défaut est modifiée
- L'impossibilité de récupérer les informations de performance sur l'hôte à l'intérieur du système d'exploitation invité peut entraver le dépannage.
tools.guest.desktop.autolock
Verrouille la session d'invité de la machine virtuelle lorsque la console distante est déconnectée.
Le verrouillage de machines virtuelles à la fermeture de la dernière connexion de la console peut empêcher un accès non autorisé potentiel des pirates exploitant des sessions de console connectées.
Activer le chiffrement pour vMotion
Les machines virtuelles doivent nécessiter un chiffrement pour vMotion.
L'exigence du chiffrement pour vMotion dans les machines virtuelles garantit un transfert de données sécurisé. Le chiffrement « opportuniste » par défaut entraîne probablement un chiffrement en raison de la prise en charge étendue d'AES-NI dans le matériel compatible avec vSphere. Toutefois, l'application d'un chiffrement « requis » empêche toute opération non chiffrée.
- Exemple de correction de la commande PowerCLI
-
$VMview = Get-VM -Name $VM | Get-View $ConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $ConfigSpec.MigrateEncryption = New-Object VMware.Vim.VirtualMachineConfigSpecEncryptedVMotionModes $ConfigSpec.MigrateEncryption = "required" $VMview.ReconfigVM_Task($ConfigSpec)