Questo documento descrive il livello di conformità di Google Distributed Cloud al benchmark CIS Ubuntu.
Accedere al benchmark
Il benchmark CIS Ubuntu è disponibile sul sito web del CIS.
Profilo di configurazione
Nel documento CIS Ubuntu Benchmark puoi trovare informazioni sui profili di configurazione. Le immagini Ubuntu utilizzate da Google Distributed Cloud sono protette per soddisfare Livello 2 - Profilo server.
Valutazione su Google Distributed Cloud
Utilizziamo i seguenti valori per specificare lo stato dei suggerimenti di Ubuntu in Google Distributed Cloud.
Stato | Descrizione |
---|---|
Pass | È conforme a un consiglio di benchmark. |
Fail | Non è conforme a un consiglio del benchmark. |
Controllo equivalente | Non rispetta i termini esatti in un consiglio sui benchmark ma altri meccanismi in Google Distributed Cloud forniscono i controlli di sicurezza. |
Dipende dall'ambiente | Google Distributed Cloud non configura elementi relativi a un il nostro consiglio di benchmark. La configurazione determina se il tuo ambiente è conforme al consiglio. |
Stato di Google Distributed Cloud
Le immagini Ubuntu utilizzate con Google Distributed Cloud sono protette per soddisfare la CIS Livello 2 - Profilo server. La tabella seguente spiega perché i componenti di Google Distributed Cloud non hanno soddisfatto determinati suggerimenti.
Google Distributed Cloud 1.29
Disponibile a breve.Google Distributed Cloud 1.28
Versioni
Questa sezione fa riferimento alle seguenti versioni:
Versione Google Distributed Cloud | Versione Ubuntu | Versione del benchmark CIS Ubuntu | Livello CIS |
---|---|---|---|
1,28 | 22,04 LTS | v1.0.0 | Server di Livello 2 |
Stato di Google Distributed Cloud
Le immagini Ubuntu utilizzate con Google Distributed Cloud sono protette per soddisfare la CIS Livello 2 - Profilo server. La tabella seguente spiega perché i componenti di Google Distributed Cloud non hanno soddisfatto determinati suggerimenti.
# | Consiglio | Stato | Motivazione | Componenti interessati |
---|---|---|---|---|
1.1.2.1 | Assicurati che /tmp si trovi in una partizione separata | Fail | Al momento Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.3.1 | Assicurati che /var sia posizionato in una partizione separata | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.1.4.1 | Assicurati che /var/tmp si trovi in una partizione separata | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.5.1 | Assicurati che /var/log si trovi in una partizione separata | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.6.1 | Assicurati che /var/log/audit si trovi in una partizione separata | Non verrà risolto | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.7.1 | Assicurati che /home si trovi in una partizione separata | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.4.1 | Impostare la password del bootloader in grub2 | Dipende dall'ambiente | Nessuna password root impostata nelle immagini cloud di Ubuntu. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.4.3 | Assicurati che sia richiesta l'autenticazione per la modalità Utente singolo | Dipende dall'ambiente | Nessuna password root impostata nelle immagini cloud di Ubuntu. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
2.3.6 | Disinstalla il pacchetto rpcbind | Non riuscito | rpcbind è installato nell'immagine cloud di Canonical, anche se non è abilitato per impostazione predefinita. La regola non funziona perché richiede che il componente non sia installato | Tutti i nodi del cluster Workstation di amministrazione, Altalena |
3.3.7 | Abilita il parametro del kernel per usare il filtro del percorso inverso su tutte le interfacce IPv4 | Dipende dall'ambiente | Il routing asincrono e l'origine del percorso inverso sono un requisito per il bilanciamento del carico del cluster. | Nodi master non amministrativi Altalena |
3.5.2.6 | Imposta la configurazione di nftables per il traffico loopback | Non verrà risolto | La rete Anthos è stata interessata da questa regola. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
3.5.2.8 | Assicurati che il criterio firewall di nftables predefinito sia di rifiuto | Dipende dall'ambiente | È consigliabile eseguire il deployment di Google Distributed Cloud su una rete privata con protezioni firewall appropriate. Le regole firewall richieste sono disponibili qui. | Tutti i nodi del cluster, workstation di amministrazione, Seesaw |
4.2.3 | Verifica le autorizzazioni dei file di log | Fail | Questo test specifico è eccessivamente restrittivo e non realistico, in quanto molti servizi potrebbero richiedere a un gruppo di scrivere file di log. Questo elemento potrebbe essere rimosso in un benchmark futuro. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
5.2.18 | Limitare l'accesso SSH degli utenti | Dipende dall'ambiente | Questa opzione non è configurata per impostazione predefinita. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
5.3.4 | Assicurati che gli utenti si ri-autentichino per l'escalation dei privilegi - sudo | Dipende dall'ambiente | Questa opzione non è configurata per impostazione predefinita. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
5.5.1.2 | Impostare l'età massima della password | Controllo equivalente | Le VM per Google Distributed Cloud si basano su una chiave SSH per l'accesso dell'utente, anziché sull'utilizzo di una password | Tutti i nodi del cluster |
6.1.10 | Assicurati che tutti i file siano di proprietà di un utente | Fail | Le autorizzazioni sono state lasciate predefinite. | Tutti i nodi del cluster |
Google Distributed Cloud 1.16
Versioni
Questa sezione fa riferimento alle seguenti versioni:
Versione Google Distributed Cloud | Versione Ubuntu | Versione del benchmark CIS Ubuntu | Livello CIS |
---|---|---|---|
1,16 | 20,04 LTS | v1.0.0 | Server di Livello 2 |
Stato di Google Distributed Cloud
Le immagini Ubuntu utilizzate con Google Distributed Cloud sono protette per soddisfare la CIS Livello 2 - Profilo server. La tabella seguente spiega perché i componenti di Google Distributed Cloud non hanno soddisfatto determinati suggerimenti.
# | Consiglio | Con punteggio/Senza punteggio | Stato | Motivazione | Componenti interessati |
---|---|---|---|---|---|
1.1.2 | Assicurati che /tmp sia configurato | Con punteggio | Fail | Al momento Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.1.10 | Assicurati che esista una partizione separata per /var | Con punteggio | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.11 | Assicurati che esista una partizione separata per /var/tmp | Con punteggio | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.1.15 | Assicurati che esista una partizione separata per /var/log | Con punteggio | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.16 | Assicurati che esista una partizione separata per /var/log/audit | Con punteggio | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
1.1.17 | Assicurati che esista una partizione separata per /home | Con punteggio | Non risolvibile | Al momento, Canonical non ha in programma di modificare le partizioni delle immagini cloud. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.1.22 | Assicurati che il bit sticky sia impostato su tutte le directory scrivibili da tutti | Con punteggio | Fail | Ciò potrebbe interferire con la funzionalità di Anthos e dei suoi servizi e non è abilitato per impostazione predefinita | Tutti i nodi del cluster, Workstation di amministrazione |
1.5.1 | Assicurati che le autorizzazioni per la configurazione del bootloader siano configurate | Con punteggio | Fail | Le autorizzazioni sono state lasciate predefinite. | Tutti i nodi del cluster, Seesaw |
1.5.2 | Assicurati che sia impostata la password del bootloader | Con punteggio | Dipende dall'ambiente | Nessuna password root impostata nelle immagini cloud di Ubuntu. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
1.5.3 | Assicurati che sia richiesta l'autenticazione per la modalità utente singolo | Con punteggio | Dipende dall'ambiente | Nessuna password root impostata nelle immagini cloud di Ubuntu. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
2.3.6 | Assicurati che RPC non sia installato | Con punteggio | Non riuscito | rpcbind è installato nell'immagine cloud di Canonical, anche se non è abilitato per impostazione predefinita. La regola non funziona perché richiede che il componente non sia installato | Tutti i nodi del cluster |
3.2.2 | Assicurati che l'IP forwarding sia disabilitato | Con punteggio | Fail | L'IP forwarding è necessariamente per consentire a Kubernetes (GKE) di funzionare e instradare il traffico correttamente | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
3.2.7 | Assicurati che il filtro dei percorsi inversi sia abilitato | Con punteggio | Dipende dall'ambiente | Il routing asincrono e l'origine del percorso inverso sono obbligatori per la distribuzione del bilanciamento del carico del cluster | Seesaw |
3.5.3.2.1 | Assicurati che il criterio firewall predefinito sia di rifiuto | Con punteggio | Dipende dall'ambiente | È consigliabile eseguire il deployment di Google Distributed Cloud su una rete privata con protezioni firewall appropriate. Le regole firewall richieste sono disponibili qui. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
3.5.3.2.2 | Assicurati che il traffico di loopback sia configurato | Con punteggio | Dipende dall'ambiente | L'utilizzo dell'interfaccia loopback è limitato in base alla funzionalità di bilanciamento del carico utilizzata. | Seesaw |
3.5.3.2.4 | Assicurati che esistano regole firewall per tutte le porte aperte | Senza punteggio | Dipende dall'ambiente | È consigliabile eseguire il deployment di Google Distributed Cloud su una rete privata con protezioni firewall appropriate. Le regole firewall richieste sono disponibili qui. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
3.5.3.3.1 | Assicurati che il criterio firewall di rifiuto predefinito IPv6 sia attivo | Con punteggio | Dipende dall'ambiente | È consigliabile eseguire il deployment di Google Distributed Cloud su una rete privata con protezioni firewall appropriate. Le regole firewall richieste sono disponibili qui. Inoltre, Anthos non ha alcun requisito per IPv6 in base al supporto GA. | Tutti i nodi del cluster, Workstation di amministrazione, Seesaw |
3.5.3.3.2 | Assicurati che il traffico di loopback IPv6 sia configurato | Con punteggio | Dipende dall'ambiente | Anthos non ha requisiti per IPv6 nell'ambito del supporto GA. | Control plane di amministrazione, Seesaw |
4.1.1.3 | Assicurati che il controllo per i processi avviati prima di auditd sia abilitato | Con punteggio | Fail | Un problema noto con la nostra procedura di compilazione segnala questo stato come Non riuscito, ma deve essere considerato un falso allarme. Questo problema verrà risolto in futuro. | Tutti i nodi del cluster, Seesaw |
4.1.11 | Assicurati che l'utilizzo dei comandi con privilegi venga raccolto | Con punteggio | Fail | Alcuni file binari vengono installati in fase di esecuzione, pertanto è necessaria la correzione in fase di esecuzione. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
4.2.1.5 | Assicurati che rsyslog sia configurato per inviare i log a un host di log remoto | Con punteggio | Dipende dall'ambiente | Al momento Google Distributed Cloud raccoglie tutti i log di journald (dai servizi di sistema). Questi log possono essere visualizzati in "k8s_node" | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
4.2.3 | Assicurati che siano configurate le autorizzazioni per tutti i file di log | Con punteggio | Fail | Questo test specifico è eccessivamente restrittivo e non realistico, in quanto molti servizi potrebbero richiedere a un gruppo di scrivere file di log. Questo elemento potrebbe essere rimosso in un benchmark futuro. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
4.4 | Assicurati che logrotate assegni le autorizzazioni appropriate | Con punteggio | Non riuscito | Il rispetto di questa regola potrebbe influire sulla funzionalità di registrazione corrente | Tutti i nodi del cluster, Seesaw |
5.2.18 | Assicurati che l'accesso SSH sia limitato | Con punteggio | Dipende dall'ambiente | Questa opzione non è configurata per impostazione predefinita. Può essere configurato in modo da soddisfare requisiti specifici. | Tutti i nodi del cluster, Workstation di amministrazione, Altalena |
5.2.20 | Assicurati che SSH allowTcpForwarding sia disabilitato | Con punteggio | Non riuscito | Il rispetto di questa regola potrebbe influire sulla funzionalità attuale del tunnel SSH | Tutti i nodi del cluster |
5.4.1.1 | Assicurati che la scadenza della password sia al massimo di 365 giorni | Con punteggio | Controllo equivalente | Le VM per Google Distributed Cloud si basano su una chiave SSH per l'accesso dell'utente, anziché sull'utilizzo di una password | Tutti i nodi del cluster |
6.1.10 | Assicurati che non esistano file scrivibili pubblicamente | Con punteggio | Fail | Le autorizzazioni sono state lasciate predefinite. | Tutti i nodi del cluster |
6.1.11 | Assicurati che non esistano file o directory non di proprietà | Con punteggio | Fail | Le autorizzazioni sono state lasciate predefinite. | Tutti i nodi del cluster |
6.1.12 | Assicurati che non esistano file o directory non raggruppati | Con punteggio | Fail | Le autorizzazioni sono state lasciate predefinite. | Tutti i nodi del cluster |
6.2.7 | Assicurati che gli utenti i file dot non sono scrivibili in gruppi o pubblicamente | Con punteggio | Fail | Le impostazioni predefinite di Ubuntu consentono le autorizzazioni di gruppo dei file con punti per motivi di compatibilità | Workstation di amministrazione |
Configura il cron job AIDE
AIDE è uno strumento di controllo dell'integrità dei file che garantisce la conformità a CIS L1
Benchmark del server 1,4 Filesystem Integrity Checking
. In Google Distributed Cloud,
il processo AIDE ha causato problemi di utilizzo elevato delle risorse.
Il processo AIDE sui nodi è disattivato per impostazione predefinita per evitare problemi relativi alle risorse. Ciò influirà sulla conformità al benchmark server CIS L1 1.4.2: Ensure
filesystem integrity is regularly checked.
Se vuoi attivare l'esecuzione del job cron AIDE, completa i seguenti passaggi per riattivare AIDE:
Crea un DaemonSet.
Ecco un manifest per un DaemonSet:
apiVersion: apps/v1 kind: DaemonSet metadata: name: enable-aide-pool1 spec: selector: matchLabels: app: enable-aide-pool1 template: metadata: labels: app: enable-aide-pool1 spec: hostIPC: true hostPID: true nodeSelector: cloud.google.com/gke-nodepool: pool-1 containers: - name: update-audit-rule image: ubuntu command: ["chroot", "/host", "bash", "-c"] args: - | set -x while true; do # change daily cronjob schedule minute=30;hour=5 sed -E "s/([0-9]+ [0-9]+)(.*run-parts --report \/etc\/cron.daily.*)/$minute $hour\2/g" -i /etc/crontab # enable aide chmod 755 /etc/cron.daily/aide sleep 3600 done volumeMounts: - name: host mountPath: /host securityContext: privileged: true volumes: - name: host hostPath: path: /
Nel manifest riportato sopra:
Il cron job AIDE verrà eseguito solo sul pool di nodi
pool-1
come specificato dal nodeSelectorcloud.google.com/gke-nodepool: pool-1
. Puoi configurare il processo AIDE in modo che venga eseguito su tutti i pool di nodi che vuoi specificando i pool nel camponodeSelector
. Per eseguire la stessa pianificazione del cron job su diversi pool di nodi, rimuovi il camponodeSelector
. Tuttavia, per evita le congestioni delle risorse dell'host, ti consigliamo di mantenere le pianificazioni degli annunci.Il cron job è pianificato per essere eseguito ogni giorno alle 5:30, come specificato configurazione
minute=30;hour=5
. Puoi configurare pianificazioni diverse per il cron job AIDE in base alle esigenze.
Copia il manifest in un file denominato
enable-aide.yaml
e crea il DaemonSet:kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
dove USER_CLUSTER_KUBECONFIG è il percorso file kubeconfig per il tuo cluster utente.