Benchmark di Azure Linux 3.0 per Center for Internet Security (CIS)

Importante

Questo articolo si applica solo ad Azure Linux 3.0 e all'immagine dell'host contenitore Linux 3.0 di Azure usata dal servizio Azure Kubernetes. Gli stati delle raccomandazioni e le linee guida riflettono l'immagine CIS Azure Linux 3.0 Benchmark v1.0 e un'immagine Azure Linux 3.0 temporizzato (rilasciata il 2 luglio 2025). Potrebbero non essere applicabili ad altre versioni linux di Azure, ad esempio Azure Linux 2.0. Verificare la versione del sistema operativo e la versione benchmark prima di applicare indicazioni.

La configurazione del sistema operativo di sicurezza applicata all'immagine dell'host contenitore Linux di Azure per il servizio Azure Kubernetes si basa sulla baseline di sicurezza linux di Azure, allineata al benchmark CIS. Come servizio sicuro, il servizio Azure Kubernetes è conforme agli standard SOC, ISO, PCI DSS e HIPAA. Per altre informazioni sulla sicurezza dell'host contenitore Linux di Azure, vedere Concetti di sicurezza per i cluster nel servizio Azure Kubernetes. Per altre informazioni sul benchmark CIS, vedere Center for Internet Security (CIS) Benchmarks (Center for Internet Security). Per altre informazioni sulle baseline di sicurezza di Azure per Linux, vedere Baseline di sicurezza di Linux.

Recommendations

La tabella include quattro sezioni:

  • ID CIS: ID regola associato a ognuna delle regole di base.
  • Descrizione della raccomandazione: Descrizione della raccomandazione rilasciata dal benchmark CIS.
  • Livello: L1, o Livello 1, consiglia requisiti di sicurezza di base essenziali che possono essere configurati in qualsiasi sistema e devono causare un'interruzione minima o nessuna interruzione del servizio o funzionalità ridotte.
  • Stato:
    • Pass : la raccomandazione è stata applicata.
    • Errore: la raccomandazione non è stata applicata.
    • N/A : la raccomandazione è correlata ai requisiti di autorizzazione per i file manifesto non rilevanti per il servizio Azure Kubernetes.
    • Dipende dall'ambiente : la raccomandazione viene applicata nell'ambiente specifico dell'utente e non è controllata dal servizio Azure Kubernetes.
    • Controllo equivalente : la raccomandazione è stata implementata in modo equivalente diverso.
  • Ragione:
    • Potenziale impatto sulle operazioni : la raccomandazione non è stata applicata perché avrebbe un effetto negativo sul servizio.
    • Altre informazioni: la raccomandazione è coperta da un altro controllo nell'ambiente di calcolo cloud di Azure.

Benchmark di Azure Linux 3.0

Di seguito sono riportati i risultati delle raccomandazioni CIS Azure Linux 3.0 Benchmark v1.0 in base alle regole CIS:

CIS ID Descrizione della raccomandazione stato Motivo
1.1.1.1 Verificare che il modulo kernel cramfs non sia disponibile Riuscito
1.1.1.2 Verificare che il modulo kernel freevxfs non sia disponibile Riuscito
1.1.1.3 Verificare che il modulo kernel di hfs non sia disponibile Riuscito
1.1.1.4 Verificare che il modulo kernel hfsplus non sia disponibile Riuscito
1.1.1.5 Verificare che il modulo kernel jffs2 non sia disponibile Riuscito
1.1.1.6 Verificare che i moduli kernel dei file system inutilizzati non siano disponibili N/A
1.1.2.1.1 Verificare che /tmp sia una partizione separata Riuscito
1.1.2.1.2 Verificare che l'opzione nodev sia impostata nella partizione /tmp Riuscito
1.1.2.1.3 Verificare che l'opzione nosuid impostata nella partizione /tmp Riuscito
1.1.2.2.1 Verificare che /dev/shm sia una partizione separata Riuscito
1.1.2.2.2 Verificare che l'opzione nodev sia impostata nella partizione /dev/shm Riuscito
1.1.2.2.3 Verificare che l'opzione nosuid impostata nella partizione /dev/shm Riuscito
1.2.1.1 Verificare che le chiavi gpg siano configurate N/A
1.2.1.2 Verificare che gpgcheck sia configurato Riuscito
1.2.1.3 Verificare che gpgcheck TDNF sia attivato a livello globale Riuscito
1.2.1.4 Verificare che i repository di Gestione pacchetti siano configurati N/A
1.3.1 Verificare che la casualità del layout dello spazio degli indirizzi sia abilitata Fallire L'ID CIS 1.3.1 richiede al sistema operativo di impostare in modo esplicito una configurazione per abilitare ASLR. In Azure Linux 3.0 si tratta del comportamento predefinito. Tuttavia, per soddisfare questo benchmark e assicurarsi che il sistema operativo sia resiliente rispetto alle modifiche predefinite upstream, questa configurazione verrà impostata in modo esplicito in una versione futura.
1.3.2 Assicurarsi che ptrace_scope sia limitato Riuscito
1.3.3 Assicurarsi che le backtrace del dump di base siano disabilitate Riuscito
1.3.4 Verificare che l'archiviazione di dump principale sia disabilitata Riuscito
1.4.1 Assicurarsi che il banner di avviso di accesso locale sia configurato correttamente Riuscito
1.4.2 Assicurarsi che il banner di avviso di accesso remoto sia configurato correttamente Riuscito
1.4.3 Verificare che l'accesso a /etc/motd sia configurato Riuscito
1.4.4 Assicurarsi che l'accesso a /etc/issue sia configurato Riuscito
1.4.5 Verificare che l'accesso a /etc/issue.net sia configurato Riuscito
2.1.1 Verificare che la sincronizzazione dell'ora sia in uso Riuscito
2.1.2 Verificare che chrony sia configurato Riuscito
2.2.1 Assicurarsi che xinetd non sia installato Riuscito
2.2.2 Verificare che xorg-x11-server-common non sia installato Riuscito
2.2.3 Assicurarsi che avahi non sia installato Riuscito
2.2.4 Verificare che un server di stampa non sia installato Riuscito
2.2.5 Verificare che un server dhcp non sia installato Riuscito
2.2.6 Verificare che un server DNS non sia installato Riuscito
2.2.7 Verificare che il client FTP non sia installato Riuscito
2.2.8 Verificare che un server FTP non sia installato Riuscito
2.2.9 Verificare che un server tftp non sia installato Riuscito
2.2.10 Verificare che un server Web non sia installato Riuscito
2.2.11 Verificare che il server IMAP e POP3 non sia installato Riuscito
2.2.12 Verificare che Samba non sia installato Riuscito
2.2.13 Verificare che il server proxy HTTP non sia installato Riuscito
2.2.14 Verificare che net-snmp non sia installato o che il servizio snmpd non sia abilitato Riuscito
2.2.15 Verificare che il server NIS non sia installato Riuscito
2.2.16 Verificare che telnet-server non sia installato Riuscito
2.2.17 Verificare che l'agente di trasferimento della posta sia configurato per la modalità solo locale Riuscito
2.2.18 Verificare che nfs-utils non sia installato o che il servizio nfs-server sia mascherato Riuscito
2.2.19 Verificare che rsync-daemon non sia installato o che il servizio rsyncd sia mascherato Riuscito
2.3.1 Verificare che il client NIS non sia installato Riuscito
2.3.2 Verificare che il client rsh non sia installato Riuscito
2.3.3 Verificare che il client talk non sia installato Riuscito
2.3.4 Verificare che il client telnet non sia installato Riuscito
2.3.5 Verificare che il client LDAP non sia installato Riuscito
2.3.6 Verificare che il client TFTP non sia installato Riuscito
3.1.1 Verificare che l'invio di pacchetti sia disabilitato Riuscito
3.1.2 Assicurarsi che le risposte icmp fittizie vengano ignorate Riuscito
3.1.3 Assicurarsi che le richieste icmp broadcast vengano ignorate Riuscito
3.1.4 Verificare che i reindirizzamenti icmp non siano accettati Riuscito
3.1.5 Assicurarsi che i reindirizzamenti icmp sicuri non siano accettati Riuscito
3.1.6 Verificare che il filtro del percorso inverso sia abilitato Riuscito
3.1.7 Verificare che i pacchetti indirizzati all'origine non siano accettati Riuscito
3.1.8 Assicurarsi che i pacchetti sospetti vengano registrati Riuscito
3.1.9 Verificare che i cookie tcp syn siano abilitati Riuscito
3.1.10 Verificare che gli annunci router ipv6 non siano accettati Riuscito
4.1.1 Verificare che iptables sia installato Riuscito
4.1.2 Verificare che le tabelle nftable non siano in uso Riuscito
4.1.3 Assicurarsi che il firewall non sia in uso Riuscito
5.1.1 Verificare che il daemon cron sia abilitato Riuscito
5.1.2 Verificare che le autorizzazioni per /etc/crontab siano configurate Riuscito
5.1.3 Verificare che le autorizzazioni per /etc/cron.hourly siano configurate Riuscito
5.1.4 Verificare che le autorizzazioni per /etc/cron.daily siano configurate Riuscito
5.1.5 Verificare che le autorizzazioni per /etc/cron.weekly siano configurate Riuscito
5.1.6 Verificare che le autorizzazioni per /etc/cron.monthly siano configurate Riuscito
5.1.7 Verificare che le autorizzazioni per /etc/cron.d siano configurate Riuscito
5.1.8 Assicurarsi che cron sia limitato agli utenti autorizzati Riuscito
5.1.9 Assicurarsi che at sia limitato agli utenti autorizzati Riuscito
5.2.1 Assicurarsi che sia configurato l'accesso a /etc/ssh/sshd_config Riuscito
5.2.2 Assicurarsi che l'accesso ai file di chiave host privata SSH sia configurato Riuscito
5.2.3 Assicurarsi che l'accesso ai file di chiave host pubblica SSH sia configurato Riuscito
5.2.4 Verificare che le crittografie sshd siano configurate Riuscito
5.2.5 Assicurarsi che sshd KexAlgorithms sia configurato Riuscito
5.2.6 Verificare che siano configurati i controller di configurazione sshd Riuscito
5.2.7 Verificare che l'accesso sshd sia configurato Riuscito
5.2.8 Verificare che il banner sshd sia configurato Riuscito
5.2.9 Verificare che clientAliveInterval e ClientAliveCountMax sshd siano configurati Riuscito
5.2.10 Verificare che sshd HostbasedAuthentication sia disabilitato Riuscito
5.2.11 Verificare che sshd IgnoreRhosts sia abilitato Riuscito
5.2.12 Assicurarsi che sshd LoginGraceTime sia configurato Riuscito
5.2.13 Verificare che sshd LogLevel sia configurato Riuscito
5.2.14 Verificare che sia configurato sshd MaxAuthTries Riuscito
5.2.15 Assicurarsi che sshd MaxStartups sia configurato Riuscito
5.2.16 Verificare che sshd MaxSessions sia configurato Riuscito
5.2.17 Verificare che sshd PermitEmptyPasswords sia disabilitato Riuscito
5.2.18 Verificare che sshd PermitRootLogin sia disabilitato Riuscito
5.2.19 Verificare che sshd PermitUserEnvironment sia disabilitato Riuscito
5.2.20 Assicurarsi che sshd UsePAM sia abilitato Riuscito
5.3.1 Verificare che sudo sia installato Riuscito
5.3.2 Assicurarsi che l'autenticazione di nuova autenticazione per l'escalation dei privilegi non sia disabilitata a livello globale Riuscito
5.3.3 Verificare che il timeout dell'autenticazione sudo sia configurato correttamente Riuscito
5.4.1 Verificare che i requisiti di creazione delle password siano configurati Riuscito
5.4.2 Verificare che il blocco per i tentativi di password non riusciti sia configurato Riuscito
5.4.3 Verificare che l'algoritmo di hash delle password sia SHA-512 Riuscito
5.4.4 Verificare che il riutilizzo delle password sia limitato Riuscito
5.5.1.1 Verificare che la scadenza della password sia di 365 giorni o meno Riuscito
5.5.1.2 Verificare che siano configurati giorni minimi tra le modifiche della password Riuscito
5.5.1.3 Verificare che i giorni di avviso di scadenza della password siano 7 o più Riuscito
5.5.1.4 Assicurarsi che il blocco password inattivo sia di 30 giorni o meno Riuscito
5.5.1.5 Verificare che la data dell'ultima modifica della password di tutti gli utenti sia precedente Riuscito
5.5.2 Assicurarsi che gli account di sistema siano protetti Riuscito
5.5.3 Verificare che il gruppo predefinito per l'account radice sia GID 0 Riuscito
5.5.4 Verificare che umask utente predefinito sia 027 o più restrittivo Riuscito
6.1.1.1.1 Verificare che il servizio journald sia attivo Riuscito
6.1.1.1.2 Verificare che l'accesso al file di log journald sia configurato N/A
6.1.1.1.3 Verificare che ForwardToSyslog journald sia configurato Riuscito
6.1.1.1.4 Assicurarsi che il servizio systemd-journal-remote non sia in uso Riuscito
6.1.1.1.5 Verificare che l'archiviazione journald sia configurata Riuscito
6.1.1.1.6 Verificare che la compressione journald sia configurata Riuscito
6.1.2.1 Verificare che il servizio rsyslog sia abilitato e attivo Riuscito
6.1.2.2 Verificare che la modalità di creazione del file di log rsyslog sia configurata Riuscito
6.1.2.3 Assicurarsi che rsyslog non sia configurato per ricevere i log da un client remoto Riuscito
6.1.3.1 Assicurarsi che sia stato configurato l'accesso a tutti i file di log Riuscito
6.2 Verificare che logrotate sia configurato N/A
7.1.1 Assicurarsi che l'accesso a /etc/passwd sia configurato Riuscito
7.1.2 Assicurarsi che l'accesso a /etc/passwd- sia configurato Riuscito
7.1.3 Verificare che l'accesso a /etc/group sia configurato Riuscito
7.1.4 Assicurarsi che l'accesso a /etc/group- sia configurato Riuscito
7.1.5 Assicurarsi che l'accesso a /etc/shadow sia configurato Riuscito
7.1.6 Assicurarsi che l'accesso a /etc/shadow- sia configurato Riuscito
7.1.7 Assicurarsi che l'accesso a /etc/gshadow sia configurato Riuscito
7.1.8 Assicurarsi che l'accesso a /etc/gshadow- sia configurato Riuscito
7.1.9 Assicurarsi che l'accesso a /etc/shells sia configurato Riuscito
7.1.10 Assicurarsi che l'accesso a /etc/security/opasswd sia configurato Riuscito
7.1.11 Assicurarsi che i file e le directory scrivibili a livello globale siano protetti Riuscito
7.1.12 Assicurarsi che non esistano file o directory senza un proprietario e un gruppo Riuscito
7.2.1 Assicurarsi che gli account in /etc/passwd usino password ombreggiate Riuscito
7.2.2 Verificare che i campi password /etc/shadow non siano vuoti Riuscito
7.2.3 Verificare che tutti i gruppi in /etc/passwd esistano in /etc/group Riuscito
7.2.4 Assicurarsi che non esistano UID duplicati Riuscito
7.2.5 Assicurarsi che non esistano GID duplicati Riuscito
7.2.6 Assicurarsi che non esistano nomi utente duplicati Riuscito
7.2.7 Assicurarsi che non esistano nomi di gruppo duplicati Riuscito
7.2.8 Verificare che le home directory utente interattive locali siano configurate Riuscito
7.2.9 Verificare che l'accesso ai file dot dell'utente interattivo locale sia configurato Riuscito

Passaggi successivi

Per altre informazioni sulla sicurezza dell'host contenitore Linux di Azure, vedere gli articoli seguenti: