Questi controlli di sicurezza forniscono un set di basi di confronto di procedure consigliate per la sicurezza di ESXi. Sono strutturati in modo da spiegare i vantaggi e i compromessi dell'implementazione del controllo. La maggior parte dei controlli sono impostazioni di sistema avanzate. Per modificare le impostazioni di sistema avanzate, è possibile utilizzare l'istanza di PowerCLI fornita oppure vSphere Client (Host > Configura > Sistema > Impostazioni di sistema avanzate).

Variabili utilizzate

I comandi PowerCLI di questa sezione utilizzano le variabili seguenti:

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

Assicurarsi che all'account DCUI sia negato l'accesso

L'host ESXi deve negare l'accesso alla shell per l'account utente DCUI.

L'account utente DCUI viene utilizzato per l'isolamento del processo per DCUI stesso. Per ridurre la superficie di attacco, disattivare l'accesso alla shell per l'account utente DCUI.

Valori
Valore predefinito dell'installazione: True
Valore suggerito per la base di confronto: False
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.account.list.Invoke() | Where-Object { $_.UserID -eq 'dcui' } | Select-Object -ExpandProperty Shellaccess
Esempio di correzione del comando tramite 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

Configura il testo del messaggio di accesso visualizzato in VMware Host Client e in DCUI.

ESXi consente di visualizzare un messaggio di accesso. Il messaggio di accesso può essere ad esempio utilizzato per informare gli intrusi che le loro attività sono illegali o indicare agli utenti autorizzati i requisiti e gli obblighi che devono soddisfare e accettare durante l'utilizzo del sistema.

Valori
Valore predefinito dell'installazione: non definito
Valore suggerito per la base di confronto: rivolgersi ai consulenti legali dell'organizzazione per inserire un testo applicabile al proprio ambiente.

Esempio di testo del messaggio: Solo utenti autorizzati. L'uso non autorizzato, effettivo o tentato, di questo sistema è vietato e può causare procedimenti penali, civili, di sicurezza o amministrativi e/o sanzioni. L'uso di questo sistema informativo implica il consenso al monitoraggio e alla registrazione, senza preavviso o autorizzazione. Gli utenti non devono avere alcuna pretesa rispetto alla privacy durante l'uso di questo sistema. Qualsiasi informazione archiviata o in transito in questo sistema, oppure ottenuta mediante monitoraggio e/o registrazione, può essere divulgata alle forze dell'ordine e/o utilizzata in conformità con la legge vigente, con le norme dello Stato e con le linee di condotta dell'organizzazione. Se non si dispone delle autorizzazioni necessarie per l'uso del sistema, uscire immediatamente.

Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Maschera le informazioni "F2/F12" e gli indirizzi IP in DCUI. Potrebbe inoltre richiedere documentazione e formazione per l'ambiente in uso.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Annotations.WelcomeMessage
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Annotations.WelcomeMessage | Set-AdvancedSetting -Value "your_message"

Config.HostAgent.vmacore.soap.sessionTimeout

Configura un timeout della sessione per vSphere API.

Questa procedura consente di ridurre i potenziali rischi per la sicurezza, facendo in modo che le sessioni automatiche, che potrebbero essere sfruttate da utenti non autorizzati o da software dannosi, non vengano lasciate aperte indefinitamente.

Valori
Valore predefinito dell'installazione: 30
Valore suggerito per la base di confronto: 30
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.vmacore.soap.sessionTimeout
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.vmacore.soap.sessionTimeout | Set-AdvancedSetting -Value 30

Config.Etc.issue

Configura il testo del banner quando un utente si connette a un host ESXi tramite SSH.

ESXi consente di visualizzare un banner per le connessioni SSH. Il banner può essere ad esempio utilizzato per informare gli intrusi che le loro attività sono illegali o indicare agli utenti autorizzati i requisiti e gli obblighi che devono soddisfare e accettare durante l'utilizzo del sistema. Mantenere il servizio SSH disattivato a meno che non si stiano eseguendo operazioni di risoluzione dei problemi. Un'incoerenza di implementazione tra ESXi e vCenter Server richiede che "issue" in Config.Etc.issue sia scritto con lettere minuscole per funzionare in entrambi gli scenari.

Valori
Valore predefinito dell'installazione: non definito
Valore suggerito per la base di confronto: rivolgersi ai consulenti legali dell'organizzazione per inserire un testo applicabile al proprio ambiente.

Esempio di testo del messaggio: Solo utenti autorizzati. L'uso non autorizzato, effettivo o tentato, di questo sistema è vietato e può causare procedimenti penali, civili, di sicurezza o amministrativi e/o sanzioni. L'uso di questo sistema informativo implica il consenso al monitoraggio e alla registrazione, senza preavviso o autorizzazione. Gli utenti non devono avere alcuna pretesa rispetto alla privacy durante l'uso di questo sistema. Qualsiasi informazione archiviata o in transito in questo sistema, oppure ottenuta mediante monitoraggio e/o registrazione, può essere divulgata alle forze dell'ordine e/o utilizzata in conformità con la legge vigente, con le norme dello Stato e con le linee di condotta dell'organizzazione. Se non si dispone delle autorizzazioni necessarie per l'uso del sistema, uscire immediatamente.

Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.Etc.issue
Esempio di correzione del comando tramite 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"

Disattivazione dell'accesso alla shell per vpxuser

L'host ESXi deve negare l'accesso alla shell per l'account vpxuser.

vCenter Server crea l'account vpxuser quando un host ESXi viene collegato per la prima volta. L'account vpxuser viene successivamente utilizzato per l'autenticazione privilegiata in ESXi. Mentre vCenter Server ruota automaticamente la password per l'account vpxuser in un intervallo regolato dall'opzione VirtualCenter.VimPasswordExpirationInDays, anche l'account vpxuser dispone dell'accesso alla shell. Disattivare l'account vpxuser per ridurre la superficie di attacco.

Valori
Valore predefinito dell'installazione: True
Valore suggerito per la base di confronto: False
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Gli account utente che non dispongono dell'accesso alla shell non possono riconfigurare l'accesso alla shell di altri utenti, indipendentemente dai livelli di privilegi di cui dispongono. Poiché vCenter Server si connette a un host ESXi come account vpxuser, quando viene disattivato l'accesso alla shell per vpxuser, non può più essere utilizzato per modificare le impostazioni dell'account per altri account. È necessario eseguire quindi una riconfigurazione per ogni host utilizzando un account autorizzato.
ESXi 8.0 e versioni successive non supportano più le operazioni tradizionali di ripristino della password o dell'account, come l'avvio da un file multimediale o la modifica di init per una shell all'avvio.
Assicurarsi che l'host ESXi conservi almeno un account utente con privilegi completi e proteggere questo account di conseguenza.
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.account.list.Invoke() | Where-Object { $_.UserID -eq 'vpxuser' } | Select-Object -ExpandProperty Shellaccess
Esempio di correzione del comando tramite 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 deve utilizzare vSphere Authentication Proxy per evitare l'archiviazione delle credenziali di Active Directory

vSphere Authentication Proxy consente a vCenter Server di connettersi alle entità di Active Directory e gestirle senza dover archiviare direttamente le credenziali di Active Directory, riducendo in questo modo il rischio di uso improprio o esposizione delle credenziali.

Valori
Valore predefinito dell'installazione: non configurato
Valore suggerito per la base di confronto: configurarlo se si utilizza la funzionalità
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VMHostAuthentication | Select-Object VMHost,Domain,DomainMembershipStatus
Esempio di correzione del comando tramite PowerCLI
N/D

DCUI.Access

L'host ESXi deve disporre di un elenco DCUI.Access accurato.

Imposta l'elenco Utenti eccezione per la modalità di blocco in modo che contenga un elenco accurato di utenti e garantisce che solo gli utenti autorizzati dispongano dell'accesso DCUI (Direct Console User Interface) all'host ESXi quando è attivata la modalità di blocco.

Non è possibile rimuovere l'utente root dall'elenco.

Per controllare l'accesso alla ESXi Shell e SSH, utilizzare l'elenco Utenti eccezione per la modalità di blocco. Vedere Assicurarsi che l'host ESXi disponga di un elenco Utenti eccezione accurato.

Valori
Valore predefinito dell'installazione: root
Valore suggerito per la base di confronto: root
Azione necessaria
Controllare l'elenco.
Potenziale impatto funzionale se il valore predefinito viene modificato
Possibile perdita dell'accesso amministrativo agli host. Assicurarsi di collegare gli host ESXi a vCenter Server e di configurare gli elenchi degli accessi e gli elenchi delle eccezioni prima di configurare la modalità di blocco.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting DCUI.Access
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting DCUI.Access | Set-AdvancedSetting -Value root

Assicurarsi che l'host ESXi disponga di un elenco Utenti eccezione accurato

L'host ESXi deve disporre di un elenco Utenti eccezione accurato.

Gli utenti nell'elenco Utenti eccezione per la modalità di blocco non perdono i loro privilegi quando l'host passa alla modalità di blocco. Questa situazione potrebbe vanificare lo scopo della modalità di blocco.

Valori
Valore predefinito dell'installazione: Null
Valore suggerito per la base di confronto: Null
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Possibile perdita dell'accesso amministrativo agli host ESXi. Assicurarsi di collegare gli host ESXi a vCenter Server e di configurare gli elenchi degli accessi e gli elenchi delle eccezioni prima di configurare la modalità di blocco.
Valutazione del comando tramite PowerCLI
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).QueryLockdownExceptions()
Esempio di correzione del comando tramite PowerCLI
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).UpdateLockdownExceptions($NULL)

Attivazione della modalità di blocco normale per limitare l'accesso a ESXi

L'attivazione della modalità di blocco disattiva l'accesso diretto a un host ESXi. La modalità di blocco richiede vCenter Server per gestire direttamente l'host ESXi.

La limitazione dell'accesso in questo modo garantisce che vCenter Server imponga ruoli e autorizzazioni. Inoltre, gli utenti non possono ignorare questi ruoli e autorizzazioni accedendo direttamente a un host ESXi. Facendo in modo che tutte le interazioni vengano eseguite tramite vCenter Server si riduce il rischio che gli utenti raggiungano inavvertitamente privilegi elevati o eseguano attività per le quali non sono stati sottoposti ai controlli appropriati.

Gli utenti dell'elenco Utenti eccezione per ogni host ESXi possono ignorare la modalità di blocco e accedere. Per impostazione predefinita, nell'elenco Utenti eccezione non è presente alcun utente.

Le impostazioni della modalità di blocco sono Disabilitata, Normale e Rigida. Quando la modalità di blocco è impostata su Rigida, se l'host ESXi perde il contatto con vCenter Server, non è possibile gestirlo finché la connessione non viene ripristinata. Se non è possibile ripristinare la connessione, è necessario ricreare l'host ESXi. In generale, la modalità di blocco Rigida supera le esigenze della maggior parte delle distribuzioni. Ad esempio, la modalità di blocco Normale in genere è sufficiente.

Valori
Valore predefinito dell'installazione: lockdownDisabled
Valore suggerito per la base di confronto: lockdownNormal
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Possibile perdita dell'accesso amministrativo agli host. Assicurarsi di collegare gli host ESXi a vCenter Server e di configurare gli elenchi degli accessi e gli elenchi delle eccezioni prima di configurare la modalità di blocco.
Alcune operazioni, come il backup e la risoluzione dei problemi, richiedono l'accesso diretto all'host ESXi. In questi casi, è possibile disattivare temporaneamente la modalità di blocco per host specifici, quindi riattivare la modalità di blocco al termine dell'operazione.
Valutazione del comando tramite PowerCLI
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).LockdownMode
Esempio di correzione del comando tramite PowerCLI
(Get-View (Get-VMHost -Name $ESXi | Get-View).ConfigManager.HostAccessManager).ChangeLockdownMode('lockdownNormal')

Syslog.global.auditRecord.storageEnable

Configura l'host ESXi in modo che archivi i record di controllo in locale.

È necessario attivare la registrazione dei record di controllo negli host ESXi.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: True
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I registri utilizzano ulteriore spazio di storage.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageEnable
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageEnable | Set-AdvancedSetting -Value TRUE

Syslog.global.auditRecord.storageCapacity

È necessario attivare la capacità di storage per una settimana di record di controllo negli host ESXi.

Se è disponibile una funzionalità di storage dei record di controllo remota, è essenziale garantire che la capacità di storage locale sia sufficiente per i record di controllo che possono accumularsi durante le interruzioni previste della consegna di record alla funzionalità di storage remota. Ciò garantisce che i record di controllo non vengano persi o sovrascritti durante i periodi in cui lo storage remoto non è disponibile, consentendo la continuità dell'audit trail e dei requisiti di conformità.

Valori
Valore predefinito dell'installazione: 4
Valore suggerito per la base di confronto: 100
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I registri utilizzano ulteriore spazio di storage.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageCapacity
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageCapacity | Set-AdvancedSetting -Value 100

ScratchConfig.CurrentScratchLocation e Syslog.global.auditRecord.storageDirectory

Configura una posizione del registro persistente per tutti i record di controllo archiviati in locale nell'host ESXi.

È possibile configurare ESXi in modo che archivi i record di controllo in un file system nella memoria. Questo si verifica quando la directory "/scratch" dell'host è collegata a "/tmp/scratch". Al termine, in qualsiasi momento vengono archiviati i record di un solo giorno. Inoltre, i record di controllo vengono reinizializzati a ogni riavvio. Ciò comporta un rischio per la sicurezza perché l'attività utente registrata nell'host viene archiviata solo temporaneamente e non è persistente tra i riavvii. Questo può anche complicare il controllo e rendere più difficile il monitoraggio degli eventi e la diagnosi dei problemi. Configurare sempre la registrazione dei record di controllo dell'host ESXi in un datastore persistente.

È possibile stabilire se il volume scratch è temporaneo o persistente eseguendo una query relativa all'impostazione avanzata ScratchConfig.CurrentScratchLocation. Se la query restituisce "/tmp/scratch", il volume è temporaneo ed è necessario mappare nuovamente lo storage dei record di controllo in un dispositivo persistente.

Lo storage non può essere un datastore vSAN. Se l'unico storage locale non vSAN è un supporto SD o USB (che può diventare inaffidabile con le scritture ripetute dai registri), è consigliabile lasciare i registri nel disco RAM e assicurarsi che sia configurato invece un host di registrazione remoto. Documentare la decisione e i motivi in preparazione alle verifiche future.

Valori
Valore predefinito dell'installazione:

ScratchConfig.CurrentScratchLocation: dipende dal dispositivo di avvio

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

Valore suggerito per la base di confronto: posizione di storage persistente
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I registri utilizzano ulteriore spazio di storage.
Valutazione del comando tramite 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
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.storageDirectory | Set-AdvancedSetting -Value "/vmfs/volumes/$Datastore/audit"

Syslog.global.auditRecord.remoteEnable

Configura l'host ESXi per la trasmissione dei registri di controllo a un host remoto.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: True
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.remoteEnable
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.auditRecord.remoteEnable | Set-AdvancedSetting -Value TRUE

Syslog.global.logFiltersEnable

Attiva il filtro dei registri nell'host ESXi.

È possibile creare filtri dei registri per ridurre il numero di voci ripetitive e rifiutare completamente eventi di registrazione specifici.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: False
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logFiltersEnable
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logFiltersEnable | Set-AdvancedSetting -Value FALSE

LocalLogOutputIsPersistent, ScratchConfig.CurrentScratchLocation e Syslog.global.logDir

Configura la registrazione persistente per tutti i registri archiviati localmente nell'host ESXi.

È possibile configurare ESXi in modo che archivi file di registro in un file system nella memoria. Questo si verifica quando la directory "/scratch" dell'host è collegata a "/tmp/scratch". Al termine, in qualsiasi momento vengono archiviati i registri di un solo giorno. Inoltre, i file di registro vengono reinizializzati a ogni riavvio. Ciò comporta un rischio per la sicurezza perché l'attività utente registrata nell'host viene archiviata solo temporaneamente e non persiste tra i riavvii. Può anche complicare il controllo e rendere più difficile il monitoraggio degli eventi e la diagnosi dei problemi. Configurare sempre la registrazione dell'host ESXi in un datastore persistente.

È possibile rilevare se il volume scratch è temporaneo o persistente eseguendo una query relativa al parametro avanzato ScratchConfig.CurrentScratchLocation. Se la query restituisce "/tmp/scratch", il volume è temporaneo ed è necessario mappare nuovamente lo storage dei record di controllo in un dispositivo persistente.

Lo storage non può essere un datastore vSAN, a meno che non si imposti Syslog.global.vsanBacking, che ha alcune condizioni e dipendenze. Se l'unico storage locale non vSAN è un supporto SD o USB (che può diventare inaffidabile con le scritture ripetute dai registri), è consigliabile lasciare i registri nel disco RAM e assicurarsi che sia configurato invece un host di registrazione remoto. Documentare la decisione e i motivi in preparazione alle verifiche future.

Valori

Valore predefinito dell'installazione: ScratchConfig.CurrentScratchLocation: dipende dal dispositivo di avvio

Syslog.global.logDir: /scratch/log

Valore suggerito per la base di confronto: posizione di storage persistente
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logDir | Set-AdvancedSetting -Value "/vmfs/volumes/$Datastore/logs"

Syslog.global.logHost

Configura la registrazione remota.

Quando si configura la registrazione remota in un host di registri centrale, si fornisce un archivio sicuro e centralizzato per i registri ESXi. La raccolta dei file di registro dell'host in un host centrale consente di monitorare tutti gli host con un singolo strumento. È inoltre possibile eseguire analisi aggregate e cercare elementi come attacchi coordinati in più host. La registrazione in un server di registri centralizzato e protetto può impedire la manomissione dei registri e fornisce inoltre una registrazione di controllo a lungo termine.

Valori
Valore predefinito dell'installazione: non definito
Valore suggerito per la base di confronto: specifico del sito
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logHost
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logHost | Set-AdvancedSetting -Value "log_collector"

Syslog.global.certificate.checkSSLCerts

Verifica i certificati per TLS.

L'host ESXi deve verificare i certificati per gli endpoint di registrazione remota TLS. I certificati TLS garantiscono che l'endpoint sia autentico e attendibile.

Valori
Valore predefinito dell'installazione: True
Valore suggerito per la base di confronto: True
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.checkSSLCerts
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.checkSSLCerts | Set-AdvancedSetting -Value TRUE

Syslog.global.certificate.strictX509Compliance

Esegue la verifica x509 rigida per gli endpoint di registrazione remota abilitati per TLS.

L'host ESXi deve utilizzare la verifica x509 rigida per gli endpoint di registrazione remota abilitati per TLS. L'impostazione Syslog.global.certificate.strictX509Compliance esegue ulteriori controlli di validità dei certificati root CA durante la verifica.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: True
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.strictX509Compliance
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.certificate.strictX509Compliance | Set-AdvancedSetting -Value TRUE

Mem.MemEagerZero

Attiva l'eliminazione della chiave volatile.

Per impostazione predefinita, ESXi azzera le pagine allocate per macchine virtuali, applicazioni dello spazio utente e thread del kernel al momento dell'allocazione. Ciò garantisce che alle macchine virtuali o alle applicazioni dello spazio utente non vengano esposte pagine diverse da zero. Questa misura è stata applicata per impedire l'esposizione delle chiavi crittografiche di macchine virtuali o userworld ad altri client.

Tuttavia, se la memoria non viene riutilizzata, queste chiavi possono rimanere presenti nella memoria dell'host per un periodo di tempo esteso. A tale scopo, è possibile configurare l'impostazione MemEagerZero per applicare l'azzeramento delle pagine della memoria di guest e userworld quando un processo userworld o guest viene chiuso. Per i thread del kernel, gli spazi di memoria che ospitano le chiavi vengono azzerati non appena il segreto non è più necessario.

Valori
Valore predefinito dell'installazione: 0
Valore suggerito per la base di confronto: 1
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Per le macchine virtuali è necessario un tempo di arresto aggiuntivo, corrispondente alla quantità di memoria allocata.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.MemEagerZero
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.MemEagerZero | Set-AdvancedSetting -Value 1

Verifica della manutenzione attiva nella versione di ESXi

Assicurarsi che la versione di ESXi non abbia raggiunto lo stato Fine del supporto generale di VMware.

Valori
Valore predefinito dell'installazione: N/D
Valore suggerito per la base di confronto: N/D
Azione necessaria
Controllare periodicamente la versione di ESXi.
Potenziale impatto funzionale se il valore predefinito viene modificato
Leggere sempre le note di rilascio, testare e distribuire le nuove versioni del software utilizzando implementazioni in fasi.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Select-Object Name,Version,Build
Esempio di correzione del comando tramite PowerCLI
N/D

Attivazione delle origini della sincronizzazione dell'ora

Nell'host ESXi devono essere attivati e in esecuzione i servizi di sincronizzazione dell'ora.

La crittografia, la registrazione dei controlli, le operazioni del cluster, le risposta agli eventi imprevisti e le indagini forensi si basano sull'ora sincronizzata. Per garantire che l'ora sia sincronizzata tra i servizi e le operazioni, attivare i servizi NTP e/o PTP per iniziare con l'host e assicurarsi che tali servizi siano in esecuzione.

Valori
Valore predefinito dell'installazione: Interrotto, Avvio e arresto manuale
Valore suggerito per la base di confronto: In esecuzione, Arresto e avvio con host
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHostService -VMHost $ESXi | Where-Object{$_.Key -eq "ntpd"}
Esempio di correzione del comando tramite 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

Configurazione di origini di sincronizzazione dell'ora affidabili

Nell'host ESXi devono essere configurate origini di sincronizzazione dell'ora affidabili.

La crittografia, la registrazione dei controlli, le operazioni del cluster, le risposte agli eventi imprevisti e le indagini forensi si basano sull'ora sincronizzata. Il protocollo NTP (Network Time Protocol) deve avere almeno quattro origini. Se è necessario scegliere tra due origini e un'origine, è preferibile un'origine.

PTP (Precision Time Protocol) è un'alternativa a NTP che offre una precisione dell'ora inferiore al millisecondo. L'architettura di PTP è diversa da quella di NTP e non ha la stessa resilienza agli errori del server primario. È consigliabile configurare NTP come origine di backup per PTP in modo che un'origine dell'ora continui a essere disponibile, anche se la precisione è inferiore.

Valori
Valore predefinito dell'installazione: non definito
Valore suggerito per la base di confronto:

Specifico del sito o:

0.vmware.pool.ntp.org,

1.vmware.pool.ntp.org,

2.vmware.pool.ntp.org,

3.vmware.pool.ntp.org

Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHostNtpServer -VMHost $ESXi
Esempio di correzione del comando tramite 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

Utilizzo di crittografie TLS

L'host ESXi deve mantenere la riservatezza e l'integrità delle trasmissioni abilitando crittografie TLS moderne.

A partire da ESXi 8.0 Update 3, i profili TLS configurano le impostazioni TLS di client e server in modo che utilizzino solo crittografie complesse. È possibile visualizzare l'elenco completo delle crittografie e dei pacchetti di crittografia utilizzando i comandi seguenti:

$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)

Dopo aver apportato modifiche al profilo TLS, è necessario riavviare l'host ESXi. (In vSphere Client, l'host visualizza il suffisso "Riavvio obbligatorio".)

Valori
Valore predefinito dell'installazione: COMPATIBLE
Valore suggerito per la base di confronto: NIST_2024
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Le modifiche apportate ai pacchetti di crittografia influiscono sulla connettività con i sistemi esterni. Per rendere effettiva questa modifica del profilo TLS, è necessario riavviare l'host.
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.tls.server.get.invoke() | Select-Object -ExpandProperty Profile
Esempio di correzione del comando tramite 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

L'host ESXi deve abilitare la versione più recente del TLS supportata.

ESXi 8.0 attiva TLS 1.2 per impostazione predefinita, ma è possibile attivare altri protocolli se necessario. A partire da ESXi 8.0 Update 3, TLS 1.3 è attivato per impostazione predefinita.

Valori
Valore predefinito dell'installazione: sslv3,tlsv1,tlsv1.1
Valore suggerito per la base di confronto: sslv3,tlsv1,tlsv1.1
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiVPsDisabledProtocols
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiVPsDisabledProtocols | Set-AdvancedSetting -Value "sslv3,tlsv1,tlsv1.1"

Configurazione della crittografia basata su TPM

L'host ESXi deve richiedere la crittografia della configurazione basata su TPM.

La configurazione di un host ESXi è costituita da file di configurazione per ogni servizio eseguito nell'host. I file di configurazione si trovano in genere nella directory /etc/, ma possono anche trovarsi in altri spazi dei nomi. I file di configurazione contengono informazioni in fase di esecuzione relative allo stato dei servizi. Nel tempo, i valori predefiniti nei file di configurazione possono cambiare, ad esempio quando si modificano le impostazioni nell'host ESXi.

Un cron job esegue periodicamente il backup dei file di configurazione di ESXi quando ESXi viene arrestato normalmente oppure su richiesta, e crea un file di configurazione archiviato nel boot bank. Al riavvio di ESXi, il sistema legge il file di configurazione archiviato e ricrea lo stato che ESXi aveva quando è stato eseguito il backup.

Nelle versioni precedenti a vSphere 7.0 Update 2, il file di configurazione di ESXi archiviato non è crittografato. In vSphere 7.0 Update 2 e versioni successive, il file di configurazione archiviato è crittografato. Quando l'host ESXi è configurato con un Trusted Platform Module (TPM), il TPM viene utilizzato per "proteggere" la configurazione dell'host, fornendo una solida garanzia di sicurezza e ulteriore protezione dagli attacchi offline.

La crittografia della configurazione utilizza il TPM fisico quando è disponibile e supportato al momento dell'installazione o dell'aggiornamento. Se il TPM viene aggiunto o abilitato in un secondo momento, è necessario riconfigurare esplicitamente l'host ESXi in modo che utilizzi tale TPM. Una volta abilitata, la crittografia della configurazione TPM non può essere disattivata.

Valori
Valore predefinito dell'installazione: specifico del sito
Valore suggerito per la base di confronto: TPM
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
L'utilizzo dell'avvio sicuro e della crittografia della configurazione applicata da TPM rende inutilizzabili i tradizionali sforzi di ripristino della password root. Assicurarsi di non perdere l'accesso agli account amministratore di ESXi.
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.encryption.get.Invoke() | Select Mode
Esempio di correzione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.settings.encryption.set.CreateArgs()
$arguments.mode = "TPM"
$ESXcli.system.settings.encryption.set.Invoke($arguments)

Verificare che il software ESXi sia aggiornato

Tenendo aggiornate le patch di ESXi, è possibile ridurre le vulnerabilità nell'hypervisor.

Un utente malintenzionato esperto può sfruttare le vulnerabilità note quando tenta di accedere o elevare i privilegi in un host ESXi. Aggiornare sempre innanzitutto vCenter Server, se è disponibile un aggiornamento, quindi aggiornare ESXi.

Valori
Valore predefinito dell'installazione: Downlevel
Valore suggerito per la base di confronto: corrente
Azione necessaria
Controlla periodicamente il livello delle patch di ESXi.
Leggere sempre le note di rilascio, testare e distribuire le nuove versioni del software utilizzando implementazioni in fasi.
Potenziale impatto funzionale se il valore predefinito viene modificato
Le versioni di aggiornamento di vSphere aggiungono e modificano le funzionalità. Le versioni patch risolvono solo i problemi.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Select-Object Name,Version,Build
Esempio di correzione del comando tramite PowerCLI
N/D

VMkernel.Boot.execInstalledOnly

Eseguire i file binari forniti solo da un VIB.

ESXi esegue controlli di integrità dei VIB in base al livello di accettazione. Se si indica a ESXi di eseguire solo file binari provenienti da un VIB valido installato nell'host, è più difficile per gli utenti malintenzionati utilizzare toolkit predefiniti durante un tentativo di danneggiamento e aumentano le possibilità di rilevare gli attacchi.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: True
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
È possibile che il software non firmato di terze parti non venga installato o eseguito.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting VMkernel.Boot.execInstalledOnly
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting VMkernel.Boot.execInstalledOnly | Set-AdvancedSetting -Value True

Disattivazione dei servizi di gestione nelle schede VMkernel

Assicurarsi che in vSAN, in vMotion e in altre schede VMkernel dedicate non siano attivati i servizi di gestione.

Le interfacce di rete VMkernel destinate all'utilizzo specializzato possono essere configurate con funzionalità di gestione, che potrebbero vanificare l'isolamento della rete e le attività di sicurezza. Abilitare i servizi di gestione solo nelle interfacce VMkernel destinate alla gestione.

Valori
Valore predefinito dell'installazione: specifico del sito
Valore suggerito per la base di confronto: specifico del sito
Azione necessaria
Controllare i valori specifici del sito.
Potenziale impatto funzionale se il valore predefinito viene modificato
Alcune soluzioni gestite da terze parti potrebbero richiedere l'attivazione dei servizi di gestione nelle schede VMkernel.
Valutazione del comando tramite PowerCLI
Get-VMHostNetworkAdapter -VMHost $ESXi -VMKernel | Select VMHost,Name,IP,ManagementTrafficEnabled
Esempio di correzione del comando tramite PowerCLI
Get-VMHostNetworkAdapter -VMHost $ESXi -Name $vmkernel_interface | Set-VMHostNetworkAdapter -ManagementTrafficEnabled $false

Configurazione del firewall ESXi per il blocco del traffico

È necessario configurare il firewall host di ESXi in modo che blocchi il traffico di rete per impostazione predefinita.

Assicurarsi che tutto il traffico di rete in entrata e in uscita venga bloccato a meno che non sia esplicitamente consentito, riducendo così la superficie di attacco e impedendo l'accesso non autorizzato all'host.

Valori
Valore predefinito dell'installazione: Attivato
Valore suggerito per la base di confronto: attivato
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Il firewall è semplicistico, simile agli ACL dei router. Potrebbe essere necessario riconfigurare le regole riflessive.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VMHostFirewallDefaultPolicy
Esempio di correzione del comando tramite 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)

Configurazione del firewall ESXi per le reti autorizzate

Configurare il firewall ESXi in modo che consenta il traffico solo dalle reti autorizzate.

Assicurarsi che tutto il traffico di rete in entrata e in uscita venga bloccato a meno che non sia esplicitamente consentito, riducendo così la superficie di attacco e impedendo l'accesso non autorizzato all'host ESXi.

A partire da vSphere 8.0 Update 2, le regole del firewall vengono classificate come di proprietà di "utente" o "sistema" e solo le regole di proprietà dell'utente possono essere configurate. In vSphere 8 Update 2b e PowerCLI 13.2.1 sono presenti parametri aggiuntivi che possono essere sottoposti a query per automatizzare l'impostazione e la verifica delle regole configurabili.

Valori
Valore predefinito dell'installazione: connessioni consentite da qualsiasi indirizzo IP
Valore suggerito per la base di confronto: connessioni consentite solo da workstation di amministrazione e infrastruttura autorizzate
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Il firewall è semplicistico, simile agli ACL dei router. Potrebbe essere necessario riconfigurare le regole riflessive.
Valutazione del comando tramite 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) 
}
Esempio di correzione del comando tramite 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)

Impostazione del criterio Trasmissioni contraffatte su Rifiuta

Impostare il criterio Trasmissioni contraffatte su Rifiuta nel commutatore standard vSphere e nei relativi gruppi di porte.

Se il sistema operativo della macchina virtuale modifica l'indirizzo MAC, il sistema operativo può inviare frame con un indirizzo MAC di origine di rappresentazione in qualsiasi momento. La rappresentazione degli indirizzi MAC consente a un sistema operativo di eseguire attacchi dannosi nei dispositivi di una rete rappresentando una scheda di rete autorizzata dalla rete ricevente. Quando il criterio Trasmissioni contraffatte è impostato su Accetta, ESXi non confronta gli indirizzi MAC di origine ed effettivi. Per proteggersi dalla rappresentazione MAC, impostare il criterio Trasmissioni contraffatte su Rifiuta. L'host confronta quindi l'indirizzo MAC di origine trasmesso dal sistema operativo guest con l'indirizzo MAC effettivo della scheda della macchina virtuale per verificare se corrispondono. Se gli indirizzi non corrispondono, l'host ESXi elimina il pacchetto.

Valori
Valore predefinito dell'installazione: Accetta
Valore suggerito per la base di confronto: Rifiuta
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Alcuni carichi di lavoro, come le applicazioni in cluster, nonché i dispositivi e le funzionalità di rete, si basano su queste tecniche per il loro normale funzionamento. Se necessario, è possibile configurare un gruppo di porte separato che consenta questo comportamento e collegarvi solo macchine virtuali autorizzate.
Valutazione del comando tramite 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
Esempio di correzione del comando tramite 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

Impostazione del criterio Modifiche all'indirizzo MAC su Rifiuta

Impostare il criterio Modifiche all'indirizzo MAC su Rifiuta nel commutatore standard vSphere e nei relativi gruppi di porte.

Se il sistema operativo della macchina virtuale modifica l'indirizzo MAC, può inviare frame con un indirizzo MAC di origine di rappresentazione che consente di eseguire attacchi dannosi sui dispositivi di una rete rappresentando una scheda di rete autorizzata dalla rete ricevente. Per impedire alle macchine virtuali di modificare il loro indirizzo MAC effettivo, è necessario adottare misure per applicare la stabilità degli indirizzi MAC o limitare la possibilità di modificare gli indirizzi MAC. In questo modo è possibile ridurre il rischio di rappresentazione MAC e le attività potenzialmente dannose.

Valori
Valore predefinito dell'installazione: Accetta
Valore suggerito per la base di confronto: Rifiuta
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Alcuni carichi di lavoro, come le applicazioni in cluster, i dispositivi e le funzionalità di rete, le applicazioni concesse in licenza in base all'indirizzo MAC e Reduced Downtime Upgrade di vCenter Server, si basano su queste tecniche come parte normale del loro funzionamento. Se necessario, è possibile configurare un gruppo di porte separato che consenta questo comportamento e collegarvi solo macchine virtuali autorizzate.
Valutazione del comando tramite 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
Esempio di correzione del comando tramite 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

Impostazione del criterio Modalità promiscua su Rifiuta

Impostare il criterio Modalità promiscua su Rifiuta nel commutatore standard vSphere e nei relativi gruppi di porte.

Quando per un gruppo di porte è abilitata la modalità promiscua, tutte le macchine virtuali connesse a tale gruppo di porte possono leggere tutti i pacchetti trasmessi attraverso tale gruppo di porte, indipendentemente dal destinatario previsto. Prima di modificare il valore predefinito della modalità promiscua, tenere presenti il potenziale impatto e le considerazioni sulla progettazione.

Valori
Valore predefinito dell'installazione: Rifiuta
Valore suggerito per la base di confronto: Rifiuta
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Alcuni carichi di lavoro e tipi di lavoro, come i server DHCP, i dispositivi di rete e il monitoraggio della sicurezza, incorporano queste tecniche nel loro funzionamento regolare. Se necessario, è possibile configurare un gruppo di porte separato che consenta questo comportamento e collegarvi solo macchine virtuali autorizzate.
Valutazione del comando tramite 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
Esempio di correzione del comando tramite 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

Limitazione di Virtual Guest Tagging nei commutatori standard

L'host ESXi deve limitare l'utilizzo di Virtual Guest Tagging (VGT) nei commutatori standard.

Quando un gruppo di porte è impostato sulla VLAN 4095, il vSwitch passa tutti i frame di rete alle macchine virtuali collegate senza modificare i tag della VLAN. In vSphere, questo comportamento viene denominato VGT. La macchina virtuale deve elaborare le informazioni della VLAN autonomamente utilizzando un driver 802.1Q nel sistema operativo.

La VLAN 4095 deve essere implementata solo se le macchine virtuali collegate sono state autorizzate specificamente e sono in grado di gestire autonomamente i tag della VLAN. Se la VLAN 4095 è abilitata in modo non appropriato, è possibile che si verifichi un Denial of Service o che una macchina virtuale interagisca con il traffico in una VLAN non autorizzata.

Valori
Valore predefinito dell'installazione: non VLAN 4095
Valore suggerito per la base di confronto: non VLAN 4095
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard | select Name,VlanID
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VirtualPortGroup -Standard -Name $PG| Set-VirtualPortGroup -VlanID "new_VLAN"

Attivazione dell'imposizione di avvio sicuro

L'avvio sicuro fa parte dello standard di firmware UEFI. Se l'avvio sicuro UEFI è attivato, un host ESXi rifiuta di caricare qualsiasi app o driver UEFI a meno che il bootloader del sistema operativo non abbia una firma digitale valida. L'avvio sicuro per ESXi richiede il supporto del firmware. L'avvio sicuro per ESXi richiede inoltre che tutti i moduli kernel, i driver e i VIB ESXi siano firmati da VMware o da un subordinato partner.

L'avvio sicuro è attivato nel BIOS del server fisico ESXi e supportato dal bootloader dell'hypervisor. Questo controllo modifica ESXi in modo che richieda l'avvio sicuro anziché supportarlo semplicemente. Senza questa impostazione attivata e la crittografia della configurazione, un ESXi host può essere soggetto ad attacchi offline. Un utente malintenzionato può semplicemente trasferire l'unità di installazione di ESXi in un host di avvio non sicuro e avviarlo.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: True
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
L'utilizzo dell'avvio sicuro e della crittografia della configurazione applicata da TPM rende inutilizzabili i tradizionali sforzi di ripristino della password root. Assicurarsi di non perdere l'accesso agli account amministratore di ESXi.
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.encryption.get.Invoke() | Select RequireSecureBoot
Esempio di correzione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.settings.encryption.set.CreateArgs()
$arguments.requiresecureboot = $true
$ESXcli.system.settings.encryption.set.Invoke($arguments)

Disattivazione della ESXi Shell

La ESXi Shell deve essere disattivata.

Valori
Valore predefinito dell'installazione: Interrotto, Avvio e arresto manuale
Valore suggerito per la base di confronto: Interrotto, Avvio e arresto manuale
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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'}
Esempio di correzione del comando tramite 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

Imposta un timeout per terminare automaticamente le sessioni ESXi Shell e SSH inattive.

Se gli utenti dimenticano di disconnettersi dalla sessione SSH, la connessione inattiva rimane aperta indefinitamente, aumentando le possibilità che altri utenti ottengano l'accesso privilegiato all'host. È possibile configurare le sessioni della shell inattive in modo che vengano terminate automaticamente.

Valori
Valore predefinito dell'installazione: 0
Valore suggerito per la base di confronto: 900
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellInteractiveTimeOut
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellInteractiveTimeOut | Set-AdvancedSetting -Value 900

Disattivazione del servizio SNMP

Disattivare il servizio SNMP se non lo si utilizza.

Valori
Valore predefinito dell'installazione: Interrotto, Avvia e interrompi con host
Valore suggerito per la base di confronto: Interrotto, Avvio e arresto manuale
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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'}
Esempio di correzione del comando tramite PowerCLI
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'snmpd'} | Set-VMHostService -Policy Off
Get-VMHostService -VMHost $ESXi | where {$_.Key -eq 'snmpd'} | Stop-VMHostService

Disattivazione del servizio SSH

Disattivare SSH e attivarlo solo per la risoluzione dei problemi.

ESXi non è un sistema operativo multiutente simile a UNIX. ESXi è un hypervisor progettato appositamente per essere gestito da VMware Host Client, vSphere Client, le CLI e le API. In ESXi, SSH è un'interfaccia di supporto e risoluzione dei problemi e viene intenzionalmente arrestata e disattivata per impostazione predefinita. L'attivazione dell'interfaccia comporta alcuni rischi.

Valori
Valore predefinito dell'installazione: Interrotto, Avvio e arresto manuale
Valore suggerito per la base di confronto: Interrotto, Avvio e arresto manuale
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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'}
Esempio di correzione del comando tramite 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

Utilizzo dell'entropia per le operazioni crittografiche

L'host ESXi deve utilizzare entropia sufficiente per le operazioni crittografiche.

In vSphere 8.0 e versioni successive, l'implementazione dell'entropia di ESXi supporta le certificazioni FIPS 140-3 ed EAL4. Le opzioni di avvio del kernel controllano le fonti di entropia da attivare in un host ESXi.

Valori
Valore predefinito dell'installazione:

disableHwrng = FALSE

entropySources = 0

Valore suggerito per la base di confronto:

disableHwrng = FALSE

entropySources = 0

Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.settings.kernel.list.Invoke() | Where {$_.Name -eq "disableHwrng" -or $_.Name -eq "entropySources"}
Esempio di correzione del comando tramite 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)

Verifica dei livelli di accettazione del VIB e del profilo immagine

Il livello di accettazione del profilo immagine dell'host ESXi deve essere PartnerSupported o superiore.

Il livello di accettazione controlla ciò che ESXi consente di installare. Vedere Gestione dei livelli di accettazione degli host ESXi e dei bundle di installazione di vSphere per i livelli di VIB.

Né VMware né i partner VMware testano i VIB CommunitySupported e i VIB CommunitySupported non contengono una firma digitale. Per questi motivi, prestare attenzione quando si installano VIB CommunitySupported.

Valori
Valore predefinito dell'installazione: PartnerSupported
Valore suggerito per la base di confronto: PartnerSupported o superiore
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I pacchetti CommunitySupported non sono firmati e non possono essere installati.
Valutazione del comando tramite PowerCLI
(Get-EsxCli -VMHost $ESXi -V2).software.acceptance.get.Invoke()
Esempio di correzione del comando tramite 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

L'host ESXi deve sbloccare gli account dopo un periodo di timeout specificato.

Security.AccountUnlockTime garantisce che gli account utente nell'host ESXi vengano sbloccati automaticamente dopo un periodo di inattività definito. Imponendo lo sblocco automatico degli account, le organizzazioni possono mantenere un equilibrio tra sicurezza e usabilità, assicurandosi che gli account inattivi vengano riattivati tempestivamente e riducendo al minimo la possibilità di accessi non autorizzati.

Valori
Valore predefinito dell'installazione: 900 secondi
Valore suggerito per la base di confronto: 900 secondi
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountUnlockTime
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountUnlockTime | Set-AdvancedSetting -Value 900

Security.AccountLockFailures

Imposta il numero massimo di tentativi di accesso non riusciti prima che l'account venga bloccato.

Protegge dagli attacchi brute-force e dai tentativi di accesso non autorizzati disabilitando temporaneamente l'account interessato e impedendo ulteriori tentativi di accesso finché il periodo di blocco non scade o non viene reimpostato manualmente da un amministratore. Per sbloccare un account bloccato, è necessario eseguire un'azione amministrativa o attendere che l'account venga sbloccato automaticamente se viene utilizzata l'impostazione Security.AccountUnlockTime.

Valori
Valore predefinito dell'installazione: 5
Valore suggerito per la base di confronto: 5
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Una soglia bassa per gli errori di accesso può aumentare gli attacchi di tipo Denial of Service, intenzionali o meno, come i tentativi di connessione SSH.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountLockFailures
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.AccountLockFailures | Set-AdvancedSetting -Value 5

Security.PasswordHistory

Non consente il riutilizzo della password.

Questa impostazione impedisce il riutilizzo delle password precedenti, riducendo in tal modo le potenziali violazioni tramite le vecchie credenziali compromesse.

Valori
Valore predefinito dell'installazione: 5
Valore suggerito per la base di confronto: 5
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordHistory
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordHistory | Set-AdvancedSetting -Value 5

Security.PasswordMaxDays

Imposta il numero massimo di giorni che possono trascorrere tra una modifica della password e l'altra.

Le moderne procedure consigliate per le password, come descritto nella sezione 5.1.1.2 del NIST 800-63B, e altre linee guida pertinenti, affermano che l'imposizione di modifiche periodiche delle password non migliora la sicurezza quando le password dispongono già di un'entropia adeguata.

Valori
Valore predefinito dell'installazione: 99999
Valore suggerito per la base di confronto: 99999
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordMaxDays
Comando PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordMaxDays | Set-AdvancedSetting -Value 99999

Security.PasswordQualityControl

Impone la complessità della password.

Le indicazioni come quelle della sezione 5.1.1.2 del NIST 800-63B suggeriscono che le regole di composizione, che impongono ad esempio combinazioni di classi di caratteri, non devono essere applicate ai sistemi perché spesso non riescono a migliorare la sicurezza della password e scoraggiano l'adozione di passphrase più sicure.

Le regole di complessità della password sono applicabili a tutti gli utenti ESXi, incluso l'utente root. Tuttavia, quando l'host ESXi fa parte di un dominio, queste regole non si applicano agli utenti di Active Directory (AD) perché i criteri delle password per gli utenti di AD vengono applicati dal sistema di AD.

Valori
Valore predefinito dell'installazione: retry=3 min=disabled,disabled,disabled,7,7
Valore suggerito per la base di confronto: retry=3 min=disabled,15,15,15,15 max=64 similar=deny passphrase=3
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
È possibile che altri prodotti e servizi all'interno dell'ecosistema VMware non prevedano modifiche dei requisiti di complessità della password e che la loro installazione non riesca.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Security.PasswordQualityControl
Comando 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

Elimina l'avviso relativo a una potenziale vulnerabilità di sicurezza dell'hyperthreading.

Gli avvisi di sicurezza dell'hyperthreading indicano vulnerabilità della CPU non risolte nel sistema. La decisione di ignorare questi avvisi potrebbe mascherare i potenziali rischi. Assicurarsi che le correzioni dell'hardware siano allineate al rischio accettato dell'organizzazione. Quando si elimina un avviso, documentare la decisione e i motivi.

Valori
Valore predefinito dell'installazione: 0
Valore suggerito per la base di confronto: 0
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.SuppressHyperthreadWarning
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.SuppressHyperthreadWarning | Set-AdvancedSetting -Value 0

UserVars.DcuiTimeOut

Imposta un timeout per terminare automaticamente le sessioni DCUI inattive.

DCUI consente l'accesso diretto all'host ESXi per le attività di gestione. Per impedire un utilizzo involontario di DCUI dalle sessioni di accesso rimanenti, terminare le connessioni inattive.

Valori
Valore predefinito dell'installazione: 600
Valore suggerito per la base di confronto: 600
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.DcuiTimeOut
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.DcuiTimeOut | Set-AdvancedSetting -Value 600

Disattivazione del servizio CIM

Il servizio CIM di ESXi deve essere disattivato.

I servizi che non sono in uso e non sono essenziali per le operazioni devono essere disattivati.

Valori
Valore predefinito dell'installazione: Interrotto, Avvia e interrompi con host
Valore suggerito per la base di confronto: Interrotto, Avvio e arresto manuale
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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'}
Esempio di correzione del comando tramite 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

Imposta il livello informativo della registrazione.

Quando si imposta il livello della registrazione, assicurarsi che nei registri di controllo siano presenti informazioni sufficienti per eseguire analisi diagnostiche e indagini forensi.

Valori
Valore predefinito dell'installazione: Info
Valore suggerito per la base di confronto: Info
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I registri utilizzano ulteriore spazio di storage.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.log.level
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.log.level | Set-AdvancedSetting -Value info

Syslog.global.logLevel

Registra informazioni sufficienti per gli eventi.

Senza dati di registrazione sufficienti, gli indicatori critici di compromissione possono passare inosservati, causando una maggiore vulnerabilità e potenziali errori di risposta in caso di eventi imprevisti relativi alla sicurezza informatica.

Valori
Valore predefinito dell'installazione: errore
Valore suggerito per la base di confronto: Info
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
I registri utilizzano ulteriore spazio di storage.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logLevel
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Syslog.global.logLevel | Set-AdvancedSetting -Value info

Config.HostAgent.plugins.solo.enableMob

Disattiva Managed Object Browser (MOB).

I servizi che non sono in uso e non sono essenziali per le operazioni devono essere disattivati.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: False
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.plugins.solo.enableMob
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Config.HostAgent.plugins.solo.enableMob | Set-AdvancedSetting -Value False

Net.BlockGuestBPDU

Blocca le trasmissioni BPDU (Bridge Protocol Data Unit) del sistema operativo guest.

Le trasmissioni BPDU vengono utilizzate per trasmettere informazioni STP (Spanning Tree Protocol) e rilevare loop di rete. BPDU Guard e Portfast vengono in genere attivati nel commutatore fisico direttamente connesso all'host ESXi per ridurre il ritardo della convergenza di Spanning Tree.

Tuttavia, se un pacchetto BPDU viene inviato da una macchina virtuale nell'host ESXi al commutatore fisico configurato, può causare un blocco a catena di tutte le interfacce di uplink dall'host ESXi. Per impedire questo tipo di blocco, è possibile attivare il filtro BPDU nell'host ESXi per eliminare tutti i pacchetti BPDU inviati al commutatore fisico.

I commutatori virtuali standard e distribuiti non supportano STP e non generano BPDU.

Valori
Valore predefinito dell'installazione: 1
Valore suggerito per la base di confronto: 1
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Alcuni carichi di lavoro orientati alla rete possono generare legittimamente pacchetti BPDU. Prima di abilitare il filtro BPDU, verificare che nell'host ESXi non siano presenti pacchetti BPDU legittimi generati dalle macchine virtuali. Se il filtro BPDU è attivato in questa situazione, l'abilitazione del rifiuto delle trasmissioni contraffatte nel gruppo di porte del commutatore virtuale aggiunge protezione contro i loop Spanning Tree.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BlockGuestBPDU
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BlockGuestBPDU | Set-AdvancedSetting -Value 1

Net.DVFilterBindIpAddress

Limita l'utilizzo delle API di rete dvFilter.

Se non si utilizza un prodotto come VMware NSX che usa l'API di rete dvFilter, non configurare l'host ESXi per l'invio di informazioni di rete a un indirizzo IP. Se si abilita l'API e si fa riferimento a un indirizzo IP compromesso, è possibile che venga fornito l'accesso non autorizzato alla rete ad altre macchine virtuali nell'host ESXi.

Se si utilizza un prodotto che si basa su questa API, è importante verificare che l'host ESXi sia stato configurato correttamente per garantire la comunicazione di rete sicura.

Valori
Valore predefinito dell'installazione: ""
Valore suggerito per la base di confronto: ""
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.DVFilterBindIpAddress
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.DVFilterBindIpAddress | Set-AdvancedSetting -Value ""

UserVars.ESXiShellTimeOut

Imposta un timeout per limitare per quanto tempo è consentita l'esecuzione dei servizi ESXi Shell e SSH.

Questa impostazione di sistema avanzata definisce un intervallo di tempo trascorso il quale i servizi ESXi Shell e SSH vengono terminati automaticamente.

Valori
Valore predefinito dell'installazione: 0
Valore suggerito per la base di confronto: 600
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellTimeOut
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.ESXiShellTimeOut | Set-AdvancedSetting -Value 600

UserVars.SuppressShellWarning

Elimina l'avviso per le interfacce di supporto e risoluzione dei problemi.

L'host ESXi non deve eliminare gli avvisi relativi all'attivazione della ESXi Shell.

Gli avvisi che indicano che SSH o la ESXi Shell sono attivati possono essere indizi di un attacco in corso. È importante assicurarsi che SSH e la ESXi Shell siano disattivati e che questa impostazione di sistema avanzata non sia attivata.

Valori
Valore predefinito dell'installazione: 0
Valore suggerito per la base di confronto: 0
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.SuppressShellWarning
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.SuppressShellWarning | Set-AdvancedSetting -Value 0

Configurazione del daemon Secure Shell di ESXiper FIPS

Il daemon Secure Shell (SSH) dell'host ESXi deve essere configurato in modo da utilizzare solo crittografie convalidate FIPS 140-2/140-3. Quando vengono attivati, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
Valore suggerito per la base di confronto: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ciphers'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon SSH di ESXi per FIPS

Il daemon SSH dell'host ESXi deve utilizzare moduli crittografici convalidati FIPS 140-2/140-3.

OpenSSH nell'host ESXi è fornito con un modulo crittografico convalidato FIPS 140-2/140-3, attivato per impostazione predefinita. Per motivi di compatibilità con le versioni precedenti, è possibile disattivare questo modulo. Controllare e correggere se necessario.

Valori
Valore predefinito dell'installazione: True
Valore suggerito per la base di confronto: True
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.security.fips140.ssh.get.Invoke()
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi in modo che non consenta le porte del gateway

Il daemon Secure Shell (SSH) dell'host ESXi deve essere configurato in modo da non consentire le porte del gateway.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'gatewayports'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi in modo che non utilizzi l'autenticazione basata sull'host

Il daemon Secure Shell (SSH) dell'host ESXi non deve consentire l'autenticazione basata sull'host.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'hostbasedauthentication'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per impostare un conteggio del timeout

Il daemon Secure Shell (SSH) dell'host ESXi deve impostare un conteggio del timeout nelle sessioni inattive.

Quando è attivato, è necessario proteggere i servizi di sistema. Il conteggio del timeout, moltiplicato per l'intervallo di timeout di inattività, indica il numero totale di secondi per cui la sessione può rimanere inattiva prima di essere disconnessa.

Valori
Valore predefinito dell'installazione: 3
Valore suggerito per la base di confronto: 3
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientalivecountmax'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per impostare un intervallo di timeout

Il daemon Secure Shell (SSH) dell'host ESXi deve impostare un conteggio del timeout nelle sessioni inattive.

Quando è attivato, è necessario proteggere i servizi di sistema. Il conteggio del timeout, moltiplicato per l'intervallo di timeout di inattività, è il numero totale di secondi per cui la sessione può rimanere inattiva prima di essere disconnessa.

Valori
Valore predefinito dell'installazione: 200
Valore suggerito per la base di confronto: 200
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'clientaliveinterval'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per la visualizzazione di un banner di accesso

Il daemon Secure Shell (SSH) dell'host ESXi deve visualizzare il banner di accesso al sistema prima di concedere l'accesso al sistema.

Quando è attivato, è necessario proteggere i servizi di sistema. Per specificare un testo per questo banner, è necessario configurare anche l'impostazione Config.Etc.issue.

Valori
Valore predefinito dell'installazione: /etc/issue
Valore suggerito per la base di confronto: /etc/issue
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'banner'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per ignorare i file .rhosts

Il daemon Secure Shell (SSH) dell'host ESXi deve ignorare i file .rhosts.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: Sì
Valore suggerito per la base di confronto: Sì
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'ignorerhosts'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per disattivare l'inoltro locale del flusso

Il daemon Secure Shell (SSH) dell'host ESXi deve disattivare l'inoltro locale del flusso.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'allowstreamlocalforwarding'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi per disattivare l'inoltro TCP

Il daemon Secure Shell (SSH) dell'host ESXi deve disattivare l'inoltro TCP.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'allowtcpforwarding'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi in modo che non consenta i tunnel

Il daemon Secure Shell (SSH) dell'host ESXi non deve consentire i tunnel.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permittunnel'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Configurazione del daemon Secure Shell di ESXi in modo che non consenta le impostazioni dell'ambiente utente

Il daemon Secure Shell (SSH) dell'host ESXi non deve consentire le impostazioni dell'ambiente utente.

Quando è attivato, è necessario proteggere i servizi di sistema.

Valori
Valore predefinito dell'installazione: No
Valore suggerito per la base di confronto: No
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'permituserenvironment'} | Select-Object -ExpandProperty Value
Esempio di correzione del comando tramite 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)

Disattivazione del servizio Service Location Protocol

Disattivare il servizio SLP (Service Location Protocol) se non lo si utilizza.

Valori
Valore predefinito dell'installazione: Interrotto, Avvio e arresto manuale
Valore suggerito per la base di confronto: Interrotto, Avvio e arresto manuale
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite 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'}
Esempio di correzione del comando tramite 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

Limita TPS (Transparent Page Sharing) alle macchine virtuali configurate con sched.mem.pshare.salt.

Transparent Page Sharing (TPS) è un metodo per ridurre il footprint di memoria delle macchine virtuali. In condizioni altamente controllate, gli autori degli attacchi possono utilizzare TPS per ottenere accesso non autorizzato ai dati nelle macchine virtuali adiacenti. Le macchine virtuali in cui non è configurata l'impostazione sched.mem.pshare.salt non possono condividere memoria con altre macchine virtuali. Pagine di grandi dimensioni, ovvero l'ottimizzazione delle prestazioni nell'hypervisor su molte CPU moderne, non è compatibile con TPS.

Valori
Valore predefinito dell'installazione: 2
Valore suggerito per la base di confronto: 2
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.ShareForceSalting
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Mem.ShareForceSalting | Set-AdvancedSetting -Value 2

UserVars.HostClientSessionTimeout

Imposta un timeout per terminare automaticamente le sessioni client dell'host ESXi inattive.

L'host ESXi deve terminare automaticamente le sessioni client dell'host inattive. Questa procedura consente di ridurre i potenziali rischi per la sicurezza, facendo in modo che le sessioni automatiche, che potrebbero essere sfruttate da utenti non autorizzati o da software dannosi, non vengano lasciate aperte indefinitamente.

Valori
Valore predefinito dell'installazione: 900
Valore suggerito per la base di confronto: 900
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.HostClientSessionTimeout
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting UserVars.HostClientSessionTimeout | Set-AdvancedSetting -Value 900

Net.BMCNetworkEnable

Disattiva le interfacce di rete di gestione dell'hardware virtuale.

I controller di gestione dell'hardware spesso presentano NIC virtuali o USB all'host ESXi. Queste possono essere utilizzate come backdoor e devono essere disattivate sia nella configurazione dell'hardware sia nella configurazione di ESXi.

Valori
Valore predefinito dell'installazione: 1
Valore suggerito per la base di confronto: 0
Azione necessaria
Modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Questa funzionalità potrebbe essere richiesta da alcune soluzioni gestite da terze parti.
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BMCNetworkEnable
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-AdvancedSetting Net.BMCNetworkEnable | Set-AdvancedSetting -Value 0

Attivazione dell'autenticazione CHAP bidirezionale/reciproca per il traffico iSCSI

Impostare l'autenticazione della scheda di storage iSCSI su "Utilizza CHAP bidirezionale" e fornire le credenziali.

Il protocollo CHAP reciproco fornisce un ulteriore livello di protezione richiedendo sia all'iniziatore (client) sia alla destinazione (server) di verificare le loro identità reciprocamente, garantendo in tal modo che i dati trasmessi tra i due non vengano intercettati o alterati da entità non autorizzate.

Valori
Valore predefinito dell'installazione: non configurato
Valore suggerito per la base di confronto: attivato
Azione necessaria
Se si utilizza questa funzionalità, modificare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Nessuno
Valutazione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Select VMHost, Device, ChapType, @{N="CHAPName";E={$_.AuthenticationProperties.ChapName}}
Esempio di correzione del comando tramite PowerCLI
Get-VMHost -Name $ESXi | Get-VMHostHba | Where {$_.Type -eq "Iscsi"} | Set-VMHostHba parameters

Per informazioni sui parametri, vedere Guida di riferimento di ESXCLI.

Non archiviare le chiavi di crittografia negli host ESXi senza proteggere l'accesso fisico

L'host ESXi non deve archiviare le chiavi di crittografia nell'host ESXi stesso senza proteggere l'accesso fisico all'host.

La persistenza delle chiavi è un meccanismo che utilizza un Trusted Platform Module (TPM) locale per archiviare le chiavi del provider di chiavi standard, in genere disponibili solo in un sistema di gestione chiavi (KMS) esterno. Anche se questa configurazione può migliorare la gestione delle dipendenze, l'utilizzo della persistenza delle chiavi modifica i rischi di crittografia. Se un utente malintenzionato ruba l'host, può accedere alle chiavi di crittografia per i dati in tale host, ignorando i controlli di accesso del KMS esterno. Pertanto, utilizzare la persistenza delle chiavi solo quando è possibile garantire la sicurezza fisica degli host. Se gli host fisici non sono sicuri e un utente malintenzionato può rubare l'host, l'autore dell'attacco ha anche i mezzi per accedere ai carichi di lavoro crittografati e utilizzarli.

La persistenza delle chiavi e vSphere Native Key Provider vengono spesso considerati analoghi perché entrambi archiviano i dati di crittografia negli host. Tuttavia, vSphere Native Key Provider non utilizza la persistenza delle chiavi, quindi non è interessato dalla disattivazione della persistenza delle chiavi. Come la persistenza delle chiavi, anche vSphere Native Key Provider richiede un'attenta considerazione della sicurezza fisica. Vedere Riferimento ai controlli di sicurezza di progettazione del sistema vSphere.

Valori
Valore predefinito dell'installazione: False
Valore suggerito per la base di confronto: False
Azione necessaria
Controllare il valore predefinito dell'installazione.
Potenziale impatto funzionale se il valore predefinito viene modificato
Il comportamento predefinito è quello desiderato. La modifica del comportamento predefinito potrebbe influire negativamente sulla riservatezza negli ambienti in cui è possibile l'accesso fisico da parte di utenti malintenzionati.
Valutazione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$ESXcli.system.security.keypersistence.get.invoke() | Select-Object -ExpandProperty Enabled
Esempio di correzione del comando tramite PowerCLI
$ESXcli = Get-EsxCli -VMHost $ESXi -V2
$arguments = $ESXcli.system.security.keypersistence.disable.CreateArgs()
$arguments.removeallstoredkeys = $true
$ESXcli.system.security.keypersistence.disable.Invoke($arguments)