CIS-Ubuntu-Benchmark

In diesem Dokument wird der Grad der Compliance beschrieben, den 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 so gehärtet, dass sie dem Profil „Level 2 – Server“ entsprechen.

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 den genauen Bedingungen in einer Benchmarkempfehlung, aber andere Mechanismen in Google Distributed Cloud bieten gleichwertige Sicherheitskontrollen.
Umgebungsabhängig Google Distributed Cloud konfiguriert keine Elemente im Zusammenhang mit einer Benchmark-Empfehlung. Ihre Konfiguration bestimmt, ob Ihre Umgebung der Empfehlung entspricht.

Status von Google Distributed Cloud

Die mit Google Distributed Cloud verwendeten Ubuntu-Images sind so gehärtet, dass sie dem CIS-Level 2 – Server-Profil entsprechen. Die folgende Tabelle enthält Gründe, warum Komponenten von Google Distributed Cloud 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 Langzeitsupport v1.0.0 Level-2-Server

Status von Google Distributed Cloud

Die mit Google Distributed Cloud verwendeten Ubuntu-Images sind so gehärtet, dass sie dem CIS-Level 2 – Server-Profil entsprechen. Die folgende Tabelle enthält Gründe, warum Komponenten von Google Distributed Cloud bestimmte Empfehlungen nicht erfüllt haben.

# Empfehlung Status Begründung Betroffene Komponenten
1.1.2.1 Achten Sie darauf, dass sich /tmp in 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 /var in separater Partition liegt 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 in 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 in 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 in 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 Stellen Sie sicher, dass sich /home in separater 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 Achten Sie darauf, dass Authentifizierung für den Einzelnutzermodus 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 Administratorworkstation, Seesaw
3.3.7 Kernel-Parameter zur Verwendung der Umkehrpfadfilterung auf allen IPv4-Schnittstellen aktivieren Umgebungsabhängig Für das Load-Balancing des Clusters sind asynchrones Routing und die umgekehrte Pfaderstellung erforderlich. Nicht-Administrator-Master-Knoten Seesaw
3.5.2.6 nftables-Konfiguration für Loopback-Traffic festlegen Wird nicht behoben Anthos-Netzwerk ist von dieser Regel betroffen. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.2.8 Achten Sie darauf, dass die nftables-Standardrichtlinie zum Ablehnen der Firewall sicher ist Umgebungsabhängig Es wird empfohlen, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewallschutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
4.2.3 Berechtigungen von Protokolldateien überprü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 beschränken Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.3.4 Achten Sie darauf, dass sich Nutzer zur Rechteausweitung neu authentifizieren – sudo Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.5.1.2 Höchstalter für Passwort festlegen Gleichwertige Kontrolle VMs für Google Distributed Cloud verwenden für die Nutzeranmeldung einen SSH-Schlüssel anstelle eines Passworts Alle Clusterknoten
6.1.10 Achten Sie darauf, dass alle Dateien 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 so gehärtet, dass sie dem CIS-Level 2 – Server-Profil entsprechen. Die folgende Tabelle enthält Gründe, warum Komponenten von Google Distributed Cloud 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 wird empfohlen, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewallschutzmaß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 wird empfohlen, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewallschutzmaß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 wird empfohlen, Google Distributed Cloud in einem privaten Netzwerk mit entsprechenden Firewallschutzmaß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 Google Distributed Cloud verwenden für die Nutzeranmeldung einen SSH-Schlüssel anstelle eines Passworts 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 Google Distributed Cloud hat der AIDE-Prozess Probleme mit der hohen 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 im 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 im Feld nodeSelector an. Entfernen Sie das Feld nodeSelector, um den gleichen Cronjob-Zeitplan in verschiedenen Knotenpools auszuführen. Um eine Überlastung von Hostressourcen zu vermeiden, empfehlen wir jedoch separate Zeitpläne.

    • Die Ausführung des Cronjobs ist gemäß der Konfiguration minute=30;hour=5 täglich um 5:30 Uhr geplant. Sie können für den AIDE-Cronjob nach Bedarf verschiedene Zeitpläne 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.