{"stig":{"title":"VMware vSphere 7.0 Virtual Machine Security Technical Implementation Guide","version":"1","release":"4"},"checks":[{"vulnId":"V-256450","ruleId":"SV-256450r959010_rule","severity":"low","ruleTitle":"Copy operations must be disabled on the virtual machine (VM).","description":"Copy and paste operations are disabled by default; however, explicitly disabling this feature will enable audit controls to verify this setting is correct. Copy, paste, drag and drop, or GUI copy/paste operations between the guest operating system and the remote console could provide the means for an attacker to compromise the VM.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.copy.disable\" value is set to true.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.copy.disable\n\nIf the virtual machine advanced setting \"isolation.tools.copy.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.tools.copy.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen. \n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as noted below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.copy.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.copy.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256451","ruleId":"SV-256451r959010_rule","severity":"low","ruleTitle":"Drag and drop operations must be disabled on the virtual machine (VM).","description":"Copy and paste operations are disabled by default; however, explicitly disabling this feature will enable audit controls to verify this setting is correct. Copy, paste, drag and drop, or GUI copy/paste operations between the guest operating system and the remote console could provide the means for an attacker to compromise the VM.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.dnd.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.dnd.disable\n\nIf the virtual machine advanced setting \"isolation.tools.dnd.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.dnd.disable\" value is set to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as noted below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.dnd.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.dnd.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256452","ruleId":"SV-256452r959010_rule","severity":"low","ruleTitle":"Paste operations must be disabled on the virtual machine (VM).","description":"Copy and paste operations are disabled by default; however, explicitly disabling this feature will enable audit controls to verify this setting is correct. Copy, paste, drag and drop, or GUI copy/paste operations between the guest operating system and the remote console could provide the means for an attacker to compromise the VM.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.paste.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.paste.disable\n\nIf the virtual machine advanced setting \"isolation.tools.paste.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.tools.paste.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.paste.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.paste.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256453","ruleId":"SV-256453r959010_rule","severity":"medium","ruleTitle":"Virtual disk shrinking must be disabled on the virtual machine (VM).","description":"Shrinking a virtual disk reclaims unused space in it. If there is empty space in the disk, this process reduces the amount of space the virtual disk occupies on the host drive. Normal users and processes (those without root or administrator privileges) within virtual machines have the capability to invoke this procedure. \n\nHowever, if this is done repeatedly, the virtual disk can become unavailable while this shrinking is being performed, effectively causing a denial of service. In most datacenter environments, disk shrinking is not done, so this feature must be disabled. Repeated disk shrinking can make a virtual disk unavailable. The capability to shrink is available to nonadministrative users operating within the VM's guest operating system.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.diskShrink.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.diskShrink.disable\n\nIf the virtual machine advanced setting \"isolation.tools.diskShrink.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.tools.diskShrink.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.diskShrink.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.diskShrink.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256454","ruleId":"SV-256454r959010_rule","severity":"medium","ruleTitle":"Virtual disk wiping must be disabled on the virtual machine (VM).","description":"Shrinking and wiping (erasing) a virtual disk reclaims unused space in it. If there is empty space in the disk, this process reduces the amount of space the virtual disk occupies on the host drive. Normal users and processes (those without root or administrator privileges) within virtual machines have the capability to invoke this procedure. \n\nHowever, if this is done repeatedly, the virtual disk can become unavailable while this shrinking is being performed, effectively causing a denial of service. In most datacenter environments, disk shrinking is not done, so this feature must be disabled. Repeated disk shrinking can make a virtual disk unavailable. The capability to wipe (erase) is available to nonadministrative users operating within the VM's guest operating system.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.diskWiper.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.diskWiper.disable\n\nIf the virtual machine advanced setting \"isolation.tools.diskWiper.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.tools.diskWiper.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.diskWiper.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.diskWiper.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256455","ruleId":"SV-256455r959010_rule","severity":"medium","ruleTitle":"Independent, nonpersistent disks must not be used on the virtual machine (VM).","description":"The security issue with nonpersistent disk mode is that successful attackers, with a simple shutdown or reboot, might undo or remove any traces they were ever on the machine. To safeguard against this risk, production virtual machines should be set to use persistent disk mode; additionally, ensure activity within the VM is logged remotely on a separate server, such as a syslog server or equivalent Windows-based event collector. Without a persistent record of activity on a VM, administrators might never know whether they have been attacked or hacked.  \n\nThere can be valid use cases for these types of disks, such as with an application presentation solution where read-only disks are desired, and such cases should be identified and documented.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nReview the attached hard disks and verify they are not configured as independent nonpersistent disks.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-HardDisk | Select Parent, Name, Filename, DiskType, Persistence | FT -AutoSize\n\nIf the virtual machine has attached disks that are in independent nonpersistent mode and are not documented, this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nSelect the target hard disk and change the mode to \"persistent\" or uncheck \"Independent\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nGet-VM \"VM Name\" | Get-HardDisk | Set-HardDisk -Persistence IndependentPersistent\n\nor\n\nGet-VM \"VM Name\" | Get-HardDisk | Set-HardDisk -Persistence Persistent","ccis":["CCI-000366"]},{"vulnId":"V-256456","ruleId":"SV-256456r959010_rule","severity":"medium","ruleTitle":"Host Guest File System (HGFS) file transfers must be disabled on the virtual machine (VM).","description":"Setting \"isolation.tools.hgfsServerSet.disable\" to \"true\" disables registration of the guest's HGFS server with the host. Application Programming Interfaces (APIs) that use HGFS to transfer files to and from the guest operating system, such as some VIX commands, will not function. An attacker could use this to transfer files inside the guest operating system.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.tools.hgfsServerSet.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.hgfsServerSet.disable\n\nIf the virtual machine advanced setting \"isolation.tools.hgfsServerSet.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.tools.hgfsServerSet.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.tools.hgfsServerSet.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.tools.hgfsServerSet.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256457","ruleId":"SV-256457r959010_rule","severity":"medium","ruleTitle":"Unauthorized floppy devices must be disconnected on the virtual machine (VM).","description":"Ensure no device is connected to a virtual machine if it is not required. For example, floppy, serial, and parallel ports are rarely used for virtual machines in a data center environment, and CD/DVD drives are usually connected only temporarily during software installation.","checkContent":"Floppy drives are no longer visible through the vSphere Client and must be done via the Application Programming Interface (API) or PowerCLI.\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Get-FloppyDrive | Select Parent, Name, ConnectionState\n\nIf a virtual machine has a floppy drive connected, this is a finding.","fixText":"Floppy drives are no longer visible through the vSphere Client and must be done via the API or PowerCLI.\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-FloppyDrive | Remove-FloppyDrive\n\nNote: The VM must be powered off to remove the floppy drive.","ccis":["CCI-000366"]},{"vulnId":"V-256458","ruleId":"SV-256458r959010_rule","severity":"low","ruleTitle":"Unauthorized CD/DVD devices must be disconnected on the virtual machine (VM).","description":"Ensure no device is connected to a virtual machine if it is not required. For example, floppy, serial, and parallel ports are rarely used for virtual machines in a data center environment, and CD/DVD drives are usually connected only temporarily during software installation.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nReview the VM's hardware and verify no CD/DVD drives are connected.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Get-CDDrive | Where {$_.extensiondata.connectable.connected -eq $true} | Select Parent,Name\n\nIf a virtual machine has a CD/DVD drive connected other than temporarily, this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nSelect the CD/DVD drive and uncheck \"Connected\" and \"Connect at power on\" and remove any attached ISOs.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-CDDrive | Set-CDDrive -NoMedia","ccis":["CCI-000366"]},{"vulnId":"V-256459","ruleId":"SV-256459r959010_rule","severity":"medium","ruleTitle":"Unauthorized parallel devices must be disconnected on the virtual machine (VM).","description":"Ensure no device is connected to a virtual machine if it is not required. For example, floppy, serial, and parallel ports are rarely used for virtual machines in a data center environment, and CD/DVD drives are usually connected only temporarily during software installation.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nReview the VM's hardware and verify no parallel devices exist.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Where {$_.ExtensionData.Config.Hardware.Device.DeviceInfo.Label -match \"parallel\"}\n\nIf a virtual machine has a parallel device present, this is a finding.","fixText":"The VM must be powered off to remove a parallel device.\n\nFrom the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nSelect the parallel device, click the circled \"X\" to remove it, and click \"OK\".","ccis":["CCI-000366"]},{"vulnId":"V-256460","ruleId":"SV-256460r959010_rule","severity":"medium","ruleTitle":"Unauthorized serial devices must be disconnected on the virtual machine (VM).","description":"Ensure no device is connected to a virtual machine if it is not required. For example, floppy, serial, and parallel ports are rarely used for virtual machines in a datacenter environment, and CD/DVD drives are usually connected only temporarily during software installation.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nReview the VM's hardware and verify no serial devices exist.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Where {$_.ExtensionData.Config.Hardware.Device.DeviceInfo.Label -match \"serial\"}\n\nIf a virtual machine has a serial device present, this is a finding.","fixText":"The VM must be powered off to remove a serial device.\n\nFrom the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nSelect the serial device, click the circled \"X\" to remove it, and click \"OK\".","ccis":["CCI-000366"]},{"vulnId":"V-256461","ruleId":"SV-256461r959010_rule","severity":"medium","ruleTitle":"Unauthorized USB devices must be disconnected on the virtual machine (VM).","description":"Ensure no device is connected to a virtual machine if it is not required. For example, floppy, serial, and parallel ports are rarely used for virtual machines in a data center environment, and CD/DVD drives are usually connected only temporarily during software installation.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nReview the VM's hardware and verify no USB devices exist.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following commands:\n\nGet-VM | Where {$_.ExtensionData.Config.Hardware.Device.DeviceInfo.Label -match \"usb\"}\nGet-VM | Get-UsbDevice\n\nIf a virtual machine has any USB devices or USB controllers present, this is a finding.\n\nIf USB smart card readers are used to pass smart cards through the VM console to a VM, the use of a USB controller and USB devices for that purpose is not a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to \"Edit Settings\".\n\nSelect the USB controller, click the circled \"X\" to remove it, and click \"OK\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-USBDevice | Remove-USBDevice\n\nNote: This will not remove the USB controller, just any connected devices.","ccis":["CCI-000366"]},{"vulnId":"V-256462","ruleId":"SV-256462r959010_rule","severity":"medium","ruleTitle":"Console connection sharing must be limited on the virtual machine (VM).","description":"By default, more than one user at a time can connect to remote console sessions. When multiple sessions are activated, each terminal window receives a notification about the new session. If an administrator in the VM logs in using a VMware remote console during their session, a nonadministrator in the VM might connect to the console and observe the administrator's actions.\n\nAlso, this could result in an administrator losing console access to a VM. For example, if a jump box is being used for an open console session and the administrator loses connection to that box, the console session remains open. Allowing two console sessions permits debugging via a shared session. For the highest security, allow only one remote console session at a time.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"RemoteDisplay.maxConnections\" value is set to \"1\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name RemoteDisplay.maxConnections\n\nIf the virtual machine advanced setting \"RemoteDisplay.maxConnections\" does not exist or is not set to \"1\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"RemoteDisplay.maxConnections\" value and set it to \"1\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name RemoteDisplay.maxConnections -Value 1\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name RemoteDisplay.maxConnections | Set-AdvancedSetting -Value 1","ccis":["CCI-000366"]},{"vulnId":"V-256463","ruleId":"SV-256463r1051422_rule","severity":"low","ruleTitle":"Informational messages from the virtual machine to the VMX file must be limited on the virtual machine (VM).","description":"The configuration file containing these name-value pairs is limited to a size of 1MB. If not limited, VMware tools in the guest operating system are capable of sending a large and continuous data stream to the host. This 1MB capacity should be sufficient for most cases, but this value can change if necessary.\n\nThe value can be increased if large amounts of custom information are being stored in the configuration file. The default limit is 1MB.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"tools.setInfo.sizeLimit\" value is set to \"1048576\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.setinfo.sizeLimit\n\nIf the virtual machine advanced setting \"tools.setInfo.sizeLimit\" does not exist or is not set to \"1048576\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"tools.setInfo.sizeLimit\" value and set it to \"1048576\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name tools.setInfo.sizeLimit -Value 1048576\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.setInfo.sizeLimit | Set-AdvancedSetting -Value 1048576","ccis":["CCI-000366"]},{"vulnId":"V-256464","ruleId":"SV-256464r959010_rule","severity":"medium","ruleTitle":"Unauthorized removal, connection, and modification of devices must be prevented on the virtual machine (VM).","description":"In a virtual machine, users and processes without root or administrator privileges can connect or disconnect devices, such as network adaptors and CD-ROM drives, and can modify device settings. Use the virtual machine settings editor or configuration editor to remove unneeded or unused hardware devices. To use the device again, prevent a user or running process in the virtual machine from connecting, disconnecting, or modifying a device from within the guest operating system.\n\nBy default, a rogue user with nonadministrator privileges in a virtual machine can: \n\n1. Connect a disconnected CD-ROM drive and access sensitive information on the media left in the drive.\n2. Disconnect a network adaptor to isolate the virtual machine from its network, which is a denial of service.\n3. Modify settings on a device.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"isolation.device.connectable.disable\" value is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.device.connectable.disable\n\nIf the virtual machine advanced setting \"isolation.device.connectable.disable\" does not exist or is not set to \"true\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"isolation.device.connectable.disable\" value and set it to \"true\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name isolation.device.connectable.disable -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name isolation.device.connectable.disable | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256465","ruleId":"SV-256465r959010_rule","severity":"medium","ruleTitle":"The virtual machine (VM) must not be able to obtain host information from the hypervisor.","description":"If enabled, a VM can obtain detailed information about the physical host. The default value for the parameter is FALSE. This setting should not be TRUE unless a particular VM requires this information for performance monitoring. An adversary could use this information to inform further attacks on the host.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"tools.guestlib.enableHostInfo\" value is set to \"false\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.guestlib.enableHostInfo\n\nIf the virtual machine advanced setting \"tools.guestlib.enableHostInfo\" does not exist or is not set to \"false\", this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"tools.guestlib.enableHostInfo\" value and set it to \"false\".\n\nIf the setting does not exist, add the Name and Value setting at the bottom of screen.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name tools.guestlib.enableHostInfo -Value false\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.guestlib.enableHostInfo | Set-AdvancedSetting -Value false","ccis":["CCI-000366"]},{"vulnId":"V-256466","ruleId":"SV-256466r959010_rule","severity":"low","ruleTitle":"Shared salt values must be disabled on the virtual machine (VM).","description":"When salting is enabled (Mem.ShareForceSalting=1 or 2) to share a page between two virtual machines, both salt and the content of the page must be same. A salt value is a configurable advanced option for each virtual machine. The salt values can be specified manually in the virtual machine's advanced settings with the new option \"sched.mem.pshare.salt\".\n\nIf this option is not present in the virtual machine's advanced settings, the value of the \"vc.uuid\" option is taken as the default value. Because the \"vc.uuid\" is unique to each virtual machine, by default Transparent Page Sharing (TPS) happens only among the pages belonging to a particular virtual machine (Intra-VM).","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nVerify the \"sched.mem.pshare.salt\" setting does not exist.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name sched.mem.pshare.salt\n\nIf the virtual machine advanced setting \"sched.mem.pshare.salt\" exists, this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nDelete the \"sched.mem.pshare.salt\" setting.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name sched.mem.pshare.salt | Remove-AdvancedSetting","ccis":["CCI-000366"]},{"vulnId":"V-256467","ruleId":"SV-256467r959010_rule","severity":"low","ruleTitle":"Access to virtual machines (VMs) through the \"dvfilter\" network Application Programming Interface (API) must be controlled.","description":"An attacker might compromise a VM by using the \"dvFilter\" API. Configure only VMs that need this access to use the API.","checkContent":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nLook for settings with the format \"ethernet*.filter*.name\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name \"ethernet*.filter*.name*\"\n\nIf the virtual machine advanced setting \"ethernet*.filter*.name\" exists and dvfilters are not in use, this is a finding.\n\nIf the virtual machine advanced setting \"ethernet*.filter*.name\" exists and the value is not valid, this is a finding.","fixText":"From the vSphere Client, right-click the Virtual Machine and go to Edit Settings >> VM Options >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nLook for settings with the format \"ethernet*.filter*.name\".\n\nEnsure only required VMs use this setting.\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name ethernetX.filterY.name | Remove-AdvancedSetting\n\nNote: Change the X and Y values to match the specific setting in the organization's environment.","ccis":["CCI-000366"]},{"vulnId":"V-256468","ruleId":"SV-256468r959010_rule","severity":"low","ruleTitle":"System administrators must use templates to deploy virtual machines (VMs) whenever possible.","description":"Capture a hardened base operating system image (with no applications installed) in a template to ensure all VMs are created with a known baseline level of security. Use this template to create other, application-specific templates, or use the application template to deploy VMs. Manual installation of the operating system and applications into a VM introduces the risk of misconfiguration due to human or process error.","checkContent":"Ask the system administrator if hardened, patched templates are used for VM creation and properly configured operating system deployments, including applications dependent and nondependent on VM-specific configurations.\n\nIf hardened, patched templates are not used for VM creation, this is a finding.","fixText":"Create hardened VM templates to use for operating system deployments.","ccis":["CCI-000366"]},{"vulnId":"V-256469","ruleId":"SV-256469r959010_rule","severity":"medium","ruleTitle":"Use of the virtual machine (VM)  console must be minimized.","description":"The VM console enables a connection to the console of a virtual machine, in effect seeing what a monitor on a physical server would show. The VM console also provides power management and removable device connectivity controls, which could allow a malicious user to bring down a VM. In addition, it impacts performance on the service console, especially if many VM console sessions are open simultaneously.","checkContent":"Remote management services, such as terminal services and Secure Shell (SSH), must be used to interact with VMs.\n\nVM console access should only be granted when remote management services are unavailable or insufficient to perform necessary management tasks.\n\nAsk the system administrator if a VM console is used to perform VM management tasks other than for troubleshooting VM issues. \n\nIf a VM console is used to perform VM management tasks other than for troubleshooting VM issues, this is a finding. \n\nIf SSH and/or terminal management services are exclusively used to perform management tasks, this is not a finding.","fixText":"Develop a policy prohibiting the use of a VM console for performing management services.\n\nThis policy should include procedures for the use of SSH and Terminal Management services for VM management.\n\nWhere SSH and Terminal Management services prove insufficient to troubleshoot a VM, access to the VM console may be granted temporarily.","ccis":["CCI-000366"]},{"vulnId":"V-256470","ruleId":"SV-256470r959010_rule","severity":"medium","ruleTitle":"The virtual machine (VM) guest operating system must be locked when the last console connection is closed.","description":"When accessing the VM console, the guest operating system must be locked when the last console user disconnects, limiting the possibility of session hijacking. This setting only applies to Windows-based VMs with VMware tools installed.","checkContent":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"tools.guest.desktop.autolock\" value and verify it is set to \"true\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.guest.desktop.autolock\n\nIf the virtual machine advanced setting \"tools.guest.desktop.autolock\" does not exist or is not set to \"true\", this is a finding.\n\nIf the VM is not Windows-based, this is not a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind or create the \"tools.guest.desktop.autolock\" value and set it to \"true\".\n\nNote: The VM must be powered off to modify the advanced settings through the vSphere Client. It is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. In this case, the modified settings will not take effect until a cold boot of the VM.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name tools.guest.desktop.autolock -Value true\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name tools.guest.desktop.autolock | Set-AdvancedSetting -Value true","ccis":["CCI-000366"]},{"vulnId":"V-256471","ruleId":"SV-256471r959010_rule","severity":"low","ruleTitle":"All 3D features on the virtual machine (VM) must be disabled when not required.","description":"For performance reasons, it is recommended that 3D acceleration be disabled on virtual machines that do not require 3D functionality (e.g., most server workloads or desktops not using 3D applications).","checkContent":"For each virtual machine do the following:\n\nFrom the vSphere Client, right-click the virtual machine and go to Edit Settings.\n\nExpand the \"Video card\" and verify the \"Enable 3D Support\" checkbox is unchecked.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name mks.enable3d\n\nIf the virtual machine advanced setting \"mks.enable3d\" exists and is not set to \"false\", this is a finding.\n\nIf the virtual machine advanced setting \"mks.enable3d\" does not exist, this is not a finding.","fixText":"For each virtual machine do the following:\n\nFrom the vSphere Client, right-click the virtual machine and go to \"Edit Settings\".\n\nExpand the \"Video card\" and uncheck the \"Enable 3D Support\" checkbox.\n\nClick \"OK\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as noted below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name mks.enable3d -Value false\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name mks.enable3d | Set-AdvancedSetting -Value false\n\nNote: The VM must be powered off to configure the advanced settings through the vSphere Client. Therefore, it is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. Settings do not take effect via either method until the virtual machine is cold started, not rebooted.","ccis":["CCI-000366"]},{"vulnId":"V-256472","ruleId":"SV-256472r959010_rule","severity":"medium","ruleTitle":"Encryption must be enabled for vMotion on the virtual machine (VM).","description":"vMotion migrations in vSphere 6.0 and earlier transferred working memory and CPU state information in clear text over the vMotion network. As of vSphere 6.5, this transfer can be transparently encrypted using 256-bit AES-GCM with negligible performance impact.\n\nvSphere enables encrypted vMotion by default as \"Opportunistic\", meaning that encrypted channels are used where supported but the operation will continue in plain text where encryption is not supported.\n\nFor example, when vMotioning between two hosts, encryption will always be used. However, because 6.0 and earlier releases do not support this feature, vMotion from a 7.0 host to a 6.0 host would be allowed but would not be encrypted. If the encryption is set to \"Required\", vMotions to unsupported hosts will fail. This must be set to \"Opportunistic\" or \"Required\".","checkContent":"From the vSphere Client, select the virtual machine, right-click, and go to Edit Settings >> VM Options tab >> Encryption >> Encrypted vMotion.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Where {($_.ExtensionData.Config.MigrateEncryption -eq \"disabled\")}\n\nIf the setting does not have a value of \"Opportunistic\" or \"Required\", this is a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Encryption >> Encrypted vMotion.\n\nSet the value to \"Opportunistic\" or \"Required\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following commands:\n\n$spec = New-Object VMware.Vim.VirtualMachineConfigSpec\n$spec.MigrateEncryption = New-Object VMware.Vim.VirtualMachineConfigSpecEncryptedVMotionModes\n$spec.MigrateEncryption = $true\n(Get-VM -Name <vmname>).ExtensionData.ReconfigVM($spec)","ccis":["CCI-000366"]},{"vulnId":"V-256473","ruleId":"SV-256473r959010_rule","severity":"medium","ruleTitle":"Logging must be enabled on the virtual machine (VM).","description":"The ESXi hypervisor maintains logs for each individual VM by default. These logs contain information including but not limited to power events, system failure information, tools status and activity, time sync, virtual hardware changes, vMotion migrations and machine clones. Due to the value these logs provide for the continued availability of each VM and potential security incidents, these logs must be enabled.","checkContent":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Settings.\n\nEnsure that the checkbox next to \"Enable logging\" is checked.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Where {$_.ExtensionData.Config.Flags.EnableLogging -ne \"True\"}\n\nIf logging is not enabled, this is a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Settings.\n\nClick the checkbox next to \"Enable logging\". Click \"OK\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following commands:\n\n$spec = New-Object VMware.Vim.VirtualMachineConfigSpec\n$spec.Flags = New-Object VMware.Vim.VirtualMachineFlagInfo\n$spec.Flags.enableLogging = $true\n(Get-VM -Name <vmname>).ExtensionData.ReconfigVM($spec)","ccis":["CCI-000366"]},{"vulnId":"V-256474","ruleId":"SV-256474r959010_rule","severity":"medium","ruleTitle":"Log size must be configured properly on the virtual machine (VM).","description":"The ESXi hypervisor maintains logs for each individual VM by default. These logs contain information including but not limited to power events, system failure information, tools status and activity, time sync, virtual hardware changes, vMotion migrations, and machine clones.\n\nBy default, the size of these logs is unlimited, and they are only rotated on vMotion or power events. This can cause storage issues at scale for VMs that do not vMotion or power cycle often.","checkContent":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"log.rotateSize\" value and verify it is set to \"2048000\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name log.rotateSize\n\nIf the virtual machine advanced setting \"log.rotateSize\" does not exist or is not set to \"2048000\", this is a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"log.rotateSize\" value and set it to \"2048000\".\n\nNote: The VM must be powered off to modify the advanced settings through the vSphere Client. It is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. In this case, the modified settings will not take effect until a cold boot of the VM.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name log.rotateSize -Value 2048000\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name log.rotateSize | Set-AdvancedSetting -Value 2048000","ccis":["CCI-000366"]},{"vulnId":"V-256475","ruleId":"SV-256475r959010_rule","severity":"medium","ruleTitle":"Log retention must be configured properly on the virtual machine (VM).","description":"The ESXi hypervisor maintains logs for each individual VM by default. These logs contain information including but not limited to power events, system failure information, tools status and activity, time sync, virtual hardware changes, vMotion migrations, and machine clones.\n\nBy default, 10 of these logs are retained. This is normally sufficient for most environments, but this configuration must be verified and maintained.","checkContent":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"log.keepOld\" value and verify it is set to \"10\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name log.keepOld\n\nIf the virtual machine advanced setting \"log.keepOld\" is not set to \"10\", this is a finding.\n\nIf the virtual machine advanced setting \"log.keepOld\" does not exist, this is not a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind the \"log.keepOld\" value and set it to \"10\".\n\nNote: The VM must be powered off to modify the advanced settings through the vSphere Client. It is recommended to configure these settings with PowerCLI as this can be done while the VM is powered on. In this case, the modified settings will not take effect until a cold boot of the VM.\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the provided commands as shown below.\n\nIf the setting does not exist, run:\n\nGet-VM \"VM Name\" | New-AdvancedSetting -Name log.keepOld -Value 10\n\nIf the setting exists, run:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name log.keepOld | Set-AdvancedSetting -Value 10","ccis":["CCI-000366"]},{"vulnId":"V-256476","ruleId":"SV-256476r959010_rule","severity":"medium","ruleTitle":"DirectPath I/O must be disabled on the virtual machine (VM) when not required.","description":"VMDirectPath I/O (PCI passthrough) enables direct assignment of hardware PCI functions to VMs. This gives the VM access to the PCI functions with minimal intervention from the ESXi host. This is a powerful feature for legitimate applications such as virtualized storage appliances, backup appliances, dedicated graphics, etc., but it also allows a potential attacker highly privileged access to underlying hardware and the PCI bus.","checkContent":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Advanced >> Configuration Parameters >> Edit Configuration.\n\nFind any \"pciPassthruX.present\" value (where \"X\" is a count starting at 0) and verify it is set to \"FALSE\" or \"\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name \"pciPassthru*.present\" | Select Entity, Name, Value\n\nIf the virtual machine advanced setting \"pciPassthruX.present\" is present, and the specific device returned is not approved, this is a finding.\n\nIf the virtual machine advanced setting \"pciPassthruX.present\" is not present, this is not a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> Virtual Hardware tab.\n\nFind the unexpected PCI device returned from the check.\n\nHover the mouse over the device and click the circled \"X\" to remove the device. Click \"OK\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM \"VM Name\" | Get-AdvancedSetting -Name pciPassthruX.present | Remove-AdvancedSetting\n\nNote: Change the \"X\"  value to match the specific setting in the organization's environment.","ccis":["CCI-000366"]},{"vulnId":"V-256477","ruleId":"SV-256477r959010_rule","severity":"medium","ruleTitle":"Encryption must be enabled for Fault Tolerance on the virtual machine (VM).","description":"Fault Tolerance log traffic can be encrypted. This could contain sensitive data from the protected machine's memory or CPU instructions.\n\nvSphere Fault Tolerance performs frequent checks between a primary VM and secondary VM so the secondary VM can quickly resume from the last successful checkpoint. The checkpoint contains the VM state that has been modified since the previous checkpoint.\n\nWhen Fault Tolerance is turned on, FT encryption is set to \"Opportunistic\" by default, which means it enables encryption only if both the primary and secondary host are capable of encryption.","checkContent":"If the VM does not have Fault Tolerance enabled, this is not applicable.\n\nFrom the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Encryption >> Encrypted FT. \n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following command:\n\nGet-VM | Where {$_.ExtensionData.Config.FtEncryptionMode -eq \"ftEncryptionDisabled\"}\n\nIf the setting does not have a value of \"Opportunistic\" or \"Required\", this is a finding.","fixText":"From the vSphere Client, select the Virtual Machine, right-click, and go to Edit Settings >> VM Options tab >> Encryption >> FT Encryption.\n\nSet the value to \"Opportunistic\" or \"Required\".\n\nor\n\nFrom a PowerCLI command prompt while connected to the ESXi host or vCenter server, run the following commands:\n\n$spec = New-Object VMware.Vim.VirtualMachineConfigSpec\n$spec.FTEncryption = New-Object VMware.Vim.VMware.Vim.VirtualMachineConfigSpecEncryptedFtModes\n$spec.FT = ftEncryptionOpportunistic or ftEncryptionRequired\n(Get-VM -Name <vmname>).ExtensionData.ReconfigVM($spec)","ccis":["CCI-000366"]}]}