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