This document describes the level of compliance that Google Distributed Cloud has with the CIS Ubuntu Benchmark.
Access the benchmark
The CIS Ubuntu Benchmark is available on the CIS website.
Configuration profile
In the CIS Ubuntu Benchmark document, you can read about configuration profiles. The Ubuntu images used by Google Distributed Cloud are hardened to meet the Level 2 - Server profile.
Evaluation on Google Distributed Cloud
We use the following values to specify the status of Ubuntu recommendations in Google Distributed Cloud.
Status | Description |
---|---|
Pass | Complies with a benchmark recommendation. |
Fail | Does not comply with a benchmark recommendation. |
Equivalent control | Does not comply with the exact terms in a benchmark recommendation, but other mechanisms in Google Distributed Cloud provide equivalent security controls. |
Depends on environment | Google Distributed Cloud does not configure items related to a benchmark recommendation. Your configuration determines whether your environment complies with the recommendation. |
Status of Google Distributed Cloud
The Ubuntu images used with Google Distributed Cloud are hardened to meet the CIS
Level 2 - Server profile. The following table gives justifications for
why Google Distributed Cloud components did not pass certain recommendations.
Benchmarks that have a Passed
status are not included in the following
table.
1.32
Versions
This section refers to these versions:
Google Distributed Cloud version | Ubuntu version | CIS Ubuntu Benchmark version | CIS level |
---|---|---|---|
1.32 | 22.04 LTS | v1.0.0 | Level 2 Server |
Failed recommendations
The following table lists the recommendations for which Google Distributed Cloud deviates from the benchmark's recommendations. For each recommendation, we categorize the failure status, provide a justification for the failure, and list the affected components.
# | Recommendation | Status | Justification | Affected Components |
---|---|---|---|---|
1.1.2.1 | Ensure /tmp Located On Separate Partition | Fail | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.3.1 | Ensure /var Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.4.1 | Ensure /var/tmp Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.5.1 | Ensure /var/log Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.6.1 | Ensure /var/log/audit Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.7.1 | Ensure /home Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.4.1 | Set Boot Loader Password in grub2 | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
1.4.3 | Ensure Authentication Required for Single User Mode | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
2.3.6 | Uninstall rpcbind Package | Failed | rpcbind is installed on the Canonical cloud image, though it's not enabled by default. The rule is failing because it requires it to be not installed | All cluster nodes Admin workstation, Seesaw |
3.3.7 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces | Depends on Environment | Asynchronous routing and reverse path origination is a requirement for delivering cluster load balancing. | All cluster nodes Seesaw |
3.5.2.6 | Set nftables configuration for loopback traffic | Won't fix | Anthos Network got affected by this rule. | All cluster nodes, Admin workstation, Seesaw |
3.5.2.8 | Ensure nftables default deny firewall policy | Depends on Environment | It is recommended that Google Distributed Cloud be deployed on a private network with appropriate firewall protections. The required firewall rules can be found here. | All cluster nodes, Admin workstation, Seesaw |
4.2.3 | Verify permissions of log files | Fail | This specific test is overly restrictive and unrealistic as many services may require a group to write log files. This item may be removed in a future benchmark. | All cluster nodes, Admin workstation, Seesaw |
5.2.18 | Limit Users' SSH Access | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.3.4 | Ensure Users Re-Authenticate for Privilege Escalation - sudo | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.5.1.2 | Set Password Maximum Age | Equivalent control | VMs for Google Distributed Cloud rely on ssh key for user login, instead of using password | All cluster nodes |
6.1.10 | Ensure All Files Are Owned by a User | Fail | Permissions have been left as default. | All cluster nodes |
Passed recommendations
The following table lists the recommendations for which Google Distributed Cloud complies with the benchmark's recommendations.
# | Recommendation | Severity | Status |
---|---|---|---|
1.1.8.1 | Add nodev Option to /dev/shm | medium | pass |
1.1.8.2 | Add noexec Option to /dev/shm | medium | pass |
1.1.8.3 | Add nosuid Option to /dev/shm | medium | pass |
1.5.2 | Package "prelink" Must not be Installed | medium | pass |
1.5.3 | Disable Apport Service | unknown | pass |
1.5.4 | Disable Core Dumps for All Users | medium | pass |
1.5.4 | Disable Core Dumps for SUID programs | medium | pass |
1.6.1.1 | Ensure AppArmor is installed | medium | pass |
1.6.1.2 | Ensure AppArmor is enabled in the bootloader configuration | medium | pass |
1.6.1.4 | Enforce all AppArmor Profiles | medium | pass |
1.7.1 | Modify the System Message of the Day Banner | medium | pass |
1.7.3 | Modify the System Login Banner for Remote Connections | medium | pass |
1.7.4 | Verify Group Ownership of Message of the Day Banner | medium | pass |
1.7.4 | Verify ownership of Message of the Day Banner | medium | pass |
1.7.4 | Verify permissions on Message of the Day Banner | medium | pass |
1.7.5 | Verify Group Ownership of System Login Banner | medium | pass |
1.7.5 | Verify ownership of System Login Banner | medium | pass |
1.7.5 | Verify permissions on System Login Banner | medium | pass |
1.7.6 | Verify Group Ownership of System Login Banner for Remote Connections | medium | pass |
1.7.6 | Verify ownership of System Login Banner for Remote Connections | medium | pass |
1.7.6 | Verify permissions on System Login Banner for Remote Connections | medium | pass |
2.1.1.1 | Install the systemd_timesyncd Service | high | pass |
2.1.3.2 | Enable systemd_timesyncd Service | high | pass |
2.2.1 | Remove the X Windows Package Group | medium | pass |
2.2.10 | Uninstall cyrus-imapd Package | unknown | pass |
2.2.10 | Uninstall dovecot Package | unknown | pass |
2.2.11 | Uninstall Samba Package | unknown | pass |
2.2.12 | Uninstall squid Package | unknown | pass |
2.2.13 | Uninstall net-snmp Package | unknown | pass |
2.2.14 | Uninstall the nis package | low | pass |
2.2.15 | Ensure Mail Transfer Agent is not Listening on any non-loopback Address | medium | pass |
2.2.16 | Uninstall rsync Package | medium | pass |
2.2.2 | Disable Avahi Server Software | medium | pass |
2.2.2 | Uninstall avahi Server Package | medium | pass |
2.2.3 | Disable the CUPS Service | unknown | pass |
2.2.3 | Uninstall CUPS Package | unknown | pass |
2.2.4 | Uninstall DHCP Server Package | medium | pass |
2.2.5 | Uninstall openldap-servers Package | low | pass |
2.2.6 | Uninstall nfs-kernel-server Package | low | pass |
2.2.7 | Uninstall bind Package | low | pass |
2.2.8 | Uninstall vsftpd Package | high | pass |
2.2.9 | Uninstall httpd Package | unknown | pass |
2.2.9 | Uninstall nginx Package | unknown | pass |
2.3.3 | Uninstall talk Package | medium | pass |
2.3.5 | Ensure LDAP client is not installed | low | pass |
3.1.1, 3.1.5 | Disable SSH Access via Empty Passwords | high | pass |
3.1.1, 3.1.5 | Disable SSH Root Login | medium | pass |
3.1.1, 3.1.5 | Verify Only Root Has UID 0 | high | pass |
3.1.11 | Set Interactive Session Timeout | medium | pass |
3.1.11 | Set SSH Client Alive Count Max | medium | pass |
3.1.11 | Set SSH Client Alive Interval | medium | pass |
3.1.12 | Disable Host-Based Authentication | medium | pass |
3.1.12 | Disable SSH Support for .rhosts Files | medium | pass |
3.1.12 | Do Not Allow SSH Environment Options | medium | pass |
3.1.13, 3.13.10 | Verify Permissions on SSH Server Private *_key Key Files | medium | pass |
3.1.13, 3.13.10 | Verify Permissions on SSH Server Public *.pub Key Files | medium | pass |
3.1.13 | Remove telnet Clients | low | pass |
3.1.13 | Uninstall rsh Package | unknown | pass |
3.1.16 | Deactivate Wireless Network Interfaces | medium | pass |
3.1.20 | Configure Accepting Router Advertisements on All IPv6 Interfaces | medium | pass |
3.1.20 | Configure Kernel Parameter for Accepting Secure Redirects By Default | medium | pass |
3.1.20 | Disable Accepting ICMP Redirects for All IPv4 Interfaces | medium | pass |
3.1.20 | Disable Accepting ICMP Redirects for All IPv6 Interfaces | medium | pass |
3.1.20 | Disable Accepting Router Advertisements on all IPv6 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting ICMP Redirects by Default on IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting ICMP Redirects by Default on IPv6 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Secure ICMP Redirects on all IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on all IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on all IPv6 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on IPv4 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on IPv6 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Sending ICMP Redirects on all IPv4 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Sending ICMP Redirects on all IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Ignore Bogus ICMP Error Responses on IPv4 Interfaces | unknown | pass |
3.1.20 | Enable Kernel Parameter to Ignore ICMP Broadcast Echo Requests on IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Log Martian Packets on all IPv4 Interfaces | unknown | pass |
3.1.20 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces by Default | medium | pass |
3.1.20 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Use TCP Syncookies on Network Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Log Martian Packets on all IPv4 Interfaces by Default | unknown | pass |
3.1.21 | Disable Modprobe Loading of USB Storage Driver | medium | pass |
3.1.7 | Enable Randomized Layout of Virtual Address Space | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - rename | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - renameat | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - unlink | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - unlinkat | medium | pass |
3.1.7 | Ensure auditd Collects Information on Exporting to Media (successful) | medium | pass |
3.1.7 | Ensure auditd Collects Information on Kernel Module Loading - init_module | medium | pass |
3.1.7 | Ensure auditd Collects Information on Kernel Module Unloading - delete_module | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - su | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - sudo | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - sudoedit | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - umount | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - unix_chkpwd | medium | pass |
3.1.7 | Ensure auditd Collects System Administrator Actions | medium | pass |
3.1.7 | Record Any Attempts to Run chcon | medium | pass |
3.1.7 | Record Attempts to Alter Logon and Logout Events - lastlog | medium | pass |
3.1.7 | Record Attempts to Alter Logon and Logout Events - tallylog | medium | pass |
3.1.7 | Record Attempts to Alter Process and Session Initiation Information | medium | pass |
3.1.7 | Record Attempts to Alter the localtime File | medium | pass |
3.1.7 | Record attempts to alter time through adjtimex | medium | pass |
3.1.7 | Record Attempts to Alter Time Through clock_settime | medium | pass |
3.1.7 | Record attempts to alter time through settimeofday | medium | pass |
3.1.7 | Record Attempts to Alter Time Through stime | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - chmod | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - chown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchmod | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchmodat | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchownat | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fremovexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fsetxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lchown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lremovexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lsetxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - removexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - setxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Network Environment | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/group | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/gshadow | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/passwd | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/security/opasswd | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/shadow | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - creat | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - ftruncate | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - open | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - openat | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - truncate | medium | pass |
3.1.8 | Lock Accounts After Failed Password Attempts | medium | pass |
3.1.8 | Record Events that Modify the System's Mandatory Access Controls | medium | pass |
3.1.8 | Set Lockout Time for Failed Password Attempts | medium | pass |
3.1.9 | Enable SSH Warning Banner | medium | pass |
3.1.9 | Modify the System Login Banner | medium | pass |
3.3.1, 3.3.2, 3.3.6 | Enable auditd Service | medium | pass |
3.3.1, 3.4.3 | Make the auditd Configuration Immutable | medium | pass |
3.3.1 | Configure auditd admin_space_left Action on Low Disk Space | medium | pass |
3.3.1 | Configure auditd mail_acct Action on Low Disk Space | medium | pass |
3.3.1 | Configure auditd space_left Action on Low Disk Space | medium | pass |
3.3.1 | System Audit Logs Must Be Group Owned By Root | medium | pass |
3.3.1 | System Audit Logs Must Be Owned By Root | medium | pass |
3.3.1 | System Audit Logs Must Have Mode 0640 or Less Permissive | medium | pass |
3.4.3 | Disable RDS Support | low | pass |
3.4.4 | Disable TIPC Support | low | pass |
3.4.5 | Verify /boot/grub/grub.cfg Permissions | medium | pass |
3.4.6 | Disable DCCP Support | medium | pass |
3.4.6 | Disable Mounting of cramfs | low | pass |
3.4.6 | Disable Mounting of squashfs | low | pass |
3.4.6 | Disable Mounting of udf | low | pass |
3.4.6 | Disable SCTP Support | medium | pass |
3.4.6 | Disable the Automounter | medium | pass |
3.5.1.2 | Remove iptables-persistent Package | medium | pass |
3.5.10 | Verify All Account Password Hashes are Shadowed | medium | pass |
3.5.2.1 | Install nftables Package | medium | pass |
3.5.2.10 | Ensure nftables rules are permanent | medium | pass |
3.5.2.4 | Ensure a Table Exists for Nftables | medium | pass |
3.5.2.5 | Ensure Base Chains Exist for Nftables | medium | pass |
3.5.2.9 | Verify nftables Service is Enabled | medium | pass |
3.5.3.1.1 | Install iptables Package | medium | pass |
3.5.3.1.3 | Remove ufw Package | medium | pass |
3.5.6 | Set Account Expiration Following Inactivity | medium | pass |
3.5.8 | Limit Password Reuse | medium | pass |
3.5.8 | Set Password Minimum Age | medium | pass |
3.5.8 | Set Password Warning Age | medium | pass |
4.1.1.1 | Ensure the audit Subsystem is Installed | medium | pass |
4.1.1.4 | Extend Audit Backlog Limit for the Audit Daemon | low | pass |
4.1.2.1 | Configure auditd Max Log File Size | medium | pass |
4.1.2.2 | Configure auditd max_log_file_action Upon Reaching Maximum Log Size | medium | pass |
4.1.3.12 | Record Attempts to Alter Logon and Logout Events - faillog | medium | pass |
4.1.3.16 | Record Any Attempts to Run setfacl | medium | pass |
4.1.3.17 | Record Any Attempts to Run chacl | medium | pass |
4.1.3.18 | Ensure auditd Collects Information on the Use of Privileged Commands - usermod | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - insmod | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - modprobe | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - rmmod | medium | pass |
4.1.3.2 | Record Events When Privileged Executables Are Run | medium | pass |
4.1.3.3 | Record Attempts to perform maintenance activities | medium | pass |
4.1.4.10 | Verify that audit tools are owned by group root | medium | pass |
4.1.4.4 | System Audit Logs Must Have Mode 0750 or Less Permissive | medium | pass |
4.1.4.5 | Verify Permissions on /etc/audit/auditd.conf | medium | pass |
4.1.4.5 | Verify Permissions on /etc/audit/rules.d/*.rules | medium | pass |
4.1.4.6 | Audit Configuration Files Must Be Owned By Root | medium | pass |
4.1.4.7 | Audit Configuration Files Must Be Owned By Group root | medium | pass |
4.1.4.8 | Verify that audit tools Have Mode 0755 or less | medium | pass |
4.1.4.9 | Verify that audit tools are owned by root | medium | pass |
4.2.1.1.1 | Install systemd-journal-remote Package | medium | pass |
4.2.1.1.4 | Disable systemd-journal-remote Socket | medium | pass |
4.2.1.2 | Enable systemd-journald Service | medium | pass |
4.2.1.3 | Ensure journald is configured to compress large log files | medium | pass |
4.2.1.4 | Ensure journald is configured to write log files to persistent disk | medium | pass |
4.2.2.1 | Ensure rsyslog is Installed | medium | pass |
4.2.2.2 | Enable rsyslog Service | medium | pass |
4.2.2.4 | Ensure rsyslog Default File Permissions Configured | medium | pass |
4.2.2.7 | Ensure rsyslog Does Not Accept Remote Messages Unless Acting As Log Server | medium | pass |
5.1.1 | Enable cron Service | medium | pass |
5.1.2 | Verify Group Who Owns Crontab | medium | pass |
5.1.2 | Verify Owner on crontab | medium | pass |
5.1.2 | Verify Permissions on crontab | medium | pass |
5.1.3 | Verify Group Who Owns cron.hourly | medium | pass |
5.1.3 | Verify Owner on cron.hourly | medium | pass |
5.1.3 | Verify Permissions on cron.hourly | medium | pass |
5.1.4 | Verify Group Who Owns cron.daily | medium | pass |
5.1.4 | Verify Owner on cron.daily | medium | pass |
5.1.4 | Verify Permissions on cron.daily | medium | pass |
5.1.5 | Verify Group Who Owns cron.weekly | medium | pass |
5.1.5 | Verify Owner on cron.weekly | medium | pass |
5.1.5 | Verify Permissions on cron.weekly | medium | pass |
5.1.6 | Verify Group Who Owns cron.monthly | medium | pass |
5.1.6 | Verify Owner on cron.monthly | medium | pass |
5.1.6 | Verify Permissions on cron.monthly | medium | pass |
5.1.7 | Verify Group Who Owns cron.d | medium | pass |
5.1.7 | Verify Owner on cron.d | medium | pass |
5.1.7 | Verify Permissions on cron.d | medium | pass |
5.1.8 | Ensure that /etc/cron.deny does not exist | medium | pass |
5.1.8 | Verify Group Who Owns /etc/cron.allow file | medium | pass |
5.1.8 | Verify Permissions on /etc/cron.allow file | medium | pass |
5.1.8 | Verify User Who Owns /etc/cron.allow file | medium | pass |
5.1.9 | Ensure that /etc/at.deny does not exist | medium | pass |
5.1.9 | Verify Group Who Owns /etc/at.allow file | medium | pass |
5.1.9 | Verify Permissions on /etc/at.allow file | medium | pass |
5.1.9 | Verify User Who Owns /etc/at.allow file | medium | pass |
5.2.1 | Verify Group Who Owns SSH Server config file | medium | pass |
5.2.1 | Verify Owner on SSH Server config file | medium | pass |
5.2.1 | Verify Permissions on SSH Server config file | medium | pass |
5.2.12 | Disable X11 Forwarding | medium | pass |
5.2.13 | Use Only Strong Ciphers | medium | pass |
5.2.14 | Use Only Strong MACs | medium | pass |
5.2.15 | Use Only Strong Key Exchange algorithms | medium | pass |
5.2.16 | Disable SSH TCP Forwarding | medium | pass |
5.2.18 | Set SSH authentication attempt limit | medium | pass |
5.2.19 | Ensure SSH MaxStartups is configured | medium | pass |
5.2.20 | Set SSH MaxSessions limit | medium | pass |
5.2.21 | Ensure SSH LoginGraceTime is configured | medium | pass |
5.2.5 | Set LogLevel to INFO | low | pass |
5.2.6 | Enable PAM | medium | pass |
5.3.1 | Install sudo Package | medium | pass |
5.3.2 | Ensure Only Users Logged In To Real tty Can Execute Sudo - sudo use_pty | medium | pass |
5.3.3 | Ensure Sudo Logfile Exists - sudo logfile | low | pass |
5.3.5 | Ensure Users Re-Authenticate for Privilege Escalation - sudo !authenticate | medium | pass |
5.3.6 | Require Re-Authentication When Using the sudo Command | medium | pass |
5.3.7 | Enforce Usage of pam_wheel with Group Parameter for su Authentication | medium | pass |
5.3.7 | Ensure the Group Used by pam_wheel Module Exists on System and is Empty | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Authentication Retry Prompts Permitted Per-Session | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Different Categories | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Digit Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Length | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Lowercase Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Special Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Uppercase Characters | medium | pass |
5.4.1 | Install pam_pwquality Package | medium | pass |
5.4.2 | Set Interval For Counting Failed Password Attempts | medium | pass |
5.4.4 | Set Password Hashing Algorithm in /etc/login.defs | medium | pass |
5.5.1.1 | Set Existing Passwords Minimum Age | medium | pass |
5.5.1.2 | Set Existing Passwords Maximum Age | medium | pass |
5.5.1.5 | Ensure all users last password change date is in the past | medium | pass |
5.5.2 | Ensure that System Accounts Do Not Run a Shell Upon Login | medium | pass |
5.5.3 | Verify Root Has A Primary GID 0 | high | pass |
5.5.4 | Ensure the Default Bash Umask is Set Correctly | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly For Interactive Users | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly in /etc/profile | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly in login.defs | medium | pass |
6.1.1 | Verify Group Who Owns passwd File | medium | pass |
6.1.1 | Verify Permissions on passwd File | medium | pass |
6.1.1 | Verify User Who Owns passwd File | medium | pass |
6.1.2 | Verify Group Who Owns Backup passwd File | medium | pass |
6.1.2 | Verify Permissions on Backup passwd File | medium | pass |
6.1.2 | Verify User Who Owns Backup passwd File | medium | pass |
6.1.3 | Verify Group Who Owns group File | medium | pass |
6.1.3 | Verify Permissions on group File | medium | pass |
6.1.3 | Verify User Who Owns group File | medium | pass |
6.1.4 | Verify Group Who Owns Backup group File | medium | pass |
6.1.4 | Verify Permissions on Backup group File | medium | pass |
6.1.4 | Verify User Who Owns Backup group File | medium | pass |
6.1.5 | Verify Group Who Owns shadow File | medium | pass |
6.1.5 | Verify Permissions on shadow File | medium | pass |
6.1.5 | Verify User Who Owns shadow File | medium | pass |
6.1.6 | Verify Group Who Owns Backup shadow File | medium | pass |
6.1.6 | Verify Permissions on Backup shadow File | medium | pass |
6.1.6 | Verify User Who Owns Backup shadow File | medium | pass |
6.1.7 | Verify Group Who Owns gshadow File | medium | pass |
6.1.7 | Verify Permissions on gshadow File | medium | pass |
6.1.7 | Verify User Who Owns gshadow File | medium | pass |
6.1.8 | Verify Group Who Owns Backup gshadow File | medium | pass |
6.1.8 | Verify Permissions on Backup gshadow File | medium | pass |
6.1.8 | Verify User Who Owns Backup gshadow File | medium | pass |
6.2.11 | All Interactive Users Home Directories Must Exist | medium | pass |
6.2.12 | All Interactive User Home Directories Must Be Group-Owned By The Primary Group | medium | pass |
6.2.12 | All Interactive User Home Directories Must Be Owned By The Primary User | medium | pass |
6.2.13 | All Interactive User Home Directories Must Have mode 0750 Or Less Permissive | medium | pass |
6.2.14 | Verify No netrc Files Exist | medium | pass |
6.2.15 | Verify No .forward Files Exist | medium | pass |
6.2.16 | Remove Rsh Trust Files | high | pass |
6.2.17 | User Initialization Files Must Be Group-Owned By The Primary Group | medium | pass |
6.2.17 | User Initialization Files Must Be Owned By the Primary User | medium | pass |
6.2.17 | User Initialization Files Must Not Run World-Writable Programs | medium | pass |
6.2.2 | Ensure There Are No Accounts With Blank or Null Passwords | high | pass |
6.2.3 | All GIDs referenced in /etc/passwd must be defined in /etc/group | low | pass |
6.2.4 | Ensure shadow group is empty | medium | pass |
6.2.5 | Ensure All Accounts on the System Have Unique User IDs | medium | pass |
6.2.6 | Ensure All Groups on the System Have Unique Group ID | medium | pass |
6.2.7 | Ensure All Accounts on the System Have Unique Names | medium | pass |
6.2.8 | Ensure All Groups on the System Have Unique Group Names | medium | pass |
6.2.9 | Ensure that Root's Path Does Not Include Relative Paths or Null Directories | unknown | pass |
6.2.9 | Ensure that Root's Path Does Not Include World or Group-Writable Directories | medium | pass |
Not applicable recommendations
The following table lists the recommendations that don't apply for Google Distributed Cloud.
# | Recommendation | Severity | Status |
---|---|---|---|
1.1.2.2 | Add nodev Option to /tmp | medium | notapplicable |
1.1.2.3 | Add noexec Option to /tmp | medium | notapplicable |
1.1.2.4 | Add nosuid Option to /tmp | medium | notapplicable |
1.1.3.2 | Add nodev Option to /var | medium | notapplicable |
1.1.3.3 | Add nosuid Option to /var | medium | notapplicable |
1.1.4.2 | Add noexec Option to /var/tmp | medium | notapplicable |
1.1.4.3 | Add nosuid Option to /var/tmp | medium | notapplicable |
1.1.4.4 | Add nodev Option to /var/tmp | medium | notapplicable |
1.1.5.2 | Add nodev Option to /var/log | medium | notapplicable |
1.1.5.3 | Add noexec Option to /var/log | medium | notapplicable |
1.1.5.4 | Add nosuid Option to /var/log | medium | notapplicable |
1.1.6.2 | Add noexec Option to /var/log/audit | medium | notapplicable |
1.1.6.3 | Add nodev Option to /var/log/audit | medium | notapplicable |
1.1.6.4 | Add nosuid Option to /var/log/audit | medium | notapplicable |
1.1.7.2 | Add nodev Option to /home | unknown | notapplicable |
1.1.7.3 | Add nosuid Option to /home | medium | notapplicable |
1.10 | Configure GNOME3 DConf User Profile | high | notapplicable |
1.8.1 | Remove the GDM Package Group | medium | notapplicable |
1.8.10 | Disable XDMCP in GDM | high | notapplicable |
2.1.4.1 | Configure server restrictions for ntpd | medium | notapplicable |
2.1.4.3 | Configure ntpd To Run As ntp User | medium | notapplicable |
2.1.4.4 | Enable the NTP Daemon | high | notapplicable |
2.2.15 | Disable Postfix Network Listening | medium | notapplicable |
3.1.10 | Enable GNOME3 Screensaver Lock After Idle Period | medium | notapplicable |
3.1.10 | Set GNOME3 Screensaver Lock Delay After Activation Period | medium | notapplicable |
3.1.7 | Disable GNOME3 Automount Opening | medium | notapplicable |
3.1.7 | Disable GNOME3 Automount running | low | notapplicable |
3.1.7 | Disable GNOME3 Automounting | medium | notapplicable |
3.4.5 | Set the UEFI Boot Loader Password | high | notapplicable |
3.5.1.3 | Verify ufw Enabled | medium | notapplicable |
3.5.1.4 | Set UFW Loopback Traffic | medium | notapplicable |
3.5.1.6 | Ensure ufw Firewall Rules Exist for All Open Ports | medium | notapplicable |
3.5.1.7 | Ensure ufw Default Deny Firewall Policy | medium | notapplicable |
3.5.3.2.1 | Set Default iptables Policy for Incoming Packets | medium | notapplicable |
3.5.3.2.2 | Set configuration for loopback traffic | medium | notapplicable |
3.5.3.2.4 | Ensure iptables Firewall Rules Exist for All Open Ports | medium | notapplicable |
3.5.3.3.1 | Set Default ip6tables Policy for Incoming Packets | medium | notapplicable |
3.5.3.3.4 | Ensure ip6tables Firewall Rules Exist for All Open Ports | medium | notapplicable |
1.31
Versions
This section refers to these versions:
Google Distributed Cloud version | Ubuntu version | CIS Ubuntu Benchmark version | CIS level |
---|---|---|---|
1.31 | 22.04 LTS | v1.0.0 | Level 2 Server |
Failed recommendations
The following table lists the recommendations for which Google Distributed Cloud deviates from the benchmark's recommendations. For each recommendation, we categorize the failure status, provide a justification for the failure, and list the affected components.
# | Recommendation | Status | Justification | Affected Components |
---|---|---|---|---|
1.1.2.1 | Ensure /tmp Located On Separate Partition | Fail | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.3.1 | Ensure /var Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.4.1 | Ensure /var/tmp Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.5.1 | Ensure /var/log Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.6.1 | Ensure /var/log/audit Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.7.1 | Ensure /home Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.4.1 | Set Boot Loader Password in grub2 | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
1.4.3 | Ensure Authentication Required for Single User Mode | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
2.3.6 | Uninstall rpcbind Package | Failed | rpcbind is installed on the Canonical cloud image, though it's not enabled by default. The rule is failing because it requires it to be not installed | All cluster nodes Admin workstation, Seesaw |
3.3.7 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces | Depends on Environment | Asynchronous routing and reverse path origination is a requirement for delivering cluster load balancing. | All cluster nodes Seesaw |
3.5.2.6 | Set nftables configuration for loopback traffic | Won't fix | Anthos Network got affected by this rule. | All cluster nodes, Admin workstation, Seesaw |
3.5.2.8 | Ensure nftables default deny firewall policy | Depends on Environment | It is recommended that Google Distributed Cloud be deployed on a private network with appropriate firewall protections. The required firewall rules can be found here. | All cluster nodes, Admin workstation, Seesaw |
4.2.3 | Verify permissions of log files | Fail | This specific test is overly restrictive and unrealistic as many services may require a group to write log files. This item may be removed in a future benchmark. | All cluster nodes, Admin workstation, Seesaw |
5.2.18 | Limit Users' SSH Access | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.3.4 | Ensure Users Re-Authenticate for Privilege Escalation - sudo | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.5.1.2 | Set Password Maximum Age | Equivalent control | VMs for Google Distributed Cloud rely on ssh key for user login, instead of using password | All cluster nodes |
6.1.10 | Ensure All Files Are Owned by a User | Fail | Permissions have been left as default. | All cluster nodes |
Passed recommendations
The following table lists the recommendations for which Google Distributed Cloud complies with the benchmark's recommendations.
# | Recommendation | Severity | Status |
---|---|---|---|
1.1.8.1 | Add nodev Option to /dev/shm | medium | pass |
1.1.8.2 | Add noexec Option to /dev/shm | medium | pass |
1.1.8.3 | Add nosuid Option to /dev/shm | medium | pass |
1.5.2 | Package "prelink" Must not be Installed | medium | pass |
1.5.3 | Disable Apport Service | unknown | pass |
1.5.4 | Disable Core Dumps for All Users | medium | pass |
1.5.4 | Disable Core Dumps for SUID programs | medium | pass |
1.6.1.1 | Ensure AppArmor is installed | medium | pass |
1.6.1.2 | Ensure AppArmor is enabled in the bootloader configuration | medium | pass |
1.6.1.4 | Enforce all AppArmor Profiles | medium | pass |
1.7.1 | Modify the System Message of the Day Banner | medium | pass |
1.7.3 | Modify the System Login Banner for Remote Connections | medium | pass |
1.7.4 | Verify Group Ownership of Message of the Day Banner | medium | pass |
1.7.4 | Verify ownership of Message of the Day Banner | medium | pass |
1.7.4 | Verify permissions on Message of the Day Banner | medium | pass |
1.7.5 | Verify Group Ownership of System Login Banner | medium | pass |
1.7.5 | Verify ownership of System Login Banner | medium | pass |
1.7.5 | Verify permissions on System Login Banner | medium | pass |
1.7.6 | Verify Group Ownership of System Login Banner for Remote Connections | medium | pass |
1.7.6 | Verify ownership of System Login Banner for Remote Connections | medium | pass |
1.7.6 | Verify permissions on System Login Banner for Remote Connections | medium | pass |
2.1.1.1 | Install the systemd_timesyncd Service | high | pass |
2.1.3.2 | Enable systemd_timesyncd Service | high | pass |
2.2.1 | Remove the X Windows Package Group | medium | pass |
2.2.10 | Uninstall cyrus-imapd Package | unknown | pass |
2.2.10 | Uninstall dovecot Package | unknown | pass |
2.2.11 | Uninstall Samba Package | unknown | pass |
2.2.12 | Uninstall squid Package | unknown | pass |
2.2.13 | Uninstall net-snmp Package | unknown | pass |
2.2.14 | Uninstall the nis package | low | pass |
2.2.15 | Ensure Mail Transfer Agent is not Listening on any non-loopback Address | medium | pass |
2.2.16 | Uninstall rsync Package | medium | pass |
2.2.2 | Disable Avahi Server Software | medium | pass |
2.2.2 | Uninstall avahi Server Package | medium | pass |
2.2.3 | Disable the CUPS Service | unknown | pass |
2.2.3 | Uninstall CUPS Package | unknown | pass |
2.2.4 | Uninstall DHCP Server Package | medium | pass |
2.2.5 | Uninstall openldap-servers Package | low | pass |
2.2.6 | Uninstall nfs-kernel-server Package | low | pass |
2.2.7 | Uninstall bind Package | low | pass |
2.2.8 | Uninstall vsftpd Package | high | pass |
2.2.9 | Uninstall httpd Package | unknown | pass |
2.2.9 | Uninstall nginx Package | unknown | pass |
2.3.3 | Uninstall talk Package | medium | pass |
2.3.5 | Ensure LDAP client is not installed | low | pass |
3.1.1, 3.1.5 | Disable SSH Access via Empty Passwords | high | pass |
3.1.1, 3.1.5 | Disable SSH Root Login | medium | pass |
3.1.1, 3.1.5 | Verify Only Root Has UID 0 | high | pass |
3.1.11 | Set Interactive Session Timeout | medium | pass |
3.1.11 | Set SSH Client Alive Count Max | medium | pass |
3.1.11 | Set SSH Client Alive Interval | medium | pass |
3.1.12 | Disable Host-Based Authentication | medium | pass |
3.1.12 | Disable SSH Support for .rhosts Files | medium | pass |
3.1.12 | Do Not Allow SSH Environment Options | medium | pass |
3.1.13, 3.13.10 | Verify Permissions on SSH Server Private *_key Key Files | medium | pass |
3.1.13, 3.13.10 | Verify Permissions on SSH Server Public *.pub Key Files | medium | pass |
3.1.13 | Remove telnet Clients | low | pass |
3.1.13 | Uninstall rsh Package | unknown | pass |
3.1.16 | Deactivate Wireless Network Interfaces | medium | pass |
3.1.20 | Configure Accepting Router Advertisements on All IPv6 Interfaces | medium | pass |
3.1.20 | Configure Kernel Parameter for Accepting Secure Redirects By Default | medium | pass |
3.1.20 | Disable Accepting ICMP Redirects for All IPv4 Interfaces | medium | pass |
3.1.20 | Disable Accepting ICMP Redirects for All IPv6 Interfaces | medium | pass |
3.1.20 | Disable Accepting Router Advertisements on all IPv6 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting ICMP Redirects by Default on IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting ICMP Redirects by Default on IPv6 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Secure ICMP Redirects on all IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on all IPv4 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on all IPv6 Interfaces | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on IPv4 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Accepting Source-Routed Packets on IPv6 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Sending ICMP Redirects on all IPv4 Interfaces by Default | medium | pass |
3.1.20 | Disable Kernel Parameter for Sending ICMP Redirects on all IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Ignore Bogus ICMP Error Responses on IPv4 Interfaces | unknown | pass |
3.1.20 | Enable Kernel Parameter to Ignore ICMP Broadcast Echo Requests on IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Log Martian Packets on all IPv4 Interfaces | unknown | pass |
3.1.20 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces by Default | medium | pass |
3.1.20 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Use TCP Syncookies on Network Interfaces | medium | pass |
3.1.20 | Enable Kernel Parameter to Log Martian Packets on all IPv4 Interfaces by Default | unknown | pass |
3.1.21 | Disable Modprobe Loading of USB Storage Driver | medium | pass |
3.1.7 | Enable Randomized Layout of Virtual Address Space | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - rename | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - renameat | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - unlink | medium | pass |
3.1.7 | Ensure auditd Collects File Deletion Events by User - unlinkat | medium | pass |
3.1.7 | Ensure auditd Collects Information on Exporting to Media (successful) | medium | pass |
3.1.7 | Ensure auditd Collects Information on Kernel Module Loading - init_module | medium | pass |
3.1.7 | Ensure auditd Collects Information on Kernel Module Unloading - delete_module | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - su | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - sudo | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - sudoedit | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - umount | medium | pass |
3.1.7 | Ensure auditd Collects Information on the Use of Privileged Commands - unix_chkpwd | medium | pass |
3.1.7 | Ensure auditd Collects System Administrator Actions | medium | pass |
3.1.7 | Record Any Attempts to Run chcon | medium | pass |
3.1.7 | Record Attempts to Alter Logon and Logout Events - lastlog | medium | pass |
3.1.7 | Record Attempts to Alter Logon and Logout Events - tallylog | medium | pass |
3.1.7 | Record Attempts to Alter Process and Session Initiation Information | medium | pass |
3.1.7 | Record Attempts to Alter the localtime File | medium | pass |
3.1.7 | Record attempts to alter time through adjtimex | medium | pass |
3.1.7 | Record Attempts to Alter Time Through clock_settime | medium | pass |
3.1.7 | Record attempts to alter time through settimeofday | medium | pass |
3.1.7 | Record Attempts to Alter Time Through stime | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - chmod | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - chown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchmod | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchmodat | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fchownat | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fremovexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - fsetxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lchown | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lremovexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - lsetxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - removexattr | medium | pass |
3.1.7 | Record Events that Modify the System's Discretionary Access Controls - setxattr | medium | pass |
3.1.7 | Record Events that Modify the System's Network Environment | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/group | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/gshadow | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/passwd | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/security/opasswd | medium | pass |
3.1.7 | Record Events that Modify User/Group Information - /etc/shadow | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - creat | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - ftruncate | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - open | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - openat | medium | pass |
3.1.7 | Record Unsuccessful Access Attempts to Files - truncate | medium | pass |
3.1.8 | Lock Accounts After Failed Password Attempts | medium | pass |
3.1.8 | Record Events that Modify the System's Mandatory Access Controls | medium | pass |
3.1.8 | Set Lockout Time for Failed Password Attempts | medium | pass |
3.1.9 | Enable SSH Warning Banner | medium | pass |
3.1.9 | Modify the System Login Banner | medium | pass |
3.3.1, 3.3.2, 3.3.6 | Enable auditd Service | medium | pass |
3.3.1, 3.4.3 | Make the auditd Configuration Immutable | medium | pass |
3.3.1 | Configure auditd admin_space_left Action on Low Disk Space | medium | pass |
3.3.1 | Configure auditd mail_acct Action on Low Disk Space | medium | pass |
3.3.1 | Configure auditd space_left Action on Low Disk Space | medium | pass |
3.3.1 | System Audit Logs Must Be Group Owned By Root | medium | pass |
3.3.1 | System Audit Logs Must Be Owned By Root | medium | pass |
3.3.1 | System Audit Logs Must Have Mode 0640 or Less Permissive | medium | pass |
3.4.3 | Disable RDS Support | low | pass |
3.4.4 | Disable TIPC Support | low | pass |
3.4.5 | Verify /boot/grub/grub.cfg Permissions | medium | pass |
3.4.6 | Disable DCCP Support | medium | pass |
3.4.6 | Disable Mounting of cramfs | low | pass |
3.4.6 | Disable Mounting of squashfs | low | pass |
3.4.6 | Disable Mounting of udf | low | pass |
3.4.6 | Disable SCTP Support | medium | pass |
3.4.6 | Disable the Automounter | medium | pass |
3.5.1.2 | Remove iptables-persistent Package | medium | pass |
3.5.10 | Verify All Account Password Hashes are Shadowed | medium | pass |
3.5.2.1 | Install nftables Package | medium | pass |
3.5.2.10 | Ensure nftables rules are permanent | medium | pass |
3.5.2.4 | Ensure a Table Exists for Nftables | medium | pass |
3.5.2.5 | Ensure Base Chains Exist for Nftables | medium | pass |
3.5.2.9 | Verify nftables Service is Enabled | medium | pass |
3.5.3.1.1 | Install iptables Package | medium | pass |
3.5.3.1.3 | Remove ufw Package | medium | pass |
3.5.6 | Set Account Expiration Following Inactivity | medium | pass |
3.5.8 | Limit Password Reuse | medium | pass |
3.5.8 | Set Password Minimum Age | medium | pass |
3.5.8 | Set Password Warning Age | medium | pass |
4.1.1.1 | Ensure the audit Subsystem is Installed | medium | pass |
4.1.1.4 | Extend Audit Backlog Limit for the Audit Daemon | low | pass |
4.1.2.1 | Configure auditd Max Log File Size | medium | pass |
4.1.2.2 | Configure auditd max_log_file_action Upon Reaching Maximum Log Size | medium | pass |
4.1.3.12 | Record Attempts to Alter Logon and Logout Events - faillog | medium | pass |
4.1.3.16 | Record Any Attempts to Run setfacl | medium | pass |
4.1.3.17 | Record Any Attempts to Run chacl | medium | pass |
4.1.3.18 | Ensure auditd Collects Information on the Use of Privileged Commands - usermod | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - insmod | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - modprobe | medium | pass |
4.1.3.19 | Ensure auditd Collects Information on the Use of Privileged Commands - rmmod | medium | pass |
4.1.3.2 | Record Events When Privileged Executables Are Run | medium | pass |
4.1.3.3 | Record Attempts to perform maintenance activities | medium | pass |
4.1.4.10 | Verify that audit tools are owned by group root | medium | pass |
4.1.4.4 | System Audit Logs Must Have Mode 0750 or Less Permissive | medium | pass |
4.1.4.5 | Verify Permissions on /etc/audit/auditd.conf | medium | pass |
4.1.4.5 | Verify Permissions on /etc/audit/rules.d/*.rules | medium | pass |
4.1.4.6 | Audit Configuration Files Must Be Owned By Root | medium | pass |
4.1.4.7 | Audit Configuration Files Must Be Owned By Group root | medium | pass |
4.1.4.8 | Verify that audit tools Have Mode 0755 or less | medium | pass |
4.1.4.9 | Verify that audit tools are owned by root | medium | pass |
4.2.1.1.1 | Install systemd-journal-remote Package | medium | pass |
4.2.1.1.4 | Disable systemd-journal-remote Socket | medium | pass |
4.2.1.2 | Enable systemd-journald Service | medium | pass |
4.2.1.3 | Ensure journald is configured to compress large log files | medium | pass |
4.2.1.4 | Ensure journald is configured to write log files to persistent disk | medium | pass |
4.2.2.1 | Ensure rsyslog is Installed | medium | pass |
4.2.2.2 | Enable rsyslog Service | medium | pass |
4.2.2.4 | Ensure rsyslog Default File Permissions Configured | medium | pass |
4.2.2.7 | Ensure rsyslog Does Not Accept Remote Messages Unless Acting As Log Server | medium | pass |
5.1.1 | Enable cron Service | medium | pass |
5.1.2 | Verify Group Who Owns Crontab | medium | pass |
5.1.2 | Verify Owner on crontab | medium | pass |
5.1.2 | Verify Permissions on crontab | medium | pass |
5.1.3 | Verify Group Who Owns cron.hourly | medium | pass |
5.1.3 | Verify Owner on cron.hourly | medium | pass |
5.1.3 | Verify Permissions on cron.hourly | medium | pass |
5.1.4 | Verify Group Who Owns cron.daily | medium | pass |
5.1.4 | Verify Owner on cron.daily | medium | pass |
5.1.4 | Verify Permissions on cron.daily | medium | pass |
5.1.5 | Verify Group Who Owns cron.weekly | medium | pass |
5.1.5 | Verify Owner on cron.weekly | medium | pass |
5.1.5 | Verify Permissions on cron.weekly | medium | pass |
5.1.6 | Verify Group Who Owns cron.monthly | medium | pass |
5.1.6 | Verify Owner on cron.monthly | medium | pass |
5.1.6 | Verify Permissions on cron.monthly | medium | pass |
5.1.7 | Verify Group Who Owns cron.d | medium | pass |
5.1.7 | Verify Owner on cron.d | medium | pass |
5.1.7 | Verify Permissions on cron.d | medium | pass |
5.1.8 | Ensure that /etc/cron.deny does not exist | medium | pass |
5.1.8 | Verify Group Who Owns /etc/cron.allow file | medium | pass |
5.1.8 | Verify Permissions on /etc/cron.allow file | medium | pass |
5.1.8 | Verify User Who Owns /etc/cron.allow file | medium | pass |
5.1.9 | Ensure that /etc/at.deny does not exist | medium | pass |
5.1.9 | Verify Group Who Owns /etc/at.allow file | medium | pass |
5.1.9 | Verify Permissions on /etc/at.allow file | medium | pass |
5.1.9 | Verify User Who Owns /etc/at.allow file | medium | pass |
5.2.1 | Verify Group Who Owns SSH Server config file | medium | pass |
5.2.1 | Verify Owner on SSH Server config file | medium | pass |
5.2.1 | Verify Permissions on SSH Server config file | medium | pass |
5.2.12 | Disable X11 Forwarding | medium | pass |
5.2.13 | Use Only Strong Ciphers | medium | pass |
5.2.14 | Use Only Strong MACs | medium | pass |
5.2.15 | Use Only Strong Key Exchange algorithms | medium | pass |
5.2.16 | Disable SSH TCP Forwarding | medium | pass |
5.2.18 | Set SSH authentication attempt limit | medium | pass |
5.2.19 | Ensure SSH MaxStartups is configured | medium | pass |
5.2.20 | Set SSH MaxSessions limit | medium | pass |
5.2.21 | Ensure SSH LoginGraceTime is configured | medium | pass |
5.2.5 | Set LogLevel to INFO | low | pass |
5.2.6 | Enable PAM | medium | pass |
5.3.1 | Install sudo Package | medium | pass |
5.3.2 | Ensure Only Users Logged In To Real tty Can Execute Sudo - sudo use_pty | medium | pass |
5.3.3 | Ensure Sudo Logfile Exists - sudo logfile | low | pass |
5.3.5 | Ensure Users Re-Authenticate for Privilege Escalation - sudo !authenticate | medium | pass |
5.3.6 | Require Re-Authentication When Using the sudo Command | medium | pass |
5.3.7 | Enforce Usage of pam_wheel with Group Parameter for su Authentication | medium | pass |
5.3.7 | Ensure the Group Used by pam_wheel Module Exists on System and is Empty | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Authentication Retry Prompts Permitted Per-Session | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Different Categories | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Digit Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Length | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Lowercase Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Special Characters | medium | pass |
5.4.1 | Ensure PAM Enforces Password Requirements - Minimum Uppercase Characters | medium | pass |
5.4.1 | Install pam_pwquality Package | medium | pass |
5.4.2 | Set Interval For Counting Failed Password Attempts | medium | pass |
5.4.4 | Set Password Hashing Algorithm in /etc/login.defs | medium | pass |
5.5.1.1 | Set Existing Passwords Minimum Age | medium | pass |
5.5.1.2 | Set Existing Passwords Maximum Age | medium | pass |
5.5.1.5 | Ensure all users last password change date is in the past | medium | pass |
5.5.2 | Ensure that System Accounts Do Not Run a Shell Upon Login | medium | pass |
5.5.3 | Verify Root Has A Primary GID 0 | high | pass |
5.5.4 | Ensure the Default Bash Umask is Set Correctly | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly For Interactive Users | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly in /etc/profile | medium | pass |
5.5.4 | Ensure the Default Umask is Set Correctly in login.defs | medium | pass |
6.1.1 | Verify Group Who Owns passwd File | medium | pass |
6.1.1 | Verify Permissions on passwd File | medium | pass |
6.1.1 | Verify User Who Owns passwd File | medium | pass |
6.1.2 | Verify Group Who Owns Backup passwd File | medium | pass |
6.1.2 | Verify Permissions on Backup passwd File | medium | pass |
6.1.2 | Verify User Who Owns Backup passwd File | medium | pass |
6.1.3 | Verify Group Who Owns group File | medium | pass |
6.1.3 | Verify Permissions on group File | medium | pass |
6.1.3 | Verify User Who Owns group File | medium | pass |
6.1.4 | Verify Group Who Owns Backup group File | medium | pass |
6.1.4 | Verify Permissions on Backup group File | medium | pass |
6.1.4 | Verify User Who Owns Backup group File | medium | pass |
6.1.5 | Verify Group Who Owns shadow File | medium | pass |
6.1.5 | Verify Permissions on shadow File | medium | pass |
6.1.5 | Verify User Who Owns shadow File | medium | pass |
6.1.6 | Verify Group Who Owns Backup shadow File | medium | pass |
6.1.6 | Verify Permissions on Backup shadow File | medium | pass |
6.1.6 | Verify User Who Owns Backup shadow File | medium | pass |
6.1.7 | Verify Group Who Owns gshadow File | medium | pass |
6.1.7 | Verify Permissions on gshadow File | medium | pass |
6.1.7 | Verify User Who Owns gshadow File | medium | pass |
6.1.8 | Verify Group Who Owns Backup gshadow File | medium | pass |
6.1.8 | Verify Permissions on Backup gshadow File | medium | pass |
6.1.8 | Verify User Who Owns Backup gshadow File | medium | pass |
6.2.11 | All Interactive Users Home Directories Must Exist | medium | pass |
6.2.12 | All Interactive User Home Directories Must Be Group-Owned By The Primary Group | medium | pass |
6.2.12 | All Interactive User Home Directories Must Be Owned By The Primary User | medium | pass |
6.2.13 | All Interactive User Home Directories Must Have mode 0750 Or Less Permissive | medium | pass |
6.2.14 | Verify No netrc Files Exist | medium | pass |
6.2.15 | Verify No .forward Files Exist | medium | pass |
6.2.16 | Remove Rsh Trust Files | high | pass |
6.2.17 | User Initialization Files Must Be Group-Owned By The Primary Group | medium | pass |
6.2.17 | User Initialization Files Must Be Owned By the Primary User | medium | pass |
6.2.17 | User Initialization Files Must Not Run World-Writable Programs | medium | pass |
6.2.2 | Ensure There Are No Accounts With Blank or Null Passwords | high | pass |
6.2.3 | All GIDs referenced in /etc/passwd must be defined in /etc/group | low | pass |
6.2.4 | Ensure shadow group is empty | medium | pass |
6.2.5 | Ensure All Accounts on the System Have Unique User IDs | medium | pass |
6.2.6 | Ensure All Groups on the System Have Unique Group ID | medium | pass |
6.2.7 | Ensure All Accounts on the System Have Unique Names | medium | pass |
6.2.8 | Ensure All Groups on the System Have Unique Group Names | medium | pass |
6.2.9 | Ensure that Root's Path Does Not Include Relative Paths or Null Directories | unknown | pass |
6.2.9 | Ensure that Root's Path Does Not Include World or Group-Writable Directories | medium | pass |
Not applicable recommendations
The following table lists the recommendations that don't apply for Google Distributed Cloud.
# | Recommendation | Severity | Status |
---|---|---|---|
1.1.2.2 | Add nodev Option to /tmp | medium | notapplicable |
1.1.2.3 | Add noexec Option to /tmp | medium | notapplicable |
1.1.2.4 | Add nosuid Option to /tmp | medium | notapplicable |
1.1.3.2 | Add nodev Option to /var | medium | notapplicable |
1.1.3.3 | Add nosuid Option to /var | medium | notapplicable |
1.1.4.2 | Add noexec Option to /var/tmp | medium | notapplicable |
1.1.4.3 | Add nosuid Option to /var/tmp | medium | notapplicable |
1.1.4.4 | Add nodev Option to /var/tmp | medium | notapplicable |
1.1.5.2 | Add nodev Option to /var/log | medium | notapplicable |
1.1.5.3 | Add noexec Option to /var/log | medium | notapplicable |
1.1.5.4 | Add nosuid Option to /var/log | medium | notapplicable |
1.1.6.2 | Add noexec Option to /var/log/audit | medium | notapplicable |
1.1.6.3 | Add nodev Option to /var/log/audit | medium | notapplicable |
1.1.6.4 | Add nosuid Option to /var/log/audit | medium | notapplicable |
1.1.7.2 | Add nodev Option to /home | unknown | notapplicable |
1.1.7.3 | Add nosuid Option to /home | medium | notapplicable |
1.10 | Configure GNOME3 DConf User Profile | high | notapplicable |
1.8.1 | Remove the GDM Package Group | medium | notapplicable |
1.8.10 | Disable XDMCP in GDM | high | notapplicable |
2.1.4.1 | Configure server restrictions for ntpd | medium | notapplicable |
2.1.4.3 | Configure ntpd To Run As ntp User | medium | notapplicable |
2.1.4.4 | Enable the NTP Daemon | high | notapplicable |
2.2.15 | Disable Postfix Network Listening | medium | notapplicable |
3.1.10 | Enable GNOME3 Screensaver Lock After Idle Period | medium | notapplicable |
3.1.10 | Set GNOME3 Screensaver Lock Delay After Activation Period | medium | notapplicable |
3.1.7 | Disable GNOME3 Automount Opening | medium | notapplicable |
3.1.7 | Disable GNOME3 Automount running | low | notapplicable |
3.1.7 | Disable GNOME3 Automounting | medium | notapplicable |
3.4.5 | Set the UEFI Boot Loader Password | high | notapplicable |
3.5.1.3 | Verify ufw Enabled | medium | notapplicable |
3.5.1.4 | Set UFW Loopback Traffic | medium | notapplicable |
3.5.1.6 | Ensure ufw Firewall Rules Exist for All Open Ports | medium | notapplicable |
3.5.1.7 | Ensure ufw Default Deny Firewall Policy | medium | notapplicable |
3.5.3.2.1 | Set Default iptables Policy for Incoming Packets | medium | notapplicable |
3.5.3.2.2 | Set configuration for loopback traffic | medium | notapplicable |
3.5.3.2.4 | Ensure iptables Firewall Rules Exist for All Open Ports | medium | notapplicable |
3.5.3.3.1 | Set Default ip6tables Policy for Incoming Packets | medium | notapplicable |
3.5.3.3.4 | Ensure ip6tables Firewall Rules Exist for All Open Ports | medium | notapplicable |
1.30
Versions
This section refers to these versions:
Google Distributed Cloud version | Ubuntu version | CIS Ubuntu Benchmark version | CIS level |
---|---|---|---|
1.30 | 22.04 LTS | v1.0.0 | Level 2 Server |
# | Recommendation | Status | Justification | Affected Components |
---|---|---|---|---|
1.1.2.1 | Ensure /tmp Located On Separate Partition | Fail | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.3.1 | Ensure /var Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.4.1 | Ensure /var/tmp Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.5.1 | Ensure /var/log Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.6.1 | Ensure /var/log/audit Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.1.7.1 | Ensure /home Located On Separate Partition | Won't fix | Canonical has no plan to modify the cloud image partitions at this time. | All cluster nodes, Admin workstation, Seesaw |
1.4.1 | Set Boot Loader Password in grub2 | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
1.4.3 | Ensure Authentication Required for Single User Mode | Depends on Environment | No root password is set on Ubuntu cloud images. | All cluster nodes, Admin workstation, Seesaw |
2.3.6 | Uninstall rpcbind Package | Failed | rpcbind is installed on the Canonical cloud image, though it's not enabled by default. The rule is failing because it requires it to be not installed | All cluster nodes Admin workstation, Seesaw |
3.3.7 | Enable Kernel Parameter to Use Reverse Path Filtering on all IPv4 Interfaces | Depends on Environment | Asynchronous routing and reverse path origination is a requirement for delivering cluster load balancing. | All cluster nodes Seesaw |
3.5.2.6 | Set nftables configuration for loopback traffic | Won't fix | Anthos Network got affected by this rule. | All cluster nodes, Admin workstation, Seesaw |
3.5.2.8 | Ensure nftables default deny firewall policy | Depends on Environment | It is recommended that Google Distributed Cloud be deployed on a private network with appropriate firewall protections. The required firewall rules can be found here. | All cluster nodes, Admin workstation, Seesaw |
4.2.3 | Verify permissions of log files | Fail | This specific test is overly restrictive and unrealistic as many services may require a group to write log files. This item may be removed in a future benchmark. | All cluster nodes, Admin workstation, Seesaw |
5.2.18 | Limit Users' SSH Access | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.3.4 | Ensure Users Re-Authenticate for Privilege Escalation - sudo | Depends on Environment | This is not configured by default. | All cluster nodes, Admin workstation, Seesaw |
5.5.1.2 | Set Password Maximum Age | Equivalent control | VMs for Google Distributed Cloud rely on ssh key for user login, instead of using password | All cluster nodes |
6.1.10 | Ensure All Files Are Owned by a User | Fail | Permissions have been left as default. | All cluster nodes |
Configure AIDE cron job
AIDE is a file integrity checking tool that verifies compliance with CIS L1
Server benchmark 1.4 Filesystem Integrity Checking
. In Google Distributed Cloud,
the AIDE process has been causing high resource usage issues.
The AIDE process on nodes is disabled by default to prevent resource
issues. This will affect compliance with CIS L1 Server benchmark 1.4.2: Ensure
filesystem integrity is regularly checked.
If you want to opt in to run the AIDE cron job, complete the following steps to re-enable AIDE:
Create a DaemonSet.
Here's a manifest for a 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: /
In the preceding manifest:
The AIDE cron job will only run on node pool
pool-1
as specified by the nodeSelectorcloud.google.com/gke-nodepool: pool-1
. You can configure the AIDE process to run on as many node pools as you want by specifying the pools under thenodeSelector
field. To run the same cron job schedule across different node pools, remove thenodeSelector
field. However, to avoid host resource congestions, we recommend you maintain separate schedules.The cron job is scheduled to run daily at 5:30am as specified by the configuration
minute=30;hour=5
. You can configure different schedules for the AIDE cron job as required.
Copy the manifest to a file named
enable-aide.yaml
, and create the DaemonSet:kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
where USER_CLUSTER_KUBECONFIG is the path of the kubeconfig file for your user cluster.