CIS-Ubuntu-Benchmark

In diesem Dokument wird das Maß der Compliance beschrieben, das Anthos-Cluster auf VMware (GKE On-Prem) mit der CIS-Ubuntu-Benchmark hat.

Versionen

Dieses Dokument bezieht sich auf folgende Versionen:

Anthos-Version Ubuntu-Version Version der CIS-Ubuntu-Benchmark CIS-Level
1.9 18.04 LTS v2.0.1 Level-2-Server

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 Anthos-Cluster auf VMware verwendeten Ubuntu-Images sind gehärtet, um das Level-2-Serverprofil zu erfüllen.

Bewertung zu Anthos-Cluster auf VMware

Wir verwenden die folgenden Werte, um den Status von Ubuntu-Empfehlungen in Anthos-Cluster auf VMware anzugeben:

Status Beschreibung
Bestanden Entspricht einer Benchmarkempfehlung.
Nicht bestanden Entspricht nicht einer Benchmarkempfehlung.
Gleichwertige Kontrolle Entspricht nicht genau den Bedingungen in einer Benchmarkempfehlung, aber andere Mechanismen in Anthos-Cluster auf VMware bieten gleichwertige Sicherheitskontrollen.
Umgebungsabhängig Anthos-Cluster auf VMware konfiguriert keine Elemente, die sich auf eine Benchmarkempfehlung beziehen. Ihre Konfiguration bestimmt, ob Ihre Umgebung der Empfehlung entspricht.

Status von Anthos-Cluster auf VMware

Die mit Anthos-Cluster auf VMware verwendeten Ubuntu-Images sind gehärtet, um das Level-2-Serverprofil zu erfüllen. In der folgenden Tabelle sind die Begründungen aufgeführt, warum Anthos-Cluster auf VMware-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.6 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.7 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.11 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.12 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.13 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.21 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
1.8.1.2 Sicherstellen, dass das Warnungsbanner für die lokale Anmeldung richtig konfiguriert ist Bewertet Gleichwertige Kontrolle Außerdem wendet Anthos die DISA-STIG-Härtung auf Knoten an, wodurch das Warnungsbanner entsprechend aktualisiert wird. Alle Clusterknoten, Seesaw
3.1.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.2.5 Sicherstellen, dass Firewallregeln für alle offenen Ports vorhanden sind Nicht bewertet Umgebungsabhängig Es empfiehlt sich, Anthos auf VMware in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.4.1.1 Sicherstellen, dass die Standard-DENY-Firewallrichtlinie festgelegt ist Bewertet Umgebungsabhängig Es empfiehlt sich, Anthos auf VMware in einem privaten Netzwerk mit entsprechenden Firewall-Schutzmaßnahmen bereitzustellen. Die erforderlichen Firewallregeln finden Sie hier. Alle Clusterknoten, Administrator-Workstation, Seesaw
3.5.4.1.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.4.2.1 Sicherstellen, dass die Standard-DENY-Firewallrichtlinie für IPv6 festgelegt ist Bewertet Umgebungsabhängig Es empfiehlt sich, Anthos auf VMware 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.4.2.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.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 Anthos auf VMWare 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
5.2.12 Sicherstellen, dass SSH-PermitUserEnvironment deaktiviert ist Bewertet Nicht bestanden Diese Einstellung steht in Konflikt mit den DISA-STIG-Härtungseinstellungen. Alle Clusterknoten, Seesaw
5.2.13 Sicherstellen, dass nur starke Chiffren verwendet werden Bewertet Gleichwertige Kontrolle Für die Anwendung von DISA-STIG wird eine alternative Liste unterstützter Chiffren verwendet, die nicht 1:1 mit den in dieser Benchmark verwendeten übereinstimmt. Alle Clusterknoten
2.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.19 Sicherstellen, dass das SSH-Warnungsbanner konfiguriert ist Bewertet Gleichwertige Kontrolle Das SSH-Warnungsbanner wird durch die Anwendung der DISA-STIG-Härtungskonfiguration geändert. Alle Clusterknoten, Seesaw
6.1.6 Sicherstellen, dass Berechtigungen für /etc/passwd konfiguriert sind Bewertet Nicht bestanden Dieser spezifische Test ist zu restriktiv und wird von Canonical aktualisiert (Link). Alle Clusterknoten, Administrator-Workstation, Seesaw
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.10 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 Anthos-Cluster auf VMware hat der AIDE-Prozess Probleme bei hoher Ressourcennutzung verursacht.

Ab Version 1.9.7 ist der AIDE-Prozess 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 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.