CIS-Ubuntu-Benchmark

In diesem Dokument wird der Compliancegrad von Google Distributed Cloud mit der CIS-Ubuntu-Benchmark beschrieben.

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 das Serverprofil der Stufe „Level 2“ zu erfüllen.

Evaluierung 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, aber andere Mechanismen in Google Distributed Cloud bieten gleichwertige Sicherheitskontrollen.
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 das Serverprofil für CIS-Level 2 zu erfüllen. Die folgende Tabelle enthält Gründe dafür, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht bestanden haben.

Google Distributed Cloud 1.29

Bald verfügbar.

Google Distributed Cloud 1.28

Versionen

Dieser Abschnitt bezieht sich auf die folgenden 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 gehärtet, um das Serverprofil für CIS-Level 2 zu erfüllen. Die folgende Tabelle enthält Gründe dafür, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht bestanden haben.

# Empfehlung Status Begründung Betroffene Komponenten
1.1.2.1 Achten Sie darauf, dass „/tmp“ in einer separaten Partition gespeichert ist 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 in 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 „/var/tmp“ in einer separaten Partition gespeichert ist 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 Achten Sie darauf, dass sich /home auf einer separaten Trennwand 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 eine 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 Paket RPCbind 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 Kernelparameter aktivieren, um Reverse-Path-Filter auf allen IPv4-Schnittstellen zu verwenden Umgebungsabhängig Asynchrones Routing und die Herkunft von umgekehrten Pfaden sind eine Voraussetzung für die Bereitstellung von Cluster-Load-Balancing. Nicht-Administrator-Master-Knoten Seesaw
3.5.2.6 nftables-Konfiguration für Loopback-Traffic festlegen Wird nicht behoben Das Anthos-Netzwerk ist von dieser Regel betroffen. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.2.8 Achten Sie darauf, dass nftables Standard-Firewallrichtlinie zum Ablehnen von Ablehnungen verwendet wird Umgebungsabhängig Es empfiehlt sich, 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 einschränken Umgebungsabhängig Dies ist nicht standardmäßig konfiguriert. Alle Clusterknoten, Administrator-Workstation, Seesaw
5.3.4 Achten Sie darauf, dass sich Nutzer für die Ausweitung von Berechtigungen neu authentifizieren müssen – 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 nutzen einen SSH-Schlüssel für die Nutzeranmeldung anstelle des Passworts Alle Clusterknoten
6.1.10 Sicherstellen, 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 die folgenden 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 das Serverprofil für CIS-Level 2 zu erfüllen. Die folgende Tabelle enthält Gründe dafür, warum Google Distributed Cloud-Komponenten bestimmte Empfehlungen nicht bestanden 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 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 empfiehlt sich, 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 empfiehlt sich, 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 Journallogs (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 nutzen einen SSH-Schlüssel für die Nutzeranmeldung anstelle des 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 einer hohen Ressourcennutzung verursacht.

Der AIDE-Prozess ist auf Knoten 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 auf dem Knotenpool pool-1 ausgeführt, wie vom nodeSelector cloud.google.com/gke-nodepool: pool-1 angegeben. Sie können den AIDE-Prozess so konfigurieren, dass er in beliebig vielen Knotenpools ausgeführt wird. Geben Sie dazu die Pools im Feld nodeSelector an. Entfernen Sie das Feld nodeSelector, um denselben Cronjob-Zeitplan in verschiedenen Knotenpools auszuführen. Wir empfehlen jedoch, separate Zeitpläne einzuhalten, um Überlastungen von Hostressourcen zu vermeiden.

    • Der Cronjob wird laut Konfiguration minute=30;hour=5 täglich um 5:30 Uhr ausgeführt. Sie können je nach Bedarf unterschiedliche Zeitpläne für den AIDE-Cronjob 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.