Benchmark Linux di Azure del Center for Internet Security (CIS)
La configurazione di sicurezza del sistema operativo 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 Benchmark del Center for Internet Security (CIS). Per altre informazioni sulle baseline di sicurezza di Azure per Linux, vedere Baseline di sicurezza di Linux.
Azure Linux 2.0
Questo sistema operativo host contenitore Linux di Azure si basa sull'immagine Linux 2.0 di Azure con configurazioni di sicurezza predefinite applicate.
Come parte del sistema operativo ottimizzato per la sicurezza:
- Il servizio Azure Kubernetes e Linux di Azure offrono un sistema operativo host ottimizzato per la sicurezza per impostazione predefinita, senza alcuna opzione per selezionare un sistema operativo alternativo.
- Il sistema operativo host ottimizzato per la sicurezza viene compilato e gestito in modo specifico per il servizio Azure Kubernetes e non è supportato all'esterno della piattaforma del servizio Azure Kubernetes.
- I driver del modulo kernel non necessari sono stati disabilitati nel sistema operativo per ridurre la superficie di attacco.
Consigli
La tabella seguente contiene 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 che devono causare un'interruzione minima o nessuna interruzione del servizio o funzionalità ridotta.
- Stato:
- Test superato: la raccomandazione è stata applicata.
- Test non superato: 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 un altro modo equivalente.
- Motivo:
- Potenziale impatto sulle operazioni: la raccomandazione non è stata applicata perché avrebbe un effetto negativo sul servizio.
- Eseguita altrove: la raccomandazione è eseguita da un altro controllo nell'ambiente di calcolo cloud di Azure.
Di seguito sono riportati i risultati delle raccomandazioni CIS Azure Linux 2.0 Benchmark v1.0 in base alle regole CIS:
ID CIS | Descrizione della raccomandazione | Status | Motivo |
---|---|---|---|
1.1.4 | Disabilitare montaggio automatico | Riuscito | |
1.1.1.1 | Verificare che il montaggio dei file system cramfs sia disabilitato | Riuscito | |
1.1.2.1 | Verificare che /tmp sia una partizione separata | Riuscito | |
1.1.2.2 | Verificare che l'opzione nodev sia impostata sulla partizione /tmp | Riuscito | |
1.1.2.3 | Verificare che l'opzione nosuid sia impostata sulla partizione /tmp | Riuscito | |
1.1.8.1 | Verificare che l'opzione nodev sia impostata sulla partizione /dev/shm | Riuscito | |
1.1.8.2 | Verificare che l'opzione nosuid sia impostata sulla partizione /dev/shm | Riuscito | |
1.2.1 | Verificare che gpgcheck DNF sia attivato a livello globale | Riuscito | |
1.2.2 | Verificare che gpgcheck TDNF sia attivato a livello globale | Riuscito | |
1.5.1 | Verificare che l'archiviazione di dump principale sia disabilitata | Riuscito | |
1.5.2 | Verificare che le analisi del dump di base siano disabilitate | Riuscito | |
1.5.3 | Verificare che l'assegnazione casuale del layout dello spazio indirizzi (ASLR) sia abilitata | Riuscito | |
1.7.1 | Verificare che il banner di avviso di accesso locale sia configurato correttamente | Riuscito | |
1.7.2 | Verificare che il banner di avviso di accesso remoto sia configurato correttamente | Riuscito | |
1.7.3 | Verificare che le autorizzazioni per /etc/motd siano configurate | Riuscito | |
1.7.4 | Verificare che le autorizzazioni per /etc/issue siano configurate | Riuscito | |
1.7.5 | Verificare che le autorizzazioni per /etc/issue.net siano configurate | 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 | Verificare che xinetd non sia installato | Riuscito | |
2.2.2 | Verificare che xorg-x11-server-common non sia installato | Riuscito | |
2.2.3 | Verificare 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 elettronica 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 IPv6 sia abilitato | Riuscito | |
3.2.1 | Verificare che l'invio di reindirizzamenti di pacchetti sia disabilitato | Riuscito | |
3.3.1 | Verificare che i pacchetti con reindirizzamento di origine non vengano accettati | Riuscito | |
3.3.2 | Verificare che i reindirizzamenti ICMP non siano accettati | Riuscito | |
3.3.3 | Verificare che i reindirizzamenti ICMP protetti non siano accettati | Riuscito | |
3.3.4 | Verificare che i pacchetti sospetti vengano registrati | Riuscito | |
3.3.5 | Verificare che le richieste ICMP di trasmissione vengano ignorate | Riuscito | |
3.3.6 | Verificare che le risposte ICMP fittizie vengano ignorate | Riuscito | |
3.3.7 | Verificare che il filtro Inverti tracciato sia abilitato | Riuscito | |
3.3.8 | Verificare che i cookie TCP SYN siano abilitati | Riuscito | |
3.3.9 | Verificare che gli annunci del router IPv6 non siano accettati | Riuscito | |
3.4.3.1.1 | Verificare che il pacchetto iptables sia installato | Riuscito | |
3.4.3.1.2 | Verificare che le tabelle nftable non siano installate con iptable | Riuscito | |
3.4.3.1.3 | Verificare che il firewall non sia installato o che sia mascherato con iptable | Riuscito | |
4.2 | Verificare che logrotate sia configurato | Riuscito | |
4.2.2 | Verificare che tutti i file di log dispongano dell'accesso appropriato configurato | Riuscito | |
4.2.1.1 | Verificare che rsyslog sia installato | Riuscito | |
4.2.1.2 | Verificare che il servizio rsyslog sia abilitato | Riuscito | |
4.2.1.3 | Verificare che le autorizzazioni predefinite per i file rsyslog siano configurate | Riuscito | |
4.2.1.4 | Verificare che la registrazione sia configurata | Riuscito | |
4.2.1.5 | Verificare che rsyslog non sia configurato per ricevere i log da un client remoto | 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 | Verificare che cron sia limitato agli utenti autorizzati | Riuscito | |
5.1.9 | Verificare che at sia limitato agli utenti autorizzati | Riuscito | |
5.2.1 | Verificare che le autorizzazioni per /etc/ssh/sshd_config siano configurate | Riuscito | |
5.2.2 | Verificare che le autorizzazioni per i file di chiave host privati SSH siano configurate | Riuscito | |
5.2.3 | Verificare che le autorizzazioni per i file di chiave host pubblici SSH siano configurate | Riuscito | |
5.2.4 | Verificare che l'accesso a SSH sia limitato | Riuscito | |
5.2.5 | Verificare che SSH LogLevel sia appropriato | Riuscito | |
5.2.6 | Verificare che PAM SSH sia abilitato | Riuscito | |
5.2.7 | Verificare che l'accesso radice SSH sia disabilitato | Riuscito | |
5.2.8 | Verificare che SSH HostbasedAuthentication sia disabilitato | Riuscito | |
5.2.9 | Verificare che SSH PermitEmptyPasswords sia disabilitato | Riuscito | |
5.2.10 | Verificare che SSH PermitUserEnvironment sia disabilitato | Riuscito | |
5.2.11 | Verificare che SSH IgnoreRhosts sia abilitato | Riuscito | |
5.2.12 | Verificare che vengano usate solo crittografie complesse | Riuscito | |
5.2.13 | Verificare che vengano usati solo algoritmi MAC avanzati | Riuscito | |
5.2.14 | Verificare che vengano usati solo algoritmi di scambio chiavi sicuri | Riuscito | |
5.2.15 | Verificare che il banner di avviso SSH sia configurato | Riuscito | |
5.2.16 | Verificare che SSH MaxAuthTries sia impostato al massimo su 4 | Riuscito | |
5.2.17 | Verificare che SSH MaxStartups sia configurato | Riuscito | |
5.2.18 | Assicurarsi che il valore di SSH LoginGraceTime sia impostato su al massimo un minuto | Riuscito | |
5.2.19 | Verificare che SSH MaxSessions sia impostato su 10 o meno | Riuscito | |
5.2.20 | Verificare che l'intervallo di timeout di inattività SSH sia configurato | Riuscito | |
5.3.1 | Verificare che sudo sia installato | Riuscito | |
5.3.2 | Verificare che la riautenticazione 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 con password non riusciti sia configurato | Riuscito | |
5.4.3 | Verificare che l'algoritmo hash delle password sia SHA-512 | Riuscito | |
5.4.4 | Verificare che il riutilizzo delle password sia limitato | Riuscito | |
5.5.2 | Verificare 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 | |
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 alle 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 | Verificare 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 per tutti gli utenti sia nel passato | Riuscito | |
6.1.1 | Verificare che le autorizzazioni per /etc/passwd siano configurate | Riuscito | |
6.1.2 | Verificare che le autorizzazioni per /etc/passwd- siano configurate | Riuscito | |
6.1.3 | Verificare che le autorizzazioni per /etc/group siano configurate | Riuscito | |
6.1.4 | Verificare che le autorizzazioni per /etc/group- siano configurate | Riuscito | |
6.1.5 | Verificare che le autorizzazioni per /etc/shadow- siano configurate | Riuscito | |
6.1.6 | Verificare che le autorizzazioni per /etc/shadow- siano configurate | Riuscito | |
6.1.7 | Verificare che le autorizzazioni per /etc/shadow- siano configurate | Riuscito | |
6.1.8 | Verificare che le autorizzazioni per /etc/shadow- siano configurate | Riuscito | |
6.1.9 | Verificare che non esistano file o directory non creati o non raggruppati | Riuscito | |
6.1.10 | Verificare che i file e le directory scrivibili a livello globale siano protetti | Riuscito | |
6.2.1 | Verificare che i campi password non siano vuoti | Riuscito | |
6.2.2 | Verificare che tutti i gruppi in /etc/passwd esistano in /etc/group | Riuscito | |
6.2.3 | Verificare che non esistano UID duplicati | Riuscito | |
6.2.4 | Verificare che non esistano GID duplicati | Riuscito | |
6.2.5 | Verificare che non esistano nomi utente duplicati | Riuscito | |
6.2.6 | Verificare che non esistano nomi di gruppo duplicati | Riuscito | |
6.2.7 | Verificare l'integrità del percorso radice | Riuscito | |
6.2.8 | Verificare che root sia l'unico account UID 0 | Riuscito | |
6.2.9 | Verificare che tutte le home directory degli utenti esistano | Riuscito | |
6.2.10 | Verificare che gli utenti siano i proprietari delle home directory | Riuscito | |
6.2.11 | Verificare che le autorizzazioni per le home directory degli utenti abbiano un valore pari a 750 o più restrittivo | Riuscito | |
6.2.12 | Verificare che i file dot degli utenti non siano scrivibili in gruppi o in tutto il mondo | Riuscito | |
6.2.13 | Verificare che i file .netrc degli utenti non siano accessibili a livello globale o di gruppo | Riuscito | |
6.2.14 | Verificare che nessun utente disponga di file con estensione .forward | Riuscito | |
6.2.15 | Verificare che nessun utente disponga di file .netrc | Riuscito | |
6.2.16 | Verificare che nessun utente disponga di file con estensione .rhosts | Riuscito |
Passaggi successivi
Per altre informazioni sulla sicurezza dell'host contenitore Linux di Azure, vedere gli articoli seguenti:
Azure Kubernetes Service