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:
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 nodeSelectorcloud.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 FeldnodeSelector
an. Entfernen Sie das FeldnodeSelector
, 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.
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.