Condividi tramite


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 sicuri 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: