이러한 보안 제어는 가상 시스템 보안 모범 사례의 기준선을 제공합니다. 제어 구현의 이점과 단점을 설명하는 방식으로 구성됩니다. 고급 시스템 설정을 변경하기 위해 제공된 PowerCLI 또는 vSphere Client(호스트 > 구성 > 시스템 > 고급 시스템 설정)를 사용할 수 있습니다.

사용된 변수

이 섹션의 PowerCLI 명령은 다음 변수를 사용합니다.

  • $VM = "virtual_machine_name"

mks.enable3d

잠재적인 공격 벡터를 줄이기 위해 필요하지 않은 가상 시스템에서 3D 그래픽 기능을 비활성화하여 전반적인 시스템 보안을 강화합니다.

설치 기본값: False
기준선 제안된 값: False
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting mks.enable3d
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting mks.enable3d | Set-AdvancedSetting -Value FALSE

ethernet*.filter*.name

'dvFilter' 네트워크 API를 통해 가상 시스템에 대한 액세스를 제한합니다.

dvFilter 인터페이스는 NSX 같은 도구에서 네트워크 트래픽을 필터링하고 검사하는 데 사용됩니다. 다른 도구도 사용할 수 있습니다. 이러한 도구에 권한이 있는지 확인합니다.

설치 기본값: 없음
기준 권장 값: 없음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
NSX를 포함하여 적합한 네트워크 도구에는 이 기능이 필요할 수 있습니다.
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting "ethernet*.filter*.name*"
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting "ethernet*.filter*.name*" | Remove-AdvancedSetting

무단 소스에서 가상 시스템 부팅 방지

가상 시스템이 무단 소스에서 부팅되지 않도록 해야 합니다.

기본 부팅 볼륨을 사용할 수 없고 EFI 펌웨어가 네트워크 부팅과 같은 대체 부팅 소스를 찾는 경우 가상 시스템에 대한 무단 액세스가 발생할 수 있습니다. 이 문제는 네트워크 제어뿐만 아니라 고급 매개 변수 bios.bootDeviceClasses, bios.bootOrderbios.hddOrder를 통해 완화될 수 있습니다.

bios.bootDeviceClasses의 형식은 'allow:XXXX' 또는 'deny:XXXX'입니다. 여기서 XXXX는 쉼표로 구분된 부팅 클래스 목록입니다. 부팅 클래스는 net(네트워크 PXE 부팅), usb(연결된 USB 디바이스에서), pcmcia(PCMCIA 확장 카드, 현재 사용되지 않음), cd(연결된 가상 CD/DVD 디바이스에서), hd(연결된 가상 하드 디스크에서), fd(연결된 가상 플로피 디바이스에서), reserved(알 수 없는 디바이스에서), efishell(EFI shell에서) 및 all 또는 any(all과 동일)입니다.

allow 또는 deny를 사용하면 그 반대의 경우도 암시적으로 명시됩니다. 예:
  • deny:all은 모든 부팅 클래스를 허용합니다.
  • deny:net은 네트워크 부팅을 허용하지 않지만 다른 모든 부팅은 허용합니다.
  • allow:hd는 hd 부팅만 허용하며 다른 모든 부팅은 거부합니다.
  • allow:hd,cd는 hd 다음에 cd 디바이스 부팅을 허용하며 다른 모든 부팅은 거부합니다.

새 가상 시스템에는 CD/DVD 부팅이 필요할 수 있으며 실습과 같은 일부 동적 환경에서는 네트워크 부팅을 사용할 수 있습니다. 그에 따라 해당 환경을 설정하고 근거를 문서화합니다.

설치 기본값: allow:all
기준 권장 값: allow:hd(게스트 운영 체제가 설치된 후 가능)
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
가상 시스템은 더 이상 지정되지 않은 소스에서 부팅할 수 없으며, 이는 PXE 부팅 또는 복구 미디어가 필요한 상황에 부정적인 영향을 미칠 수 있습니다. 그러나 매개 변수는 PowerCLI를 통해 대규모로 쉽게 변경됩니다. 다른 방법은 거부된 메서드(예: 'deny:net')를 지정하는 것입니다.
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting bios.bootDeviceClasses
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting bios.bootDeviceClasses | Set-AdvancedSetting -Value "allow:hd"

RemoteDisplay.maxConnections

가상 시스템에 대한 콘솔 연결 수를 제한합니다.

가상 시스템 콘솔 공유를 한 명의 사용자로 제한하면 여러 관찰자가 차단되므로 보안이 강화됩니다. 그러나 이로 인해 서비스 거부를 위한 잠재적 경로가 생성될 수 있습니다.

설치 기본값: -1
기준선 제안된 값: 1
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
한 명의 사용자가 연결되어 있거나 연결이 끊어진 콘솔 세션이 지속되어 콘솔을 사용할 수 없는 서비스 거부 조건이 발생할 수 있습니다. VMware Cloud Director와 같은 다른 제품에서는 이 옵션을 더 큰 값으로 설정해야 할 수 있습니다.
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting RemoteDisplay.maxConnections
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting RemoteDisplay.maxConnections | Set-AdvancedSetting -Value 1

PCI 디바이스 패스스루 기능 제한

가상 시스템은 PCI 디바이스 패스스루 기능을 제한해야 합니다.

DirectPath I/O 기능을 사용하면 가상 시스템이 시스템 하드웨어에 직접 액세스할 수 있어 vMotion, DRS 및 High Availability와 같은 위험 완화 도구에 영향을 줍니다. DirectPath I/O 기능은 잠재적으로 공격자에게 하드웨어 액세스 권한을 부여할 수도 있습니다. 게스트 운영 체제 보안 제어와 함께 필요한 가상 시스템만 이 권한을 가지고 있는지 확인합니다.

설치 기본값: 없음
기준 권장 값: 없음
필요한 작업
감사
기본값이 변경되는 경우 기능에 대한 잠재적 영향
GPU와 같은 패스스루 디바이스는 연결이 끊어지면 부정적인 영향을 받습니다. 이러한 가상 시스템에 대한 비즈니스 요구 사항을 감사하고 문서화합니다.
PowerCLI 명령 평가
Get-VM -Name $VM | Get-PassthroughDevice
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-PassthroughDevice | Remove-PassthroughDevice

불필요한 가상 시스템 가상 하드웨어 디바이스 제거

가상 시스템은 불필요한 가상 하드웨어를 제거해야 합니다.

잠재적인 공격 노출을 줄이려면 가상 시스템에서 불필요한 가상 하드웨어를 제거해야 합니다. 거의 사용되지 않는 포트, 임시 CD/DVD 드라이브 및 마이그레이션에 의해 도입된 하드웨어가 취약할 수 있습니다. 이를 제거하면 보호된 환경에서 소프트웨어 도입이나 데이터 유출 위험이 줄어듭니다.

설치 기본값: 구성됨
기준 권장 값: 없음
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
CD-ROM 디바이스를 제거하면 VMware Tools 설치 및 유지 보수에 영향을 미칠 수 있습니다. XHCI 컨트롤러를 제거하면 일부 게스트 운영 체제의 콘솔 키보드 및 마우스 연결에 영향을 줄 수 있습니다.
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
}
PowerCLI 명령 업데이트 적용 예
해당 없음
vSphere Client에서의 설정 위치
가상 시스템 > 설정 편집 > 가상 하드웨어

tools.guestlib.enableHostInfo

가상 시스템이 하이퍼바이저에 대한 호스트 정보를 얻는 것을 방지합니다.

가상 시스템이 하이퍼바이저에 대한 호스트 정보를 얻지 못하도록 방지하면 공격자가 물리적 호스트에 대한 중요한 세부 정보를 얻지 못하므로 지능형 공격의 위험이 완화됩니다.

설치 기본값: False
기준 권장 값: False 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting tools.guestlib.enableHostInfo
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting tools.guestlib.enableHostInfo | Remove-AdvancedSetting
vSphere Client에서의 설정 위치
해당 없음. VMX 파일 설정입니다.

Fault Tolerance에 대한 암호화 설정

가상 시스템에 Fault Tolerance에 대한 암호화가 필요합니다.

가상 시스템에서 Fault Tolerance에 대한 암호화를 요구하면 보안 데이터 전송이 보장됩니다. 기본 '기회적' 암호화는 vSphere 호환 하드웨어의 유비쿼터스 AES-NI 지원으로 인해 암호화될 가능성이 높지만 '필수' 암호화를 시행하면 암호화되지 않은 작업이 없도록 보장됩니다.

설치 기본값: ftEncryptionOpportunistic
기준 권장 값: ftEncryptionRequired
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
(Get-VM -Name $VM).ExtensionData.Config.FtEncryptionMode
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)
vSphere Client에서의 설정 위치
가상 시스템 > 설정 편집 > VM 옵션 > 암호화

isolation.tools.copy.disable

가상 시스템에서 콘솔 복사 작업을 비활성화합니다.

가상 시스템에서 콘솔 복사 작업을 비활성화하면 사용자가 웹 콘솔, VMRC 또는 다른 방법을 통해 액세스하는지 여부에 관계없이 가상 시스템과 로컬 클라이언트 간의 데이터 복사가 방지됩니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.copy.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.copy.disable | Remove-AdvancedSetting

isolation.tools.paste.disable

가상 시스템에서 콘솔 붙여넣기 작업을 비활성화합니다.

가상 시스템에서 콘솔 붙여넣기 작업을 사용하지 않도록 설정하면 사용자가 웹 콘솔, VMRC 또는 다른 콘솔을 사용하는지 여부에 관계없이 로컬 클라이언트에서 가상 시스템으로의 데이터 전송이 차단됩니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.paste.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.paste.disable | Remove-AdvancedSetting

isolation.tools.diskShrink.disable

가상 시스템에서 가상 디스크 축소를 비활성화합니다.

가상 시스템에서 가상 디스크 축소를 사용하지 않도록 설정하면 디스크 비가용성 문제를 방지하는 데 도움이 됩니다. 이 작업을 수행하는 기능은 일반적으로 게스트 환경에서 관리자가 아닌 사용자에 대해 제한됩니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.diskShrink.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.diskShrink.disable | Remove-AdvancedSetting

isolation.tools.diskWiper.disable

가상 시스템에서 가상 디스크 지우기 작업을 비활성화합니다.

가상 시스템에서 가상 디스크 지우기 기능을 사용하지 않도록 설정하면 디스크 비가용성 문제를 방지하는 데 도움이 됩니다. 이 작업을 수행하는 기능은 일반적으로 게스트 환경에서 관리자가 아닌 사용자에 대해 제한됩니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.diskWiper.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.diskWiper.disable | Remove-AdvancedSetting

isolation.device.connectable.disable

가상 시스템의 디바이스 무단 제거, 연결 및 수정을 방지합니다.

가상 시스템의 무단 디바이스 수정을 방지하면 관리자가 아닌 사용자나 프로세스가 디바이스 설정을 연결하거나 연결을 끊거나 조정하는 것이 차단됩니다. 이 조치는 무단 액세스 및 운영 중단을 억제하고 서비스 거부 위험을 줄이며 데이터를 유출할 수 있는 몇 가지 방법을 줄입니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.device.connectable.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.device.connectable.disable | Remove-AdvancedSetting

isolation.tools.dnd.disable

가상 시스템 콘솔에서 끌어서 놓기 작업을 비활성화합니다.

가상 시스템의 콘솔에서 끌어서 놓기 작업을 비활성화하면 사용자가 콘솔 유형에 관계없이 가상 시스템과 로컬 클라이언트 간에 데이터를 전송하는 것이 중지되므로 데이터 보안이 강화됩니다.

설치 기본값: True
기준 권장 값: True 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.dnd.disable
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting isolation.tools.dnd.disable | Remove-AdvancedSetting

tools.setInfo.sizeLimit

가상 시스템에서 전달되는 정보 메시지를 VMX 파일로 제한합니다.

가상 시스템 정보 메시지를 VMX 파일로 제한하면 기본 크기인 1MB를 초과할 수 없습니다. 이 옵션은 데이터스토어가 가득 차면 발생할 수 있는 잠재적 서비스 거부 상황을 방지합니다.

설치 기본값: 1048576
기준 권장 값: 1048576 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting tools.setInfo.sizeLimit
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting tools.setInfo.sizeLimit | Remove-AdvancedSetting

로깅 활성화

가상 시스템은 진단 로깅을 활성화해야 합니다.

가상 시스템에 대한 진단 로깅은 법적 조사 및 문제 해결에 도움이 됩니다.

설치 기본값: True
기준선 제안된 값: True
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Where {$_.ExtensionData.Config.Flags.EnableLogging -ne "True"}
PowerCLI 명령 업데이트 적용 예
$VMview = Get-VM -Name $VM | Get-View 
$ConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$ConfigSpec.Flags = New-Object VMware.Vim.VirtualMachineFlagInfo
$ConfigSpec.Flags.EnableLogging = $true
$VMview.ReconfigVM_Task($ConfigSpec)

log.keepOld

유지되는 가상 시스템 진단 로그 수를 제한합니다.

유지되는 진단 로그의 양을 제한하여 진단 기능을 손상시키지 않으면서 데이터스토어가 가득 차는 것을 방지할 수 있습니다.

설치 기본값: 10
기준 권장 값: 10 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting log.keepOld
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting log.keepOld | Remove-AdvancedSetting

log.rotateSize

가상 시스템 진단 로그의 크기를 제한합니다.

가상 시스템의 진단 로그 크기를 제한하면 특히 장기 실행 가상 시스템에서 과도한 공간을 소비하는 것을 방지할 수 있습니다. 권장되는 최소 제한은 2MB입니다.

설치 기본값: 2048000
기준 권장 값: 2048000 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting log.rotateSize
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting log.rotateSize | Remove-AdvancedSetting

tools.guestlib.enableHostInfo

게스트에 호스트 정보를 보내는 기능을 비활성화합니다.

물리적 호스트에 대한 자세한 정보를 가져오도록 가상 시스템을 구성하면 악의적인 사용자가 잠재적으로 이 정보를 사용하여 호스트에 대한 추가 공격을 감행할 수 있습니다. 기본값은 원하는 상태이므로 이 설정이 설정되지 않았는지 또는 설정된 경우 False로 설정되었는지 확인하여 감사할 수 있습니다.

설치 기본값: False
기준 권장 값: False 또는 정의되지 않음
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
게스트 운영 체제 내부에서 호스트에 대한 성능 정보를 검색할 수 없으면 문제 해결이 방해될 수 있습니다.
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting tools.guestlib.enableHostInfo
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting tools.guestlib.enableHostInfo | Remove-AdvancedSetting

tools.guest.desktop.autolock

원격 콘솔의 연결이 끊어지면 가상 시스템 게스트 세션을 잠급니다.

마지막 콘솔 연결이 닫힐 때 가상 시스템을 잠그면 로그인된 콘솔 세션을 악용하는 공격자의 잠재적인 무단 액세스를 방지할 수 있습니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VM -Name $VM | Get-AdvancedSetting tools.guest.desktop.autolock
PowerCLI 명령 업데이트 적용 예
Get-VM -Name $VM | Get-AdvancedSetting tools.guest.desktop.autolock | Remove-AdvancedSetting

vMotion에 대한 암호화 활성화

가상 시스템에는 vMotion에 대한 암호화가 필요합니다.

가상 시스템에서 vMotion에 대한 암호화를 요구하면 안전한 데이터 전송이 보장됩니다. 기본 '기회적' 암호화는 vSphere 호환 하드웨어의 광범위하게 나타나는 AES-NI 지원으로 인해 암호화될 가능성이 높습니다. 그러나 '필수' 암호화를 시행하면 암호화되지 않은 작업이 없도록 보장됩니다.

설치 기본값: 기회적
기준 권장 값: 필수
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
(Get-VM -Name $VM).ExtensionData.Config.MigrateEncryption
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)