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

사용된 변수

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

  • $ESXi = "host_name"
  • $vmkernel_interface = "vmkernel_adapter"

DCUI 계정에 대한 액세스가 거부되었는지 확인합니다.

ESXi 호스트는 dcui 사용자 계정에 대한 셸 액세스를 거부해야 합니다.

dcui 사용자 계정은 DCUI 자체에 대한 프로세스 분리에 사용됩니다. 공격 표면을 줄이려면 dcui 사용자 계정에 대한 셸 액세스를 비활성화합니다.

설치 기본값: True
기준선 제안된 값: False
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.account.list.Invoke() | Where-Object { $_.UserID -eq 'dcui' } | Select-Object -ExpandProperty Shellaccess
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.account.set.CreateArgs()
$arguments.id = "dcui"
$arguments.shellaccess = "false"
$ESXcli.system.account.set.Invoke($arguments)

Annotations.WelcomeMessage

VMware Host Client 및 DCUI에 표시되는 로그인 메시지의 텍스트를 구성합니다.

ESXi는 로그인 메시지를 표시하는 기능을 제공합니다. 로그인 메시지의 사용에는 침입자에게 자신의 활동이 불법임을 알리고, 승인된 사용자에게 시스템을 사용하는 동안 충족하고 동의해야 하는 기대와 의무를 전달하는 것이 포함됩니다.

설치 기본값: 정의되지 않음
기준선 제안된 값: 환경에 적용할 수 있는 텍스트는 조직의 법률 고문에게 문의하십시오.

예제 메시지 텍스트: 인증된 사용자만. 이 시스템의 실제 또는 시도된 무단 사용은 금지되며 형사, 민사, 보안 또는 행정 절차 및/또는 처벌을 받을 수 있습니다. 이 정보 시스템 사용은 알림이나 동의 없이 모니터링 및 기록에 대한 동의를 나타냅니다. 사용자는 이 시스템을 사용할 때 개인 정보 보호에 대한 기대가 없습니다. 이 시스템에 저장되거나, 이 시스템에서 전송되거나, 모니터링 및/또는 기록을 통해 얻은 모든 정보는 법 집행 기관에 공개되거나 연방법, 주 법령 및 조직 정책에 따라 사용될 수 있습니다. 이 시스템의 권한이 있는 사용자가 아닌 경우 현재 시스템을 종료합니다.

필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
DCUI에서 "F2/F12" 및 IP 주소 정보를 마스킹합니다. 환경에 대한 설명서 및 교육이 필요할 수도 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Annotations.WelcomeMessage
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Annotations.WelcomeMessage | Set-AdvancedSetting -Value "your_message"

Config.HostAgent.vmacore.soap.sessionTimeout

vSphere API에 대한 세션 시간 초과를 구성합니다.

이 사례는 권한이 없는 사용자 또는 악성 소프트웨어에 의해 악용될 수 있는 자동 세션이 무기한으로 열려 있지 않도록 함으로써 잠재적인 보안 위험을 완화하는 데 도움이 됩니다.

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

Config.Etc.issue

SSH를 사용하여 사용자가 ESXi 호스트에 연결할 때 배너의 텍스트를 구성합니다.

ESXi는 SSH 연결에 대한 배너를 표시하는 기능을 제공합니다. 배너의 사용에는 침입자에게 자신의 활동이 불법임을 알리고, 승인된 사용자에게 시스템을 사용하는 동안 충족하고 동의해야 하는 기대와 의무를 전달하는 것이 포함됩니다. 문제 해결 작업을 수행하지 않는 한 SSH 서비스를 비활성화 상태로 유지합니다. ESXivCenter Server 간의 구현 불일치로 인해 두 시나리오 모두에서 작동하려면 Config.Etc.issue의 "issue"가 소문자여야 합니다.

설치 기본값: 정의되지 않음
기준선 제안된 값: 환경에 적용할 수 있는 텍스트는 조직의 법률 고문에게 문의하십시오.

예제 메시지 텍스트: 인증된 사용자만. 이 시스템의 실제 또는 시도된 무단 사용은 금지되며 형사, 민사, 보안 또는 행정 절차 및/또는 처벌을 받을 수 있습니다. 이 정보 시스템 사용은 알림이나 동의 없이 모니터링 및 기록에 대한 동의를 나타냅니다. 사용자는 이 시스템을 사용할 때 개인 정보 보호에 대한 기대가 없습니다. 이 시스템에 저장되거나, 이 시스템에서 전송되거나, 모니터링 및/또는 기록을 통해 얻은 모든 정보는 법 집행 기관에 공개되거나 연방법, 주 법령 및 조직 정책에 따라 사용될 수 있습니다. 이 시스템의 권한이 있는 사용자가 아닌 경우 현재 시스템을 종료합니다.

필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.Etc.issue
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.Etc.issue | Set-AdvancedSetting -Value "****************************************************************************`n* Authorized users only. Actual or attempted unauthorized use of this      *`n* system is prohibited and may result in criminal, civil, security, or     *`n* administrative proceedings and/or penalties. Use of this information     *`n* system indicates consent to monitoring and recording, without notice     *`n* or permission. Users have no expectation of privacy. Any information     *`n* stored on or transiting this system, or obtained by monitoring and/or    *`n* recording, may be disclosed to law enforcement and/or used in accordance *`n* with Federal law, State statute, and organization policy. If you are not *`n* an authorized user of this system, exit the system at this time.         *`n****************************************************************************`n"

vpxuser에 대한 셸 액세스 비활성화

ESXi 호스트는 vpxuser 계정에 대한 셸 액세스를 거부해야 합니다.

vCenter ServerESXi 호스트가 처음 연결되면 vpxuser 계정을 생성합니다. 이후에 vpxuser 계정은 ESXi에 대한 권한 있는 인증에 사용됩니다. vCenter ServerVirtualCenter.VimPasswordExpirationInDays 옵션에 따른 간격으로 vpxuser 계정의 암호를 자동으로 순환하지만 vpxuser 계정에는 셸 액세스 권한도 있습니다. 공격 표면을 줄이려면 vpxuser 계정을 비활성화합니다.

설치 기본값: True
기준선 제안된 값: False
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
셸 액세스 권한이 없는 사용자 계정은 권한 수준에 관계없이 다른 사용자의 셸 액세스를 재구성할 수 없습니다. vCenter ServerESXi 호스트에 vpxuser 계정으로 연결되기 때문에 vpxuser에 대한 셸 액세스를 비활성화하면 더 이상 다른 계정에 대한 해당 계정 설정을 변경하는 데 사용할 수 없습니다. 추가 재구성은 권한이 부여된 계정을 사용하여 호스트별로 수행해야 합니다.
ESXi 8.0 이상에서는 미디어에서 부팅하거나 부팅 시 init를 셸로 변경하는 등의 기존 암호 또는 계정 복구 작업을 더 이상 지원하지 않습니다.
ESXi 호스트가 완전히 권한이 있는 사용자 계정을 하나 이상 유지하고 이에 따라 이 계정을 보호해야 합니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.account.list.Invoke() | Where-Object { $_.UserID -eq 'vpxuser' } | Select-Object -ExpandProperty Shellaccess
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.account.set.CreateArgs()
$arguments.id = "vpxuser"
$arguments.shellaccess = "false"
$ESXcli.system.account.set.Invoke($arguments)

vCenter Server는 vSphere Authentication Proxy를 사용하여 Active Directory 자격 증명을 저장하지 않아야 함

vSphere Authentication Proxy를 통해 vCenter Server에서 Active Directory 자격 증명을 직접 저장할 필요 없이 Active Directory 엔티티에 연결하고 관리할 수 있으므로 자격 증명 노출 또는 오용의 위험이 줄어듭니다.

설치 기본값: 구성되지 않음
기준선 제안된 값: 기능을 사용하는 경우 구성
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VMHostAuthentication | Select-Object VMHost,Domain,DomainMembershipStatus
PowerCLI 명령 업데이트 적용 예
해당 없음

DCUI.Access

ESXi 호스트에는 정확한 DCUI.Access 목록이 있어야 합니다.

잠금 모드 예외 사용자 목록을 설정하여 정확한 사용자 목록을 포함하고, 잠금 모드가 활성화될 때 권한 있는 사용자만 ESXi 호스트에 대해 DCUI(Direct Console User Interface) 액세스 권한을 갖도록 합니다.

목록에서 루트 사용자를 제거할 수 없습니다.

ESXi Shell 및 SSH 액세스를 제어하려면 잠금 모드 예외 사용자 목록을 사용합니다. ESXi 호스트에 정확한 예외 사용자 목록이 있는지 확인의 내용을 참조하십시오.

설치 기본값: 루트
기준선 제안된 값: 루트
필요한 작업
목록을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
호스트에 대한 관리 액세스가 잠재적으로 손실됩니다. 잠금 모드를 구성하기 전에 ESXi 호스트를 vCenter Server에 연결하고 액세스 목록 및 예외 목록을 구성해야 합니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting DCUI.Access
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting DCUI.Access | Set-AdvancedSetting -Value root

ESXi 호스트에 정확한 예외 사용자 목록이 있는지 확인

ESXi 호스트에 정확한 예외 사용자 목록이 있어야 합니다.

잠금 모드 예외 사용자 목록의 사용자는 호스트가 잠금 모드로 전환될 때 권한을 잃지 않습니다. 이 경우 잠금 모드의 목적이 무효화될 수 있습니다.

설치 기본값: Null
기준선 제안된 값: Null
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
ESXi 호스트에 대한 관리 액세스가 잠재적으로 손실됩니다. 잠금 모드를 구성하기 전에 ESXi 호스트를 vCenter Server에 연결하고 액세스 목록 및 예외 목록을 구성해야 합니다.
PowerCLI 명령 평가
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).QueryLockdownExceptions()
PowerCLI 명령 업데이트 적용 예
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).UpdateLockdownExceptions($NULL)

정상 잠금 모드를 활성화하여 ESXi에 대한 액세스 제한

잠금 모드를 활성화하면 ESXi 호스트에 대한 직접 액세스가 비활성화됩니다. 잠금 모드를 사용하려면 vCenter ServerESXi 호스트를 직접 관리해야 합니다.

이러한 방식으로 액세스를 제한하면 vCenter Server가 역할 및 사용 권한을 적용합니다. 또한 사용자는 ESXi 호스트에 직접 로그인하여 이러한 역할 및 사용 권한을 우회할 수 없습니다. vCenter Server를 통해 모든 상호 작용을 수행하도록 요구하면 사용자가 실수로 상승된 권한을 획득하거나 제대로 감사되지 않은 작업을 수행할 위험이 줄어듭니다.

ESXi 호스트에 대한 예외 사용자 목록에 나열된 사용자는 잠금 모드를 재정의하고 로그인할 수 있습니다. 기본적으로 예외 사용자 목록에는 사용자가 없습니다.

잠금 모드 설정은 사용 안 함, 정상 및 엄격입니다. 잠금 모드가 엄격으로 설정된 경우 ESXi 호스트와 vCenter Server의 연결이 끊어지면 해당 연결이 복원될 때까지 이를 관리할 수 없습니다. 연결을 복원할 수 없는 경우 ESXi 호스트를 재구축해야 합니다. 일반적으로 엄격 잠금 모드는 대부분의 배포 요구 사항을 초과합니다. 따라서 일반적으로 정상 잠금 모드면 충분합니다.

설치 기본값: lockdownDisabled
기준선 제안된 값: lockdownNormal
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
호스트에 대한 관리 액세스가 잠재적으로 손실됩니다. 잠금 모드를 구성하기 전에 ESXi 호스트를 vCenter Server에 연결하고 액세스 목록 및 예외 목록을 구성해야 합니다.
백업 및 문제 해결과 같은 일부 작업을 수행하려면 ESXi 호스트에 직접 액세스해야 합니다. 이러한 경우 특정 호스트에 대해 잠금 모드를 일시적으로 비활성화한 다음, 완료되면 잠금 모드를 다시 활성화할 수 있습니다.
PowerCLI 명령 평가
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).LockdownMode
PowerCLI 명령 업데이트 적용 예
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).ChangeLockdownMode('lockdownNormal')

Syslog.global.auditRecord.storageEnable

감사 레코드를 로컬로 저장하도록 ESXi 호스트를 구성합니다.

ESXi 호스트에서 감사 레코드 로깅을 활성화해야 합니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
추가 스토리지 공간은 로그에 사용됩니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageEnable
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageEnable | Set-AdvancedSetting -Value TRUE

Syslog.global.auditRecord.storageCapacity

ESXi 호스트에서 1주일 동안의 감사 레코드에 대한 스토리지 용량을 활성화해야 합니다.

원격 감사 레코드 스토리지 시설을 사용할 수 있는 경우 로컬 스토리지 용량이 시설로 레코드 전달 중 예상되는 중단 중에 누적될 수 있는 감사 레코드를 보유하기에 충분한지 확인해야 합니다. 이렇게 하면 원격 스토리지를 사용할 수 없는 기간 동안 감사 레코드가 손실되거나 덮어쓰여지지 않으므로 감사 추적 및 규정 준수 요구 사항을 원활하게 지속할 수 있습니다.

설치 기본값: 4
기준선 제안된 값: 100
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
추가 스토리지 공간은 로그에 사용됩니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageCapacity
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageCapacity | Set-AdvancedSetting -Value 100

ScratchConfig.CurrentScratchLocation 및 Syslog.global.auditRecord.storageDirectory

ESXi 호스트에 로컬로 저장된 모든 감사 레코드에 대한 영구 로그 위치를 구성합니다.

메모리 내 파일 시스템에 감사 레코드를 저장하도록 ESXi를 구성할 수 있습니다. 이는 호스트의 "/scratch" 디렉토리가 "/tmp/scratch"에 연결될 때 수행됩니다. 이 작업이 완료되면 언제든지 단 하루에 해당하는 레코드만 저장됩니다. 또한 재부팅할 때마다 감사 레코드가 다시 초기화됩니다. 이로 인해 호스트에 로그온된 사용자 활동이 일시적으로만 저장되고 재부팅해도 지속되지 않으므로 보안 위험이 발생합니다. 또한 이렇게 하면 감사를 복잡하게 하고 이벤트를 모니터링하고 문제를 진단하기가 더 어려워질 수 있습니다. 항상 영구 데이터스토어에 대한 ESXi 호스트 감사 레코드 로깅을 구성합니다.

ScratchConfig.CurrentScratchLocation 고급 설정을 쿼리하여 스크래치 볼륨이 일시적인지 또는 영구적인지 감지할 수 있습니다. 쿼리할 때 "/tmp/scratch"를 반환하는 경우 볼륨이 일시적이므로 감사 레코드 스토리지를 영구 디바이스에 다시 매핑해야 합니다.

스토리지는 vSAN 데이터스토어일 수 없습니다. 사용자의 유일한 로컬의 vSAN이 아닌 스토리지가 SD 또는 USB 미디어(로그의 반복된 쓰기로 인해 신뢰할 수 없게 될 수 있음)인 경우 로그를 ramdisk에 두고 원격 로깅 호스트가 대신 구성되는지 확인하는 것을 고려합니다. 향후 감사를 준비하기 위해 결정과 근거를 문서화합니다.

설치 기본값:

ScratchConfig.CurrentScratchLocation: 부팅 디바이스에 따라 다름

Syslog.global.auditRecord.storageDirectory: /scratch/auditLog

기준선 제안된 값: 영구 스토리지 위치
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
추가 스토리지 공간은 로그에 사용됩니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.syslog.config.get.Invoke() | Select LocalLogOutput,LocalLogOutputIsPersistent

# If your LocalLogOutput is set to a directory in /scratch, and LocalLogOutputIsPersistent is true, that means your boot device is of a type and size that makes /scratch persistent. Verify that your audit storage is also on /scratch, and that /scratch points to a VMFS datastore:

Get-VMHost -Name $ESXi | Get-AdvancedSetting ScratchConfig.CurrentScratchLocation
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageDirectory
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageDirectory | Set-AdvancedSetting -Value "/vmfs/volumes/$Datastore/audit"

Syslog.global.auditRecord.remoteEnable

감사 로그를 원격 호스트로 전송하기 위한 ESXi 호스트를 구성합니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.remoteEnable
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.remoteEnable | Set-AdvancedSetting -Value TRUE

Syslog.global.logFiltersEnable

ESXi 호스트에서 로그 필터링을 활성화합니다.

로그 필터를 생성하여 반복되는 항목 수를 줄이고 특정 로그 이벤트 전체를 거부할 수 있습니다.

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

LocalLogOutputIsPersistent, ScratchConfig.CurrentScratchLocation 및 Syslog.global.logDir

ESXi 호스트에 로컬로 저장된 모든 로그에 대한 영구 로깅을 구성합니다.

메모리 내 파일 시스템에 로그 파일을 저장하도록 ESXi를 구성할 수 있습니다. 이는 호스트의 "/scratch" 디렉토리가 "/tmp/scratch"에 연결될 때 수행됩니다. 이 작업이 완료되면 언제든지 단 하루에 해당하는 로그만 저장됩니다. 또한 재부팅할 때마다 로그 파일이 다시 초기화됩니다. 이로 인해 호스트에 로그온된 사용자 활동이 일시적으로만 저장되고 재부팅해도 지속되지 않으므로 보안 위험이 발생합니다. 또한 이렇게 하면 감사를 복잡하게 하고 이벤트를 모니터링하고 문제를 진단하기가 더 어려워질 수 있습니다. 항상 영구 데이터스토어에 대한 ESXi 호스트 로깅을 구성합니다.

ScratchConfig.CurrentScratchLocation 고급 매개 변수를 쿼리하여 스크래치 볼륨이 일시적인지 또는 영구적인지 감지할 수 있습니다. 쿼리할 때 "/tmp/scratch"를 반환하는 경우 볼륨이 일시적이므로 감사 레코드 스토리지를 영구 디바이스에 다시 매핑해야 합니다.

주의 사항 및 종속성이 있는 Syslog.global.vsanBacking을 설정하지 않는 한 스토리지는 vSAN 데이터스토어가 될 수 없습니다. 사용자의 유일한 로컬의 vSAN이 아닌 스토리지가 SD 또는 USB 미디어(로그의 반복된 쓰기로 인해 신뢰할 수 없게 될 수 있음)인 경우 로그를 ramdisk에 두고 원격 로깅 호스트가 대신 구성되는지 확인하는 것을 고려합니다. 향후 감사를 준비하기 위해 결정과 근거를 문서화합니다.

설치 기본값: ScratchConfig.CurrentScratchLocation: 부팅 디바이스에 따라 다름

Syslog.global.logDir: /scratch/log

기준선 제안된 값: 영구 스토리지 위치
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.syslog.config.get.Invoke() | Select LocalLogOutput,LocalLogOutputIsPersistent

# If your LocalLogOutput is set to a directory in /scratch, and LocalLogOutputIsPersistent is true, that means your boot device is of a type and size that makes /scratch persistent. Verify that your log storage is also on /scratch, , and that /scratch points to a VMFS datastore:

Get-VMHost -Name $ESXi | Get-AdvancedSetting ScratchConfig.CurrentScratchLocation
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logDir
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logDir | Set-AdvancedSetting -Value "/vmfs/volumes/$Datastore/logs"

Syslog.global.logHost

원격 로깅을 구성합니다.

중앙 로그 호스트에 대한 원격 로깅을 구성할 때 ESXi 로그에 대한 안전한 중앙 집중식 저장소를 제공합니다. 호스트 로그 파일을 중앙 호스트에 수집하면 단일 도구를 사용하여 모든 호스트를 모니터링할 수 있습니다. 집계 분석을 수행하고 여러 호스트에 대한 조정된 공격과 같은 항목을 검색할 수도 있습니다. 안전한 중앙 로그 서버에 로깅하면 로그 변조를 방지하는 데 도움이 되고 장기적인 감사 기록도 제공됩니다.

설치 기본값: 정의되지 않음
기준선 제안된 값: 사이트별
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logHost
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logHost | Set-AdvancedSetting -Value "log_collector"

Syslog.global.certificate.checkSSLCerts

TLS에 대한 인증서를 확인합니다.

ESXi 호스트는 TLS 원격 로깅 끝점에 대한 인증서를 확인해야 합니다. TLS 인증서는 끝점이 정확하고 신뢰할 수 있는지 확인하는 데 도움이 됩니다.

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

Syslog.global.certificate.strictX509Compliance

TLS 지원 원격 로깅 끝점에 대해 엄격한 x509 확인을 수행합니다.

ESXi 호스트는 TLS 지원 원격 로깅 끝점에 대해 엄격한 x509 확인을 사용해야 합니다. Syslog.global.certificate.strictX509Compliance 설정은 확인 중에 CA 루트 인증서에 대한 추가 유효성 검사를 수행합니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.strictX509Compliance
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.strictX509Compliance | Set-AdvancedSetting -Value TRUE

Mem.MemEagerZero

휘발성 키 파괴를 활성화합니다.

기본적으로 ESXi는 할당 시 가상 시스템, 사용자 공간 애플리케이션 및 커널 스레드에 대해 할당된 페이지를 0으로 설정합니다. 이렇게 하면 0이 아닌 페이지가 가상 시스템 또는 사용자 공간 애플리케이션에 노출되지 않습니다. 이 조치는 가상 시스템 또는 사용자 환경의 암호화 키가 다른 클라이언트에 노출되지 않도록 하기 위한 것입니다.

그러나 메모리를 재사용하지 않으면 이러한 키는 호스트 메모리에 장기간 남아 있을 수 있습니다. 이 문제를 해결하려면 사용자 환경 프로세스 또는 게스트가 종료될 때 사용자 환경 및 게스트 메모리 페이지를 0으로 설정하도록 MemEagerZero 설정을 구성할 수 있습니다. 커널 스레드의 경우 암호를 더 이상 필요로 하지 않는 즉시 키를 보유하는 메모리 공간이 0으로 설정됩니다.

설치 기본값: 0
기준선 제안된 값: 1
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
가상 시스템에는 할당된 메모리 양에 해당하는 추가 종료 시간이 필요합니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.MemEagerZero
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.MemEagerZero | Set-AdvancedSetting -Value 1

ESXi 버전에서 활성 유지 보수 확인

ESXi 버전이 VMware 일반 지원 종료 상태에 도달하지 않았는지 확인합니다.

설치 기본값: 해당 없음
기준선 제안된 값: 해당 없음
필요한 작업
ESXi 버전을 정기적으로 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
항상 릴리스 정보를 읽고 스테이징된 롤아웃을 사용하여 새 소프트웨어 버전을 테스트하고 배포합니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Select-Object Name,Version,Build
PowerCLI 명령 업데이트 적용 예
해당 없음

시간 동기화 소스 활성화

ESXi 호스트에는 시간 동기화 서비스가 활성화되어 실행 중이어야 합니다.

암호화, 감사 로깅, 클러스터 작업, 인시던트 응답 및 포렌식은 동기화된 시간에 의존합니다. 서비스 및 작업 전체에서 시간이 동기화되도록 하려면 NTP 및/또는 PTP 서비스를 활성화하여 호스트로 시작하고 해당 서비스가 실행 중인지 확인합니다.

설치 기본값: 중지됨, 수동으로 시작 및 중지
기준선 제안된 값: 실행 중, 호스트로 중지 및 시작
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object{$_.Key -eq "ntpd"}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi -ErrorAction:Stop | Where-Object{$_.Key -eq "ntpd"} | Set-VMHostService -policy "on" -Confirm:$false
Get-VMHostService -VMHost $ESXi -ErrorAction:Stop | Where-Object{$_.Key -eq "ntpd"} | Restart-VMHostService -Confirm:$false

신뢰할 수 있는 시간 동기화 소스 구성

ESXi 호스트에는 신뢰할 수 있는 시간 동기화 소스가 구성되어 있어야 합니다.

암호화, 감사 로깅, 클러스터 작업, 인시던트 응답 및 포렌식은 동기화된 시간에 의존합니다. NTP(네트워크 시간 프로토콜)에는 4개 이상의 소스가 있어야 합니다. 2개의 소스와 1개의 소스 중에서 선택해야 하는 경우 1개의 소스가 더 좋습니다.

PTP(정밀 시간 프로토콜)는 밀리초 미만의 시간 정확도를 제공하는 NTP에 대한 대안입니다. PTP의 아키텍처는 NTP와 다르며 기본 서버 장애에 대한 복원 기능이 동일하지 않습니다. 정확도가 낮더라도 시간 소스를 계속 사용할 수 있도록 NTP를 PTP에 대한 백업 소스로 구성하는 것이 좋습니다.

설치 기본값: 정의되지 않음
기준선 제안된 값:

사이트별 또는:

0.vmware.pool.ntp.org,

1.vmware.pool.ntp.org,

2.vmware.pool.ntp.org,

3.vmware.pool.ntp.org

필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostNtpServer -VMHost $ESXi
PowerCLI 명령 업데이트 적용 예
$ntp0 = "0.vmware.pool.ntp.org"
$ntp1 = "1.vmware.pool.ntp.org"
$ntp2 = "2.vmware.pool.ntp.org"
$ntp3 = "3.vmware.pool.ntp.org"

Add-VMHostNTPServer -NtpServer $ntp0 , $ntp1 , $ntp2 , $ntp3 -VMHost $ESXi -Confirm:$false

TLS 암호 사용

ESXi 호스트는 최신 TLS 암호를 사용하도록 설정하여 전송의 기밀성 및 무결성을 유지해야 합니다.

ESXi 8.0 업데이트 3부터 TLS 프로파일은 강력한 암호만 사용하도록 클라이언트 및 서버 TLS 설정을 구성합니다. 다음 명령을 사용하여 전체 암호 목록 및 그룹을 볼 수 있습니다.

$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.tls.server.get.CreateArgs()
$arguments.showprofiledefaults = $true
$arguments.showcurrentbootprofile = $true
$ESXcli.system.tls.server.get.invoke($arguments)

TLS 프로파일을 변경한 후 ESXi 호스트를 재부팅해야 합니다. (vSphere Client에서 호스트에 "재부팅 필요"의 접미사가 표시됩니다.)

설치 기본값: COMPATIBILE
기준선 제안된 값: NIST_2024
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
암호 그룹에 대한 변경 내용은 외부 시스템과의 연결에 영향을 줍니다. 이 TLS 프로파일 변경 내용을 적용하려면 호스트를 재부팅해야 합니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.tls.server.get.invoke() | Select-Object -ExpandProperty Profile
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.tls.server.set.CreateArgs()
$arguments.profile = "NIST_2024"
$ESXcli.system.tls.server.set.invoke($arguments)

UserVars.ESXiVPsDisabledProtocols

ESXi 호스트는 지원되는 최고 버전의 TLS를 사용하도록 설정해야 합니다.

ESXi 8.0은 기본적으로 TLS 1.2를 활성화하지만 필요한 경우 다른 프로토콜을 활성화할 수 있습니다. ESXi 8.0 업데이트 3부터 TLS 1.3이 기본적으로 활성화됩니다.

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

TPM 기반 암호화 구성

ESXi 호스트에는 TPM 기반 구성 암호화가 필요합니다.

ESXi 호스트의 구성은 호스트에서 실행되는 각 서비스에 대한 구성 파일로 구성됩니다. 구성 파일은 일반적으로 /etc 디렉토리에 있지만 다른 네임스페이스에도 상주할 수 있습니다. 구성 파일에는 서비스의 상태에 대한 런타임 정보가 포함되어 있습니다. 예를 들어 ESXi 호스트의 설정이 변경되는 경우 시간이 경과하면 구성 파일의 기본값이 변경될 수 있습니다.

cron 작업은 정기적으로 ESXi 구성 파일을 백업하며, ESXi가 정상적으로 종료되거나 요청 시 부트 뱅크에서 아카이브된 구성 파일을 생성합니다. ESXi가 재부팅되면 시스템에서 아카이브된 구성 파일을 읽고 백업을 생성한 시점의 ESXi의 상태를 재생성합니다.

vSphere 7.0 업데이트 2 이전에는 아카이브된 ESXi 구성 파일이 암호화되지 않았습니다. vSphere 7.0 업데이트 2 이상에서는 아카이브된 구성 파일이 암호화됩니다. ESXi 호스트가 TPM(신뢰할 수 있는 플랫폼 모듈)으로 구성된 경우 TPM이 호스트에 대한 구성을 "봉인"하는 데 사용되어 강력한 보안 보장과 함께 오프라인 공격에 대한 추가적인 보호를 제공합니다.

구성 암호화는 설치 또는 업그레이드 시 사용 가능하고 지원될 때 물리적 TPM을 사용합니다. 나중에 TPM을 추가했거나 사용하도록 설정한 경우 새로 사용 가능한 TPM을 사용하도록 ESXi 호스트를 명시적으로 재구성해야 합니다. TPM 구성 암호화를 사용하도록 설정하면 비활성화할 수 없습니다.

설치 기본값: 사이트별
기준선 제안된 값: TPM
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
보안 부팅 및 TPM 적용 구성 암호화를 사용하면 기존 루트 암호 복구 작업을 사용할 수 없게 됩니다. ESXi 관리자 계정에 대한 액세스 권한이 손실되지 않도록 합니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.encryption.get.Invoke() | Select Mode
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.settings.encryption.set.CreateArgs()
$arguments.mode = "TPM"
$ESXcli.system.settings.encryption.set.Invoke($arguments)

ESXi 소프트웨어가 최신 상태인지 확인

ESXi 패치를 최신 상태로 유지하면 하이퍼바이저의 취약성을 완화할 수 있습니다.

교육을 받은 공격자는 ESXi 호스트에서 권한에 액세스하거나 권한을 상승시키려고 할 때 알려진 취약성을 악용할 수 있습니다. 업데이트를 사용할 수 있는 경우 항상 vCenter Server를 먼저 업데이트한 다음 ESXi를 업데이트합니다.

설치 기본값: 낮은 수준
기준선 제안된 값: 현재
필요한 작업
정기적으로 ESXi 패치 수준을 감사합니다.
항상 릴리스 정보를 읽고 스테이징된 롤아웃을 사용하여 새 소프트웨어 버전을 테스트하고 배포합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
vSphere 업데이트 릴리스는 기능을 추가하고 변경합니다. 패치 릴리스는 문제를 해결하기만 합니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Select-Object Name,Version,Build
PowerCLI 명령 업데이트 적용 예
해당 없음

VMkernel.Boot.execInstalledOnly

VIB에서만 제공되는 바이너리를 실행합니다.

ESXi는 수락 수준을 기반으로 VIB에 대한 무결성 검사를 수행합니다. 호스트에 설치된 유효한 VIB에서 생성된 바이너리만 실행하도록 ESXi에 지시하면 공격자가 손상 동안 사전 구축된 툴킷을 사용하기가 더 어려워지고 감지 가능성이 높아집니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
서명되지 않은 타사 소프트웨어가 설치되거나 실행되지 않을 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting VMkernel.Boot.execInstalledOnly
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting VMkernel.Boot.execInstalledOnly | Set-AdvancedSetting -Value True

VMkernel 어댑터에서 관리 서비스 비활성화

vSAN, vMotion 및 기타 전용 VMkernel 어댑터에 관리 서비스가 활성화되어 있지 않은지 확인합니다.

특수 사용을 위한 VMkernel 네트워크 인터페이스는 관리 기능으로 구성할 수 있으며 이로 인해 네트워크 분리 및 보안 노력이 무효화될 수 있습니다. 관리용으로 설계된 VMkernel 인터페이스에서만 관리 서비스를 사용하도록 설정합니다.

설치 기본값: 사이트별
기준선 제안된 값: 사이트별
필요한 작업
사이트별 값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
일부 타사 관리 솔루션에서는 VMkernel 어댑터에서 관리 서비스를 활성화해야 할 수 있습니다.
PowerCLI 명령 평가
Get-VMHostNetworkAdapter -VMHost $ESXi -VMKernel | Select VMHost,Name,IP,ManagementTrafficEnabled
PowerCLI 명령 업데이트 적용 예
Get-VMHostNetworkAdapter -VMHost $ESXi -Name $vmkernel_interface | Set-VMHostNetworkAdapter -ManagementTrafficEnabled $false

트래픽을 차단하도록 ESXi 방화벽 구성

기본적으로 네트워크 트래픽을 차단하도록 ESXi 호스트 방화벽을 구성해야 합니다.

명시적으로 허용되지 않는 한 모든 수신 및 송신 네트워크 트래픽이 차단되어 공격 표면을 줄이고 호스트에 대한 무단 액세스를 방지해야 합니다.

설치 기본값: 활성화됨
기준선 제안된 값: 활성화됨
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
방화벽은 라우터 ACL과 유사하게 단순합니다. 재귀 규칙을 재구성해야 할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VMHostFirewallDefaultPolicy
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.network.firewall.set.CreateArgs()
$arguments.defaultaction = $FALSE
$arguments.enabled = $true
$ESXcli.network.firewall.set.Invoke($arguments)

인증된 네트워크에 대한 ESXi 방화벽 구성

인증된 네트워크의 트래픽만 허용하도록 ESXi 방화벽을 구성합니다.

명시적으로 허용되지 않는 한 모든 수신 및 송신 네트워크 트래픽이 차단되어 공격 표면을 줄이고 ESXi 호스트에 대한 무단 액세스를 방지해야 합니다.

vSphere 8.0 업데이트 2부터 방화벽 규칙은 '사용자' 또는 '시스템' 소유로 분류됩니다. 여기서는 '사용자' 소유 규칙만 구성할 수 있습니다. vSphere 8 업데이트 2b 및 PowerCLI 13.2.1에는 설정을 자동화하고 구성 가능한 규칙을 확인하기 위한 추가 쿼리 가능한 매개 변수가 있습니다.

설치 기본값: 모든 IP 주소에서 허용되는 연결
기준선 제안된 값: 인증된 인프라 및 관리 워크스테이션에서만 허용되는 연결
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
방화벽은 라우터 ACL과 유사하게 단순합니다. 재귀 규칙을 재구성해야 할 수 있습니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$list = $ESXcli.network.firewall.ruleset.list.Invoke() | Where {($_.AllowedIPconfigurable -eq $true) -and ($_.EnableDisableconfigurable -eq $true)} | Select -ExpandProperty Name

$arguments = $ESXcli.network.firewall.ruleset.allowedip.list.CreateArgs()
foreach ($rule in $list) {
    $arguments.rulesetid = $rule
    $ESXcli.network.firewall.ruleset.allowedip.list.Invoke($arguments) 
}
PowerCLI 명령 업데이트 적용 예
# Customize this example for your environment.
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
# Deactivate firewall temporarily so we don't lose connectivity
$arguments = $ESXcli.network.firewall.set.CreateArgs()
$arguments.enabled = $false
$ESXcli.network.firewall.set.Invoke($arguments)

# Unset the "allow all" flag
$arguments = $ESXcli.network.firewall.ruleset.set.CreateArgs()
$arguments.allowedall = $false
$arguments.rulesetid = "sshServer"
$ESXcli.network.firewall.ruleset.set.Invoke($arguments)

# Add an IP range
$arguments = $ESXcli.network.firewall.ruleset.allowedip.add.CreateArgs()
$arguments.ipaddress = "192.168.0.0/16"
$arguments.rulesetid = "sshServer"
$ESXcli.network.firewall.ruleset.allowedip.add.Invoke($arguments)

# Enable the firewall
$arguments = $ESXcli.network.firewall.set.CreateArgs()
$arguments.enabled = $true
$ESXcli.network.firewall.set.Invoke($arguments)

위조 전송 정책을 거부로 설정

위조 전송 정책을 vSphere 표준 스위치와 해당 포트 그룹 모두에서 거부로 설정합니다.

가상 시스템 운영 체제가 MAC 주소를 변경하면 운영 체제는 언제든지 가장된 소스 MAC 주소로 프레임을 전송할 수 있습니다. MAC 주소 가장을 사용하면 운영 체제가 수신 네트워크에서 인증한 네트워크 어댑터를 가장하여 네트워크의 디바이스에 대한 악의적인 공격을 스테이징할 수 있습니다. 위조 전송 정책을 수락으로 설정하면 ESXi가 소스 MAC 주소와 유효 MAC 주소를 비교하지 않습니다. MAC 가장으로부터 보호하려면 위조 전송 정책을 거부로 설정합니다. 그러면 호스트가 게스트 운영 체제에서 전송되는 소스 MAC 주소를 해당 가상 시스템 어댑터의 유효 MAC 주소와 비교하여 일치 여부를 확인합니다. 주소가 일치하지 않으면 ESXi 호스트는 패킷을 삭제합니다.

설치 기본값: 수락
기준선 제안된 값: 거부
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
클러스터링된 애플리케이션, 네트워크 디바이스 및 기능과 같은 일부 워크로드는 이러한 기술을 작업의 일상적인 부분으로 사용합니다. 필요한 경우 이 동작을 허용하는 별도의 포트 그룹을 구성하고 인증된 가상 시스템만 연결할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | select VirtualSwitch,ForgedTransmits
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | select VirtualPortGroup,ForgedTransmits
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | Set-SecurityPolicy -ForgedTransmits $false 
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | Set-SecurityPolicy -ForgedTransmitsInherited $true

MAC 주소 변경 정책을 거부로 설정

MAC 주소 변경 정책을 vSphere 표준 스위치와 해당 포트 그룹 모두에서 거부로 설정합니다.

가상 시스템 운영 체제가 MAC 주소를 변경하면 가장된 소스 MAC 주소로 프레임을 전송하여 수신 네트워크에서 인증된 네트워크 어댑터를 가장하여 네트워크 내의 디바이스에 악의적인 공격을 스테이징할 수 있습니다. 가상 시스템이 유효 MAC 주소를 변경하지 못하도록 하려면 MAC 주소 안정성을 적용하거나 MAC 주소를 수정하는 기능을 제한하기 위한 조치를 취해야 합니다. 이렇게 하면 MAC 가장 및 잠재적인 악의적인 활동의 위험을 완화할 수 있습니다.

설치 기본값: 수락
기준선 제안된 값: 거부
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
클러스터링된 애플리케이션, 네트워크 디바이스 및 기능, MAC 주소로 라이센스가 부여된 애플리케이션 및 vCenter Server 다운타임 단축 업그레이드와 같은 일부 워크로드는 이러한 기술을 작업의 일상적인 부분으로 사용합니다. 필요한 경우 이 동작을 허용하는 별도의 포트 그룹을 구성하고 인증된 가상 시스템만 연결할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | select VirtualSwitch,MacChanges
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | select VirtualPortGroup,MacChanges
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | Set-SecurityPolicy -MacChanges $false
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | Set-SecurityPolicy -MacChangesInherited $true

무차별 모드 정책을 거부로 설정

무차별 모드 정책을 vSphere 표준 스위치와 해당 포트 그룹 모두에서 거부로 설정합니다.

포트 그룹에 대해 무차별 모드를 사용하도록 설정하면 해당 포트 그룹에 연결된 모든 가상 시스템은 의도한 수신자에 관계없이 해당 포트 그룹 전체에서 전송된 모든 패킷을 읽을 수 있습니다. 무차별 모드의 기본값을 변경하기 전에 잠재적 영향 및 설계 고려 사항을 고려합니다.

설치 기본값: 거부
기준선 제안된 값: 거부
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
DHCP 서버, 네트워크 디바이스 및 보안 모니터링과 같은 특정 워크로드 및 유형의 작업은 이러한 기술을 작업의 정기적인 부분으로 통합합니다. 필요한 경우 이 동작을 허용하는 별도의 포트 그룹을 구성하고 인증된 가상 시스템만 연결할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | select VirtualSwitch,AllowPromiscuous
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | select VirtualPortGroup,AllowPromiscuous
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-VirtualSwitch -Standard | Get-SecurityPolicy | Set-SecurityPolicy -AllowPromiscuous $false
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | Get-SecurityPolicy | Set-SecurityPolicy -AllowPromiscuousInherited $true

표준 스위치에서 Virtual Guest Tagging 제한

ESXi 호스트는 표준 스위치에서 VGT(Virtual Guest Tagging)의 사용을 제한해야 합니다.

포트 그룹이 VLAN 4095로 설정되면 vSwitch는 VLAN 태그를 수정하지 않고 연결된 가상 시스템에 모든 네트워크 프레임을 전달합니다. vSphere에서 이를 VGT라고 합니다. 가상 시스템은 운영 체제에서 802.1Q 드라이버를 사용하여 VLAN 정보 자체를 처리해야 합니다.

VLAN 4095는 연결된 가상 시스템이 특별히 권한을 부여받았으며 VLAN 태그 자체를 관리할 수 있는 경우에만 구현되어야 합니다. VLAN 4095를 부적절하게 사용하도록 설정하면 서비스 거부가 발생하거나 가상 시스템이 인증되지 않은 VLAN에 대한 트래픽과 상호 작용하도록 허용할 수 있습니다.

설치 기본값: VLAN 4095 아님
기준선 제안된 값: VLAN 4095 아님
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | select Name,VlanID
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard -Name $PG| Set-VirtualPortGroup -VlanID "new_VLAN"

보안 부팅 적용 활성화

보안 부팅은 UEFI 펌웨어 표준의 일부입니다. UEFI 보안 부팅이 활성화되면 운영 체제 부팅 로더에 유효한 디지털 서명이 있는 경우가 아니면 ESXi 호스트가 모든 UEFI 드라이버 또는 애플리케이션의 로드를 거부합니다. ESXi에 대한 보안 부팅을 사용하려면 펌웨어의 지원이 필요합니다. 또한 ESXi에 대한 보안 부팅을 사용하려면 모든 ESXi 커널 모듈, 드라이버 및 VIB가 VMware 또는 파트너 하위에서 서명되어야 합니다.

보안 부팅은 ESXi 물리적 서버의 BIOS에서 활성화되고 하이퍼바이저 부트 로더에서 지원됩니다. 이 컨트롤은 ESXi를 단순히 보안 부팅을 지원하는 것에서 요구하는 것으로 플리핑합니다. 이 설정이 활성화되고 구성 암호화가 없으면 ESXi 호스트가 오프라인 공격의 대상이 될 수 있습니다. 공격자는 간단하게 ESXi 설치 드라이브를 비보안 부팅 호스트로 전송하고 부팅할 수 있습니다.

설치 기본값: False
기준선 제안된 값: True
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
보안 부팅 및 TPM 적용 구성 암호화를 사용하면 기존 루트 암호 복구 작업을 사용할 수 없게 됩니다. ESXi 관리자 계정에 대한 액세스 권한이 손실되지 않도록 합니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.encryption.get.Invoke() | Select RequireSecureBoot
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.settings.encryption.set.CreateArgs()
$arguments.requiresecureboot = $true
$ESXcli.system.settings.encryption.set.Invoke($arguments)

ESXi Shell 비활성화

ESXi Shell을 비활성화해야 합니다.

설치 기본값: 중지됨, 수동으로 시작 및 중지
기준선 제안된 값: 중지됨, 수동으로 시작 및 중지
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'TSM' -and $_.Running -eq 'True'}
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'TSM' -and $_.Policy -eq 'On'}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'TSM'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'TSM'} | Stop-VMHostService

UserVars.ESXiShellInteractiveTimeOut

유휴 ESXi Shell 및 SSH 세션을 자동으로 종료하도록 시간 초과를 설정합니다.

사용자가 SSH 세션에서 로그아웃하는 것을 잊은 경우 유휴 연결이 무기한으로 열려 있는 상태로 유지되어 다른 사용자가 호스트에 대한 권한 있는 액세스 권한을 얻을 가능성이 높아질 수 있습니다. 유휴 셸 세션이 자동으로 종료되도록 구성할 수 있습니다.

설치 기본값: 0
기준선 제안된 값: 900
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellInteractiveTimeOut
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900

SNMP 서비스 비활성화

SNMP 서비스를 사용하지 않는 경우 비활성화합니다.

설치 기본값: 중지됨, 호스트로 시작 및 중지
기준선 제안된 값: 중지됨, 수동으로 시작 및 중지
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'snmpd' -and $_.Running -eq 'True'}
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'snmpd' -and $_.Policy -eq 'On'}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'snmpd'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'snmpd'} | Stop-VMHostService

SSH 서비스 비활성화

SSH를 비활성화하고 문제 해결을 위해서만 활성화합니다.

ESXi는 UNIX와 같은 다중 사용자 운영 체제가 아닙니다. ESXiVMware Host Client, vSphere Client, CLI 및 API에서 관리하기 위해 특별히 제작된 하이퍼바이저입니다. ESXi에서 SSH는 문제 해결 및 지원 인터페이스이며 기본적으로 의도적으로 중지되고 비활성화됩니다. 인터페이스를 활성화하면 위험이 초래됩니다.

설치 기본값: 중지됨, 수동으로 시작 및 중지
기준선 제안된 값: 중지됨, 수동으로 시작 및 중지
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'TSM-SSH' -and $_.Running -eq 'True'}
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'TSM-SSH' -and $_.Policy -eq 'On'}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'TSM-SSH'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'TSM-SSH'} | Stop-VMHostService

암호화 작업에 엔트로피 사용

ESXi 호스트는 암호화 작업에 충분한 엔트로피를 사용해야 합니다.

vSphere 8.0 이상에서 ESXi 엔트로피 구현은 FIPS 140-3 및 EAL4 인증을 지원합니다. 커널 부팅 옵션은 ESXi 호스트에서 어떤 엔트로피 소스를 활성화할지 제어합니다.

설치 기본값:

disableHwrng = FALSE

entropySources = 0

기준선 제안된 값:

disableHwrng = FALSE

entropySources = 0

필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.kernel.list.Invoke() | Where {$_.Name -eq "disableHwrng" -or $_.Name -eq "entropySources"}
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.settings.kernel.set.CreateArgs()
$arguments.setting = "disableHwrng"
$arguments.value = "FALSE"
$ESXcli.system.settings.kernel.set.invoke($arguments)
$arguments.setting = "entropySources"
$arguments.value = "0"
$ESXcli.system.settings.kernel.set.invoke($arguments)

이미지 프로파일 및 VIB 허용 수준 확인

ESXi 호스트 이미지 프로파일 허용 수준은 PartnerSupported 이상이어야 합니다.

허용 수준은 ESXi가 설치를 허용하는 항목을 제어합니다. VIB 수준에 대해서는 ESXi 호스트 및 vSphere 설치 번들의 수락 수준 관리의 내용을 참조하십시오.

VMware나 VMware 파트너는 CommunitySupported VIB를 테스트하지 않으며 CommunitySupported VIB에는 디지털 서명이 포함되어 있지 않습니다. 이러한 이유로 CommunitySupported VIB를 설치할 때는 주의를 기울여야 합니다.

설치 기본값: PartnerSupported
기준선 제안된 값: PartnerSupported 이상
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
CommunitySupported 패키지가 서명되지 않아 설치할 수 없습니다.
PowerCLI 명령 평가
(Get-EsxCli -VMHost $ESXi -V2).software.acceptance.get.Invoke()
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.software.acceptance.set.CreateArgs()
$arguments.level = "PartnerSupported" # VMwareCertified, VMwareAccepted, PartnerSupported, CommunitySupported
$ESXcli.software.acceptance.set.Invoke($arguments)

Security.AccountUnlockTime

ESXi 호스트는 지정된 시간 초과 기간 이후에 계정의 잠금을 해제해야 합니다.

Security.AccountUnlockTime은 정의된 비활성 기간 이후에 ESXi 호스트의 사용자 계정이 자동으로 잠금 해제되도록 합니다. 자동 계정 잠금 해제를 적용하면 조직은 보안과 사용 편의성 간의 균형을 유지하여 유휴 계정이 즉시 다시 활성화되도록 하면서 무단 액세스 가능성을 최소화할 수 있습니다.

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

Security.AccountLockFailures

계정이 잠기기 전에 실패한 최대 로그인 시도 횟수를 설정합니다.

영향을 받는 계정을 일시적으로 사용하지 않도록 설정하고 잠금 기간이 만료되거나 관리자가 수동으로 재설정할 때까지 추가 로그인 시도를 방지하여 무차별 대입 공격 및 무단 액세스 시도로부터 보호합니다. 잠긴 계정의 잠금을 해제하려면 관리 작업을 수행하거나 Security.AccountUnlockTime 설정이 사용되는 경우 계정이 자동으로 잠금 해제되도록 대기합니다.

설치 기본값: 5
기준선 제안된 값: 5
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
로그인 실패에 대한 임계값이 낮을 경우 SSH 연결 재시도와 같이 의도 여부와 관계없이 서비스 거부 공격이 잠재적으로 증가할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountLockFailures
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountLockFailures | Set-AdvancedSetting -Value 5

Security.PasswordHistory

암호 재사용을 허용하지 않습니다.

이 설정은 이전 암호의 재사용을 방지하므로 손상된 이전 자격 증명의 잠재적 위반을 완화합니다.

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

Security.PasswordMaxDays

암호 변경 간격의 최대 일수를 설정합니다.

NIST 800-63B 섹션 5.1.1.2 및 기타 관련 지침에 설명된 것처럼 암호에 대한 최신 모범 사례에는 암호가 이미 적절한 엔트로피를 보유하고 있을 때 정기적인 암호 변경을 적용해도 보안을 강화하지 않는다고 명시되어 있습니다.

설치 기본값: 99999
기준선 제안된 값: 99999
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordMaxDays
PowerCLI 명령
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordMaxDays | Set-AdvancedSetting -Value 99999

Security.PasswordQualityControl

암호 복잡성을 적용합니다.

NIST 800-63B 섹션 5.1.1.2와 같은 권장 사항은 구성 규칙(예: 문자 클래스의 혼합물 의무화)이 암호 보안을 향상시키지 못하고 보다 안전한 암호 채택을 억제하는 경우가 종종 있기 때문에 시스템에 적용되어서는 안 됩니다.

암호 강도 및 복잡성 규칙은 루트 사용자를 포함한 모든 ESXi 사용자에게 적용됩니다. 그러나 ESXi 호스트가 도메인에 가입된 경우 AD(Active Directory) 사용자에 대한 암호 정책이 AD 시스템에 의해 적용되기 때문에 이러한 규칙은 AD 사용자에게 적용되지 않습니다.

설치 기본값: retry=3 min=disabled,disabled,disabled,7,7
기준선 제안된 값: retry=3 min=disabled,15,15,15,15 max=64 similar=deny passphrase=3
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
VMware 에코시스템 내의 다른 제품 및 서비스는 암호 복잡성 요구 사항에 대한 변경을 기대하지 않을 수 있으며 설치가 실패할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordQualityControl
PowerCLI 명령
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordQualityControl | Set-AdvancedSetting -Value "retry=3 min=disabled,15,15,15,15 max=64 similar=deny passphrase=3"

UserVars.SuppressHyperthreadWarning

잠재적인 하이퍼스레딩 보안 취약성에 대한 주의를 표시하지 않습니다.

하이퍼스레딩 보안 주의는 시스템에서 해결되지 않은 CPU 취약성을 나타냅니다. 이러한 주의를 무시하면 잠재적인 위험이 마스킹될 수 있습니다. 하드웨어 업데이트 적용이 조직의 허용되는 위험에 부합하는지 확인합니다. 주의를 표시하지 않는 경우 결정과 근거를 문서화합니다.

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

UserVars.DcuiTimeOut

유휴 DCUI 세션을 자동으로 종료하도록 시간 초과를 설정합니다.

DCUI를 사용하면 관리 작업을 위해 ESXi 호스트에 직접 로그인할 수 있습니다. 남은 로그인 세션의 의도하지 않은 DCUI 사용을 방지하려면 유휴 연결을 종료합니다.

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

CIM 서비스 비활성화

ESXi CIM 서비스를 비활성화해야 합니다.

사용 중이 아니며 작업에 필수적이지 않은 서비스는 비활성화해야 합니다.

설치 기본값: 중지됨, 호스트로 시작 및 중지
기준선 제안된 값: 중지됨, 수동으로 시작 및 중지
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'sfcbd-watchdog' -and $_.Running -eq 'True'}
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'sfcbd-watchdog' -and $_.Policy -eq 'On'}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'sfcbd-watchdog'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'sfcbd-watchdog'} | Stop-VMHostService

Config.HostAgent.log.level

로깅 정보 수준을 설정합니다.

로그 수준을 설정할 때 감사 로그에 진단 및 포렌식 수행을 위한 충분한 정보가 있는지 확인합니다.

설치 기본값: 정보
기준선 제안된 값: 정보
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
추가 스토리지 공간은 로그에 사용됩니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.log.level
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.log.level | Set-AdvancedSetting -Value info

Syslog.global.logLevel

이벤트에 대한 충분한 정보를 기록합니다.

충분한 로그 데이터가 없으면 손상의 위험 지표가 눈에 띄지 않아 취약성이 증가하고 사이버 보안 인시던트에 효과적으로 대응하지 못할 수 있습니다.

설치 기본값: 오류
기준선 제안된 값: 정보
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
추가 스토리지 공간은 로그에 사용됩니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logLevel
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logLevel | Set-AdvancedSetting -Value info

Config.HostAgent.plugins.solo.enableMob

MOB(Managed Object Browser)를 비활성화합니다.

사용 중이 아니며 작업에 필수적이지 않은 서비스는 비활성화해야 합니다.

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

Net.BlockGuestBPDU

게스트 운영 체제 BPDU(Bridge Protocol Data Unit) 전송을 차단합니다.

BPDU는 STP(스패닝 트리 프로토콜) 정보를 전송하고 네트워크 루프를 감지하는 데 사용됩니다. BPDU 가드 및 PortFast는 일반적으로 스패닝 트리 컨버전스 지연을 줄이기 위해 ESXi 호스트에 직접 연결된 물리적 스위치에서 활성화됩니다.

그러나 BPDU 패킷이 ESXi 호스트의 가상 시스템에서 구성된 물리적 스위치로 전송되면 ESXi 호스트에서 모든 업링크 인터페이스가 연속으로 잠금 상태가 될 수 있습니다. 이러한 유형의 잠금을 방지하려면 ESXi 호스트에서 BPDU 필터를 활성화하여 물리적 스위치로 전송되는 BPDU 패킷을 삭제할 수 있습니다.

표준 및 분산 가상 스위치는 STP를 지원하지 않으며 BPDU를 생성하지 않습니다.

설치 기본값: 1
기준선 제안된 값: 1
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
일부 네트워크 지향 워크로드는 BPDU 패킷을 정상적으로 생성할 수 있습니다. BPDU 필터를 사용하도록 설정하기 전에 ESXi 호스트의 가상 시스템에서 생성된 올바른 BPDU 패킷이 없는지 확인합니다. 이러한 상황에서 BPDU 필터가 활성화된 경우 가상 스위치 포트 그룹에서 위조 전송 거부를 사용하도록 설정하면 스패닝 트리 루프에 대한 보호가 추가됩니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BlockGuestBPDU
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BlockGuestBPDU | Set-AdvancedSetting -Value 1

Net.DVFilterBindIpAddress

dvFilter 네트워크 API의 사용을 제한합니다.

dvFilter 네트워크 API를 활용하는 VMware NSX 같은 제품을 사용하지 않는 경우 네트워크 정보를 IP 주소로 전송하도록 ESXi 호스트를 구성하지 마십시오. API를 사용하도록 설정하고 손상된 IP 주소를 참조하면 ESXi 호스트에 있는 다른 가상 시스템의 네트워크에 무단으로 액세스할 수 있습니다.

이 API에 의존하는 제품을 사용하는 경우 보안 네트워크 통신을 보장하기 위해 ESXi 호스트가 올바르게 구성되었는지 확인하는 것이 중요합니다.

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

UserVars.ESXiShellTimeOut

ESXi Shell 및 SSH 서비스를 실행할 수 있는 기간을 제한하도록 시간 초과를 설정합니다.

이 고급 시스템 설정은 ESXi Shell 및 SSH 서비스가 자동으로 종료되는 기간을 정의합니다.

설치 기본값: 0
기준선 제안된 값: 600
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellTimeOut
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellTimeOut | Set-AdvancedSetting -Value 600

UserVars.SuppressShellWarning

지원 및 문제 해결 인터페이스에 대한 주의를 표시하지 않습니다.

ESXi 호스트는 ESXi Shell이 활성화되었다는 주의를 표시해서는 안 됩니다.

SSH 또는 ESXi Shell이 활성화되었음을 나타내는 주의는 공격이 진행 중이라는 단서일 수 있습니다. SSH 및 ESXi Shell이 비활성화되고 이 고급 시스템 설정이 활성화되지 않도록 하는 것이 중요합니다.

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

FIPS에 대한 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 FIPS 140-2/140-3 검증 암호만 사용하도록 구성해야 합니다. 활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
기준선 제안된 값: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ciphers'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'ciphers'
$arguments.value = '[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

FIPS에 대한 ESXi SSH 데몬 구성

ESXi 호스트 SSH 데몬은 FIPS 140-2/140-3 검증 암호화 모듈을 사용해야 합니다.

ESXi 호스트의 OpenSSH는 기본적으로 활성화된 FIPS 140-2/140-3 검증 암호화 모듈과 함께 제공됩니다. 이전 버전과의 호환성을 위해 이 모듈을 비활성화할 수 있습니다. 감사하고 필요한 경우 수정합니다.

설치 기본값: True
기준선 제안된 값: True
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.security.fips140.ssh.get.Invoke()
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.security.fips140.ssh.set.CreateArgs()
$arguments.enable = $true
$ESXcli.system.security.fips140.ssh.set.Invoke($arguments)

게이트웨이 포트를 허용하지 않도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 게이트웨이 포트를 허용하지 않도록 구성해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'gatewayports'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'gatewayports'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

호스트 기반 인증을 사용하지 않도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 호스트 기반 인증을 허용해서는 안 됩니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'hostbasedauthentication'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'hostbasedauthentication'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

시간 초과 수를 설정하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 유휴 세션에서 시간 초과 수를 설정해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다. 유휴 시간 초과 간격을 곱한 시간 초과 수는 세션이 연결이 끊어질 때까지 유휴 상태일 수 있는 총 시간(초)입니다.

설치 기본값: 3
기준선 제안된 값: 3
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientalivecountmax'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'clientalivecountmax'
$arguments.value = '3'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

시간 초과 간격을 설정하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 유휴 세션에서 시간 초과 수를 설정해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다. 유휴 시간 초과 간격을 곱한 시간 초과 수는 세션이 연결이 끊어질 때까지 유휴 상태일 수 있는 총 시간(초)입니다.

설치 기본값: 200
기준선 제안된 값: 200
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientaliveinterval'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'clientaliveinterval'
$arguments.value = '200'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

로그인 배너를 표시하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 시스템에 대한 액세스 권한을 부여하기 전에 시스템 로그인 배너를 표시해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다. 이 배너에 텍스트를 제공하려면 Config.Etc.issue 설정도 지정해야 합니다.

설치 기본값: /etc/issue
기준선 제안된 값: /etc/issue
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'banner'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'banner'
$arguments.value = '/etc/issue'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

.rhosts 파일을 무시하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 .rhosts 파일을 무시해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 예
기준선 제안된 값: 예
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ignorerhosts'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'ignorerhosts'
$arguments.value = 'yes'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

스트림 로컬 전달을 비활성화하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 스트림 로컬 전달을 비활성화해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'allowstreamlocalforwarding'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'allowstreamlocalforwarding'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

TCP 전달을 비활성화하도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 TCP 전달을 비활성화해야 합니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'allowtcpforwarding'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'allowtcpforwarding'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

터널을 허용하지 않도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 터널을 허용해서는 안 됩니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permittunnel'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'permittunnel'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

사용자 환경 설정을 허용하지 않도록 ESXi 보안 셸 데몬 구성

ESXi 호스트 SSH(보안 셸) 데몬은 사용자 환경 설정을 허용해서는 안 됩니다.

활성화되었을 때 시스템 서비스를 강화 및 보호해야 합니다.

설치 기본값: 아니요
기준선 제안된 값: 아니요
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permituserenvironment'} | Select-Object -ExpandProperty Value
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'permituserenvironment'
$arguments.value = 'no'
$ESXcli.system.ssh.server.config.set.Invoke($arguments)

서비스 위치 프로토콜 서비스 비활성화

SLP(서비스 위치 프로토콜) 서비스를 사용하지 않는 경우 비활성화합니다.

설치 기본값: 중지됨, 수동으로 시작 및 중지
기준선 제안된 값: 중지됨, 수동으로 시작 및 중지
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'slpd' -and $_.Running -eq 'True'}
Get-VMHostService -VMHost $ESXi | Where-Object {$_.Key -eq 'slpd' -and $_.Policy -eq 'On'}
PowerCLI 명령 업데이트 적용 예
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'slpd'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'slpd'} | Stop-VMHostService

Mem.ShareForceSalting

투명 페이지 공유를 sched.mem.pshare.salt로 구성된 가상 시스템으로 제한합니다.

TPS(투명 페이지 공유)는 가상 시스템의 메모리 설치 공간을 줄이는 방법입니다. 고도로 제어되는 조건에서 공격자는 TPS를 사용하여 인접 가상 시스템의 데이터에 대한 무단 액세스 권한을 얻을 수 있습니다. sched.mem.pshare.salt 설정이 구성되지 않은 가상 시스템은 메모리를 다른 가상 시스템과 공유할 수 없습니다. 많은 최신 CPU의 하이퍼바이저의 큰 페이지 크기, 성능 최적화는 TPS와 호환되지 않습니다.

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

UserVars.HostClientSessionTimeout

유휴 ESXi 호스트 클라이언트 세션을 자동으로 종료하도록 시간 초과를 설정합니다.

ESXi 호스트는 유휴 호스트 클라이언트 세션을 자동으로 종료해야 합니다. 이 사례는 권한이 없는 사용자 또는 악성 소프트웨어에 의해 악용될 수 있는 자동 세션이 무기한으로 열려 있지 않도록 함으로써 잠재적인 보안 위험을 완화하는 데 도움이 됩니다.

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

Net.BMCNetworkEnable

가상 하드웨어 관리 네트워크 인터페이스를 비활성화합니다.

하드웨어 관리 컨트롤러는 종종 가상 또는 USB NIC를 ESXi 호스트에 제공합니다. 이는 백도어로 사용할 수 있으며 하드웨어 구성과 ESXi 구성 모두에서 비활성화해야 합니다.

설치 기본값: 1
기준선 제안된 값: 0
필요한 작업
설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
이 기능은 일부 타사 관리 솔루션에 필요할 수 있습니다.
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BMCNetworkEnable
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BMCNetworkEnable | Set-AdvancedSetting -Value 0

iSCSI 트래픽에 대해 양방향/상호 CHAP 인증 활성화

iSCSI 스토리지 어댑터 인증을 "양방향 CHAP 사용"으로 설정하고 자격 증명을 제공합니다.

상호 CHAP는 이니시에이터(클라이언트)와 대상(서버)이 서로 ID를 확인하도록 요구하여 둘 간에 전송된 데이터를 무단 엔티티가 가로채거나 변경하지 않도록 함으로써 추가 보호 계층을 제공합니다.

설치 기본값: 구성되지 않음
기준선 제안된 값: 활성화됨
필요한 작업
이 기능을 사용하는 경우 설치 기본값을 수정합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
없음
PowerCLI 명령 평가
Get-VMHost -Name $ESXi | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Select VMHost, Device, ChapType, @{N="CHAPName";E={$_.AuthenticationProperties.ChapName}}
PowerCLI 명령 업데이트 적용 예
Get-VMHost -Name $ESXi | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Set-VMHostHba parameters

매개 변수에 대한 자세한 내용은 "ESXCLI 참조" 의 내용을 참조하십시오.

물리적 액세스를 보호하지 않고 ESXi 호스트에 암호화 키 저장 안 함

ESXi 호스트는 호스트에 대한 물리적 액세스를 보호하지 않고 ESXi 호스트 자체에 암호화 키를 저장하면 안 됩니다.

키 지속성은 로컬 TPM(신뢰할 수 있는 플랫폼 모듈)을 사용하여 표준 키 제공자 키를 저장하는 메커니즘으로, 일반적으로 외부 KMS(키 관리 시스템)에서만 찾을 수 있습니다. 이 설정은 종속성 관리를 개선할 수 있지만 키 지속성을 사용하면 암호화 위험이 변경됩니다. 공격자가 호스트를 훔치면 외부 KMS의 액세스 제어를 우회하여 해당 호스트의 데이터에 대한 암호화 키에 액세스할 수 있습니다. 따라서 호스트의 물리적 보안을 보장할 수 있는 경우에만 키 지속성을 사용합니다. 물리적 호스트가 안전하지 않고 공격자가 호스트를 훔칠 수 있는 경우 공격자는 암호화된 워크로드에 액세스하고 사용할 수도 있습니다.

키 지속성과 vSphere Native Key Provider 둘 다 호스트에 암호화 데이터를 저장하기 때문에 종종 통합됩니다. 그러나 vSphere Native Key Provider는 키 지속성을 사용하지 않으므로 키 지속성을 해제해도 영향을 주지 않습니다. 키 지속성과 마찬가지로 vSphere Native Key Provider도 물리적 보안을 신중하게 고려해야 합니다. vSphere 시스템 설계 보안 제어 참조의 내용을 참조하십시오.

설치 기본값: False
기준선 제안된 값: False
필요한 작업
설치 기본값을 감사합니다.
기본값이 변경되는 경우 기능에 대한 잠재적 영향
기본값은 원하는 동작입니다. 기본값에서 벗어나면 공격자가 물리적으로 액세스할 수 있는 환경의 기밀성에 부정적인 영향을 미칠 수 있습니다.
PowerCLI 명령 평가
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.security.keypersistence.get.invoke() | Select-Object -ExpandProperty Enabled
PowerCLI 명령 업데이트 적용 예
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.security.keypersistence.disable.CreateArgs()
$arguments.removeallstoredkeys = $true
$ESXcli.system.security.keypersistence.disable.Invoke($arguments)