CIS-Ubuntu-Benchmark

In diesem Dokument wird das Maß der Compliance beschrieben, das Google Distributed Cloud mit der CIS-Ubuntu-Benchmark hat.

Auf die Benchmark zugreifen

Die CIS-Ubuntu-Benchmark steht auf der CIS-Website zur Verfügung:

Konfigurationsprofil

Im Dokument zur CIS-Ubuntu-Benchmark finden Sie Informationen zu Konfigurationsprofilen. Die von Google Distributed Cloud verwendeten Ubuntu-Images sind gehärtet, um dem Level-2-Serverprofil zu genügen.

Bewertung in Google Distributed Cloud

Wir verwenden die folgenden Werte, um den Status von Ubuntu-Empfehlungen in Google Distributed Cloud anzugeben:

Status Beschreibung
Bestanden Entspricht einer Benchmarkempfehlung.
Nicht bestanden Entspricht nicht einer Benchmarkempfehlung.
Gleichwertige Kontrolle Entspricht nicht genau den Bedingungen in einer Benchmark-Empfehlung. Es gibt aber andere Mechanismen in Google Distributed Cloud, die gleichwertige Sicherheitskontrollen ermöglichen.
Umgebungsabhängig Google Distributed Cloud konfiguriert keine Elemente, die sich auf eine Benchmark-Empfehlung beziehen. Ihre Konfiguration bestimmt, ob Ihre Umgebung der Empfehlung entspricht.

Status von Google Distributed Cloud

Die mit Google Distributed Cloud verwendeten Ubuntu-Images sind gehärtet, um dem Serverprofil CIS-Level 2 zu genügen. In der folgenden Tabelle sind die Begründungen aufgeführt, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht erfüllt haben.

Google Distributed Cloud 1.29

Bald verfügbar.

Google Distributed Cloud 1.28

Versionen

Dieser Abschnitt bezieht sich auf folgende Versionen:

Google Distributed Cloud-Version Ubuntu-Version Version der CIS-Ubuntu-Benchmark CIS-Level
1,28 22.04 LTS v1.0.0 Level-2-Server

Status von Google Distributed Cloud

Die mit Google Distributed Cloud verwendeten Ubuntu-Images sind gehärtet, um dem Serverprofil CIS-Level 2 zu genügen. In der folgenden Tabelle sind die Begründungen aufgeführt, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht erfüllt haben.

# Empfehlung Status Begründung Betroffene Komponenten
1.1.2.1 Achten Sie darauf, dass sich /tmp auf einer separaten Partition befindet Nicht bestanden Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.3.1 Achten Sie darauf, dass sich /var auf einer separaten Partition befindet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.4.1 Achten Sie darauf, dass sich /var/tmp auf einer separaten Partition befindet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.5.1 Achten Sie darauf, dass sich /var/log auf einer separaten Partition befindet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.6.1 Achten Sie darauf, dass sich /var/log/audit auf einer separaten Partition befindet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.7.1 Achten Sie darauf, dass sich /home auf einer separaten Partition befindet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.4.1 Bootloader-Passwort in grub2 festlegen Umgebungsabhängig Für Ubuntu-Cloud-Images ist kein Root-Passwort festgelegt. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.4.3 Sicherstellen, dass für den Einzelnutzermodus eine Authentifizierung erforderlich ist Umgebungsabhängig Für Ubuntu-Cloud-Images ist kein Root-Passwort festgelegt. Alle Clusterknoten, Administrator-Workstation, Seesaw
2.3.6 rpcbind-Paket deinstallieren Fehlgeschlagen rpcbind ist auf dem kanonischen Cloud-Image installiert, aber nicht standardmäßig aktiviert. Die Regel schlägt fehl, da es ihr zufolge nicht installiert sein darf. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.3.7 Kernelparameter aktivieren, um die Filterung für umgekehrte Pfade auf allen IPv4-Schnittstellen zu verwenden Umgebungsabhängig Asynchrones Routing und Reverse Path Origination sind für das Cluster-Load-Balancing erforderlich Nicht-Administrator-Masterknoten Seesaw
3.5.2.6 Nftables-Konfiguration für Loopback-Traffic festlegen Wird nicht behoben Das Anthos Network wurde von dieser Regel betroffen. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.2.8 Sicherstellen, dass die Standard-DENY-Firewallrichtlinie für nftables festgelegt ist Umgebungsabhängig Es empfiehlt sich, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
4.2.3 Berechtigungen von Protokolldateien prüfen Nicht bestanden Dieser spezifische Test ist zu restriktiv und unrealistisch, da viele Dienste eine Gruppe zum Schreiben von Logdateien benötigen. Dieses Element wird möglicherweise in einer zukünftigen Benchmark entfernt. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.2.18 SSH-Zugriff von Nutzern einschränken Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.3.4 Nutzer müssen sich bei der Berechtigungseskalierung noch einmal authentifizieren – sudo Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.5.1.2 Maximales Passwortalter festlegen Gleichwertige Kontrolle VMs für die Google Distributed Cloud benötigen einen SSH-Schlüssel für die Nutzeranmeldung, anstatt ein Passwort zu verwenden Alle Clusterknoten
6.1.10 Alle Dateien müssen einem Nutzer gehören Nicht bestanden Berechtigungen wurden als Standard beibehalten. Alle Clusterknoten

Google Distributed Cloud 1.16

Versionen

Dieser Abschnitt bezieht sich auf folgende Versionen:

Google Distributed Cloud-Version Ubuntu-Version Version der CIS-Ubuntu-Benchmark CIS-Level
1.16 20.04 LTS v1.0.0 Level-2-Server

Status von Google Distributed Cloud

Die mit Google Distributed Cloud verwendeten Ubuntu-Images sind gehärtet, um dem Serverprofil CIS-Level 2 zu genügen. In der folgenden Tabelle sind die Begründungen aufgeführt, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht erfüllt haben.

# Empfehlung Bewertet/Nicht bewertet Status Begründung Betroffene Komponenten
1.1.2 Sicherstellen, dass /tmp konfiguriert ist Bewertet Nicht bestanden Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.10 Achten Sie darauf, dass für /var eine separate Partition vorhanden ist Bewertet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.11 Achten Sie darauf, dass für /var/tmp eine separate Partition vorhanden ist Bewertet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.15 Achten Sie darauf, dass für /var/log eine separate Partition vorhanden ist Bewertet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.16 Achten Sie darauf, dass für /var/log/audit eine separate Partition vorhanden ist Bewertet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.17 Achten Sie darauf, dass für /home eine separate Partition vorhanden ist Bewertet Wird nicht behoben Canonical plant derzeit keine Änderungen der Cloud-Image-Partitionen. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.1.22 Sicherstellen, dass das Sticky Bit für alle von jedem beschreibbaren Verzeichnisse festgelegt ist Bewertet Nicht bestanden Dies könnte die Funktionalität von Anthos und dessen Diensten beeinträchtigen und ist nicht standardmäßig aktiviert. Alle Clusterknoten, Administrator-Workstation
1.5.1 Sicherstellen, dass Berechtigungen für die Bootloader-Konfiguration konfiguriert sind Bewertet Nicht bestanden Berechtigungen wurden als Standard beibehalten. Alle Clusterknoten, Seesaw
1.5.2 Sicherstellen, dass das Bootloader-Passwort festgelegt ist Bewertet Umgebungsabhängig Für Ubuntu-Cloud-Images ist kein Root-Passwort festgelegt. Alle Clusterknoten, Administrator-Workstation, Seesaw
1.5.3 Sicherstellen, dass für den Einzelnutzermodus eine Authentifizierung erforderlich ist Bewertet Umgebungsabhängig Für Ubuntu-Cloud-Images ist kein Root-Passwort festgelegt. Alle Clusterknoten, Administrator-Workstation, Seesaw
2.3.6 Sicherstellen, dass RPC nicht installiert ist Bewertet Fehlgeschlagen rpcbind ist auf dem kanonischen Cloud-Image installiert, aber nicht standardmäßig aktiviert. Die Regel schlägt fehl, da es ihr zufolge nicht installiert sein darf. Alle Clusterknoten
3.2.2 Sicherstellen, dass die IP-Weiterleitung deaktiviert ist Bewertet Nicht bestanden Die IP-Weiterleitung ist notwendig, damit Kubernetes (GKE) ordnungsgemäß funktioniert und den Traffic weiterleitet. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.2.7 Sicherstellen, dass die Filterung für umgekehrte Pfade aktiviert ist Bewertet Umgebungsabhängig Asynchrones Routing und Reverse Path Origination sind für das Cluster-Load-Balancing erforderlich Seesaw
3.5.3.2.1 Sicherstellen, dass die Standard-DENY-Firewallrichtlinie festgelegt ist Bewertet Umgebungsabhängig Es empfiehlt sich, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.3.2.2 Sicherstellen, dass Loopback-Traffic konfiguriert ist Bewertet Umgebungsabhängig Die Nutzung der Loopback-Schnittstelle ist aufgrund der verwendeten Load-Balancing-Funktion begrenzt. Seesaw
3.5.3.2.4 Sicherstellen, dass Firewallregeln für alle offenen Ports vorhanden sind Nicht bewertet Umgebungsabhängig Es empfiehlt sich, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.3.3.1 Sicherstellen, dass die Standard-DENY-Firewallrichtlinie für IPv6 festgelegt ist Bewertet Umgebungsabhängig Es empfiehlt sich, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Anthos erfordert keine Unterstützung für IPv6 unter GA. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.3.3.2 Sicherstellen, dass der IPv6-Loopback-Traffic konfiguriert ist Bewertet Umgebungsabhängig Anthos erfordert keine Unterstützung für IPv6 unter GA. Administrator-Steuerungsebene, Seesaw
4.1.1.3 Auditing für Prozesse ausführen, die vor der Aktivierung von auditd gestartet werden Bewertet Nicht bestanden Ein bekanntes Problem bei unserem Build-Prozess kennzeichnet dies als "Nicht bestanden", obwohl es als falscher Alarm angesehen werden sollte. Dieses Problem wird in Zukunft behoben. Alle Clusterknoten, Seesaw
4.1.11 Verwendung privilegierter Befehle erfassen Bewertet Nicht bestanden Einige Binärdateien werden zur Laufzeit installiert, sodass eine Fehlerbehebung erforderlich ist. Alle Clusterknoten, Administrator-Workstation, Seesaw
4.2.1.5 Sicherstellen, dass rsyslog so konfiguriert ist, dass Logs an einen Remote-Loghost gesendet werden Bewertet Umgebungsabhängig Google Distributed Cloud erfasst derzeit alle journald-Logs (von Systemdiensten). Diese Logs können unter "k8s_node" aufgerufen werden. Alle Clusterknoten, Administrator-Workstation, Seesaw
4.2.3 Sicherstellen, dass Berechtigungen für alle Logdateien konfiguriert sind Bewertet Nicht bestanden Dieser spezifische Test ist zu restriktiv und unrealistisch, da viele Dienste eine Gruppe zum Schreiben von Logdateien benötigen. Dieses Element wird möglicherweise in einer zukünftigen Benchmark entfernt. Alle Clusterknoten, Administrator-Workstation, Seesaw
4.4 Sicherstellen, dass logrotate die entsprechenden Berechtigungen zuweist Bewertet Fehlgeschlagen Die Einhaltung dieser Regel kann sich auf die aktuelle Logging-Funktionalität auswirken. Alle Clusterknoten, Seesaw
5.2.18 Sicherstellen, dass der SSH-Zugriff eingeschränkt ist Bewertet Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Sie können dies Ihren Anforderungen entsprechend konfigurieren. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.2.20 Sicherstellen, dass SSH AllowTcpForwarding deaktiviert ist Bewertet Fehlgeschlagen Die Einhaltung dieser Regel kann sich auf die aktuelle SSH-Tunnelfunktion auswirken Alle Clusterknoten
5.4.1.1 Sicherstellen, dass das Passwort nach maximal 365 Tagen abläuft Bewertet Gleichwertige Kontrolle VMs für die Google Distributed Cloud benötigen einen SSH-Schlüssel für die Nutzeranmeldung, anstatt ein Passwort zu verwenden Alle Clusterknoten
6.1.10 Sicherstellen, dass keine beschreibbaren Dateien vorhanden sind Bewertet Nicht bestanden Berechtigungen wurden als Standard beibehalten. Alle Clusterknoten
6.1.11 Sicherstellen, dass keine Dateien oder Verzeichnisse vorhanden sind, die niemandem gehören Bewertet Nicht bestanden Berechtigungen wurden als Standard beibehalten. Alle Clusterknoten
6.1.12 Sicherstellen, dass keine nicht gruppierten Dateien oder Verzeichnisse vorhanden sind Bewertet Nicht bestanden Berechtigungen wurden als Standard beibehalten. Alle Clusterknoten
6.2.7 Sicherstellen, dass die dot-Dateien der Nutzer nicht für Gruppen oder für jeden beschreibbar sind Bewertet Nicht bestanden Die Standardeinstellungen für Ubuntu erlauben aufgrund der Kompatibilität Berechtigungen für dot-Dateigruppen Administratorworkstation

AIDE-Cronjob konfigurieren

AIDE ist ein Tool zur Dateiintegritätsprüfung, das für Compliance mit CIS L1 Server Benchmark 1.4 Filesystem Integrity Checking sorgt. In der Google Distributed Cloud hat der AIDE-Prozess Probleme bei hoher Ressourcennutzung verursacht.

Der AIDE-Prozess auf Knoten ist standardmäßig deaktiviert, um Ressourcenprobleme zu vermeiden. Dies wirkt sich auf die Compliance mit CIS L1 Server Benchmark 1.4.2 aus: Ensure filesystem integrity is regularly checked.

Wenn Sie die Ausführung des AIDE-Cronjobs aktivieren möchten, führen Sie die folgenden Schritte aus, um AIDE wieder zu aktivieren:

  1. Erstellen Sie ein DaemonSet.

    Dies ist ein Manifest für ein 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: /
    

    Für das oben aufgeführte Manifest gilt Folgendes:

    • Der AIDE-Cronjob wird nur im Knotenpool pool-1 ausgeführt, wie durch den nodeSelector cloud.google.com/gke-nodepool: pool-1 angegeben. Sie können den AIDE-Prozess so konfigurieren, dass er auf beliebig vielen Knotenpools ausgeführt wird. Geben Sie dazu die Pools unter dem Feld nodeSelector an. Entfernen Sie das Feld nodeSelector, um denselben Cronjob-Zeitplan für verschiedene Knotenpools auszuführen. Um Ressourcenüberlastungen zu vermeiden, empfehlen wir jedoch, separate Zeitpläne zu pflegen.

    • Der Cronjob wird gemäß der Konfiguration minute=30;hour=5 täglich um 5:30 Uhr ausgeführt. Sie können unterschiedliche Zeitpläne für den AIDE-Cronjob nach Bedarf konfigurieren.

  2. Kopieren Sie das Manifest in eine Datei mit dem Namen enable-aide.yaml und erstellen Sie das DaemonSet:

    kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
    

    Dabei ist USER_CLUSTER_KUBECONFIG der Pfad der kubeconfig-Datei für Ihren Nutzercluster.