Benchmark CIS Ubuntu

Questo documento descrive il livello di conformità di Google Distributed Cloud al benchmark CIS Ubuntu.

Accedi al benchmark

CIS Ubuntu Benchmark è disponibile sul sito web di CIS.

Profilo di configurazione

Nel documento CIS Ubuntu Benchmark, puoi leggere informazioni sui profili di configurazione. Le immagini Ubuntu utilizzate da Google Distributed Cloud sono protette per soddisfare il profilo di Livello 2 - Server.

Valutazione su Google Distributed Cloud

Utilizziamo i seguenti valori per specificare lo stato dei suggerimenti Ubuntu in Google Distributed Cloud.

Stato Descrizione
Conforme È conforme a un consiglio di benchmark.
Non conforme Non rispetta un consiglio sui benchmark.
Controllo equivalente Non rispetta i termini esatti in un suggerimento di benchmark, ma altri meccanismi in Google Distributed Cloud forniscono controlli di sicurezza equivalenti.
Dipende dall'ambiente Google Distributed Cloud non configura elementi relativi a un suggerimento di benchmark. La configurazione determina se il tuo ambiente è conforme al suggerimento.

Stato di Google Distributed Cloud

Le immagini Ubuntu utilizzate con Google Distributed Cloud sono protette per soddisfare il profilo CIS Livello 2 - Server. La tabella seguente spiega il motivo per cui 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 CIS Ubuntu Benchmark 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 il profilo CIS Livello 2 - Server. La tabella seguente spiega il motivo per cui i componenti di Google Distributed Cloud non hanno soddisfatto determinati suggerimenti.

# Suggerimento Stato Motivazione Componenti interessati
1.1.2.1 Assicurati che /tmp si trovi in una partizione separata Non conforme 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, Seesaw
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 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, Seesaw
1.1.6.1 Assicurati che /var/log/audit 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.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 Imposta password per il bootloader in grub2 Dipende dall'ambiente Nessuna password root impostata nelle immagini cloud di Ubuntu. Tutti i nodi del cluster, workstation di amministrazione, Seesaw
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 pacchetto rpcbind Non riuscito rpcbind è installato nell'immagine cloud Canonical, anche se non è abilitato per impostazione predefinita. La regola non funziona perché richiede che non sia installata Tutti i nodi del cluster la workstation di amministrazione, Seesaw
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 obbligatori per la distribuzione del bilanciamento del carico del cluster. Nodi master non amministrativi Seesaw
3.5.2.6 Imposta la configurazione nftables per il traffico di loopback Non risolvibile 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 negazione predefinito nftables 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 Non conforme Questo test specifico è eccessivamente restrittivo e irrealistico, 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, Seesaw
5.2.18 Limita 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 eseguano nuovamente l'autenticazione 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 Imposta età massima 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 Non conforme Le autorizzazioni sono state lasciate invariate. 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 CIS Ubuntu Benchmark 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 il profilo CIS Livello 2 - Server. La tabella seguente spiega il motivo per cui i componenti di Google Distributed Cloud non hanno soddisfatto determinati suggerimenti.

# Suggerimento Con punteggio/Senza punteggio Stato Motivazione Componenti interessati
1.1.2 Assicurati che /tmp sia configurato Con punteggio Non conforme 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.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, Seesaw
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, Seesaw
1.1.22 Assicurati che il bit fisso sia impostato su tutte le directory scrivibili pubblicamente Con punteggio Non conforme Questo potrebbe interferire con la funzionalità di Anthos e dei suoi servizi e non è abilitato per impostazione predefinita Tutti i nodi del cluster, la workstation di amministrazione
1.5.1 Assicurati che siano configurate le autorizzazioni nella configurazione del bootloader Con punteggio Non conforme Le autorizzazioni sono state lasciate invariate. 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, Seesaw
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 Canonical, anche se non è abilitato per impostazione predefinita. La regola non funziona perché richiede che non sia installata Tutti i nodi del cluster
3.2.2 Assicurati che l'IP forwarding sia disabilitato Con punteggio Non conforme L'IP forwarding è necessariamente necessario per consentire a Kubernetes (GKE) di funzionare e instradare il traffico correttamente Tutti i nodi del cluster, workstation di amministrazione, Seesaw
3.2.7 Assicurati che il filtro del percorso inverso 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 di negazione predefinito 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 di loopback è limitato data la 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, Seesaw
3.5.3.3.1 Assicurati che il criterio firewall di negazione predefinito IPv6 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 alcun requisito per IPv6 in base al supporto GA. il piano di controllo per amministratori, Seesaw
4.1.1.3 Assicurati che il controllo dei processi avviati prima del controllo sia abilitato Con punteggio Non conforme Un problema noto con il nostro processo di compilazione segnala come Non riuscito, ma dovrebbe essere considerato un falso allarme. Questo problema verrà risolto in futuro. Tutti i nodi del cluster, Seesaw
4.1.11 Assicurati che venga raccolto l'utilizzo di comandi con privilegi Con punteggio Non conforme Alcuni programmi binari vengono installati in fase di runtime, pertanto è necessaria la correzione del runtime. Tutti i nodi del cluster, workstation di amministrazione, Seesaw
4.2.1.5 Assicurati che rsyslog sia configurato per inviare i log a un host di log remoto Con punteggio Dipende dall'ambiente Google Distributed Cloud attualmente raccoglie tutti i log inseriti nel journal (dai servizi di sistema). Questi log possono essere visualizzati in "k8s_node" Tutti i nodi del cluster, workstation di amministrazione, Seesaw
4.2.3 Assicurati che siano configurate le autorizzazioni per tutti i file di log Con punteggio Non conforme Questo test specifico è eccessivamente restrittivo e irrealistico, 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, Seesaw
4.4 Assicurati che logrotate assegni le autorizzazioni appropriate Con punteggio Non riuscito Il rispetto di questa regola potrebbe influire sull'attuale funzionalità di logging 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, Seesaw
5.2.20 Assicurati che SSH allowTcpForwarding sia disabilitato Con punteggio Non riuscito Il rispetto di questa regola potrebbe influire sull'attuale funzionalità 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 Non conforme Le autorizzazioni sono state lasciate invariate. Tutti i nodi del cluster
6.1.11 Assicurati che non esistano file o directory non di proprietà Con punteggio Non conforme Le autorizzazioni sono state lasciate invariate. Tutti i nodi del cluster
6.1.12 Assicurati che non esistano file o directory non raggruppati Con punteggio Non conforme Le autorizzazioni sono state lasciate invariate. Tutti i nodi del cluster
6.2.7 Assicurati che i file dot degli utenti non siano scrivibili in gruppo o pubblicamente Con punteggio Non conforme Le impostazioni predefinite per le autorizzazioni del gruppo di file di autorizzazione Ubuntu a causa della compatibilità Workstation di amministrazione

Configura cron job AIDE

AIDE è uno strumento di controllo dell'integrità dei file che garantisce la conformità al benchmark 1.4 del server CIS L1 Filesystem Integrity Checking. In Google Distributed Cloud, il processo AIDE ha causato problemi di utilizzo elevato.

Il processo AIDE sui nodi è disabilitato per impostazione predefinita per evitare problemi delle 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 cron job AIDE, completa i seguenti passaggi per riattivare AIDE:

  1. Creare 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 nodeSelector cloud.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 campo nodeSelector. Per eseguire la stessa pianificazione di cron job su diversi pool di nodi, rimuovi il campo nodeSelector. Tuttavia, per evitare congestioni delle risorse host, ti consigliamo di mantenere pianificazioni separate.

    • Il cron job è pianificato per essere eseguito ogni giorno alle 05:30, come specificato dalla configurazione minute=30;hour=5. Puoi configurare pianificazioni diverse per il cron job AIDE in base alle esigenze.

  2. 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 del file kubeconfig per il cluster utente.