En este documento, se describe el nivel de cumplimiento que Google Distributed Cloud tiene con la comparativa de CIS para Ubuntu.
Accede a la comparativa
La comparativa de CIS para Ubuntu está disponible en el sitio web de CIS.
Perfil de configuración
En el documento de la comparativa de CIS para Ubuntu, puedes leer sobre los perfiles de configuración. Las imágenes de Ubuntu que usa Google Distributed Cloud están endurecidas para cumplir con el Nivel 2: perfil del servidor.
Evaluación en Google Distributed Cloud
Usamos los siguientes valores para especificar el estado de las recomendaciones de Ubuntu en Google Distributed Cloud.
Estado | Descripción |
---|---|
Pass | Cumple con una recomendación de comparativa. |
Reprobadas | No cumple con una recomendación de comparativa. |
Control equivalente | No cumple con los términos exactos de una recomendación de comparativa, pero otros mecanismos en Google Distributed Cloud proporcionan controles de seguridad equivalentes. |
Depende del entorno | Google Distributed Cloud no configura elementos relacionados con una recomendación de comparativa. Tu configuración determina si tu entorno cumple con la recomendación. |
Estado de Google Distributed Cloud
Las imágenes de Ubuntu que se usan con Google Distributed Cloud están endurecidas para cumplir con el nivel 2 de CIS: perfil del servidor. En la siguiente tabla, se justifican por qué los componentes de Google Distributed Cloud no aprobaron ciertas recomendaciones.
Google Distributed Cloud 1.29
Disponible próximamente.Google Distributed Cloud 1.28
Versiones
En esta sección, se hace referencia a estas versiones:
Versión de Google Distributed Cloud | Versión de Ubuntu | Versión de la comparativa de CIS para Ubuntu | Nivel de CIS |
---|---|---|---|
1.28 | LTS 22.04 | v1.0.0 | Servidor de nivel 2 |
Estado de Google Distributed Cloud
Las imágenes de Ubuntu que se usan con Google Distributed Cloud están endurecidas para cumplir con el nivel 2 de CIS: perfil del servidor. En la siguiente tabla, se justifican por qué los componentes de Google Distributed Cloud no aprobaron ciertas recomendaciones.
# | Recomendación | Estado | Justificación | Componentes afectados |
---|---|---|---|---|
1.1.2.1 | Asegúrate de que /tmp esté ubicado en una partición independiente | Reprobada | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.3.1 | Asegúrate de que /var esté ubicado en una partición independiente | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.4.1 | Asegúrate de que /var/tmp esté ubicado en una partición independiente | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.5.1 | Asegúrate de que /var/log esté ubicado en una partición independiente | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.6.1 | Asegúrate de que /var/log/audit ubicado en una partición independiente | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.7.1 | Asegúrese de que /home esté ubicado en una partición independiente | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.4.1 | Cómo establecer la contraseña del cargador de inicio en browse2 | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.4.3 | Asegúrate de que se requiera la autenticación para el modo de usuario único | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
2.3.6 | Desinstala el paquete rpcbind | Con errores | rpcbind está instalada en la imagen canónica de la nube, aunque no está habilitada de forma predeterminada. La regla falla porque requiere que no esté instalada | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.3.7 | Habilitar el parámetro del kernel para usar el filtrado de ruta inversa en todas las interfaces IPv4 | Depende del entorno | El enrutamiento asíncrono y el origen de la ruta inversa son requisitos para entregar el balanceo de cargas del clúster. | Seesaw, que no es el administrador principal |
3.5.2.6 | Establece la configuración de nftables para el tráfico de bucle invertido | No se corregirá | La red de Anthos se vio afectada por esta regla. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.2.8 | Asegúrate de que la política de firewall de denegación predeterminada de nftables | Depende del entorno | Se recomienda implementar Google Distributed Cloud en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.2.3 | Verifica los permisos de los archivos de registro | Reprobada | Esta prueba específica es demasiado restrictiva y poco realista, ya que muchos servicios pueden requerir que un grupo escriba archivos de registro. Es posible que se quite este elemento en una comparativa futura. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.2.18 | Limita el acceso SSH de los usuarios | Depende del entorno | No se configura de forma predeterminada. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.3.4 | Asegúrate de que los usuarios se reautentiquen para la escalación de privilegios: sudo | Depende del entorno | No se configura de forma predeterminada. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.5.1.2 | Establecer la antigüedad máxima de las contraseñas | Control equivalente | Las VMs de Google Distributed Cloud dependen de la clave SSH para el acceso del usuario, en lugar de usar una contraseña. | Todos los nodos del clúster |
6.1.10 | Asegúrate de que todos los archivos sean propiedad del usuario | Reprobada | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
Google Distributed Cloud 1.16
Versiones
En esta sección, se hace referencia a estas versiones:
Versión de Google Distributed Cloud | Versión de Ubuntu | Versión de la comparativa de CIS para Ubuntu | Nivel de CIS |
---|---|---|---|
1.16 | 20.04 LTS | v1.0.0 | Servidor de nivel 2 |
Estado de Google Distributed Cloud
Las imágenes de Ubuntu que se usan con Google Distributed Cloud están endurecidas para cumplir con el nivel 2 de CIS: perfil del servidor. En la siguiente tabla, se justifican por qué los componentes de Google Distributed Cloud no aprobaron ciertas recomendaciones.
# | Recomendación | Con puntuación/Sin puntuación | Estado | Justificación | Componentes afectados |
---|---|---|---|---|---|
1.1.2 | Asegúrate de que /tmp esté configurado | Puntuados | Reprobada | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.10 | Asegúrate de que exista una partición independiente para /var | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.11 | Asegúrate de que exista una partición independiente para /var/tmp | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.15 | Asegúrate de que exista una partición independiente para /var/log | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.16 | Asegúrate de que exista una partición independiente para /var/log/audit | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.17 | Asegúrate de que exista una partición independiente para /home | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.22 | Asegúrate de que el bit persistente esté configurado en todos los directorios que admiten escritura pública | Puntuados | Reprobada | Esto podría interferir con la funcionalidad de Anthos y sus servicios, y no está habilitado de forma predeterminada | Todos los nodos del clúster, la estación de trabajo de administrador |
1.5.1 | Asegúrate de que los permisos en la configuración del bootloader estén configurados | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster, Seesaw |
1.5.2 | Asegúrate de que la contraseña de bootloader esté configurada | Puntuados | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.5.3 | Asegúrate de que se requiera la autenticación para el modo de usuario único | Puntuados | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
2.3.6 | Asegúrate de que RPC no esté instalada | Puntuados | Con errores | rpcbind está instalada en la imagen canónica de la nube, aunque no está habilitada de forma predeterminada. La regla falla porque requiere que no esté instalada | Todos los nodos del clúster |
3.2.2 | Asegúrate de que el reenvío de IP esté inhabilitado | Puntuados | Reprobada | El reenvío de IP es necesario para que Kubernetes (GKE) funcione y enrute el tráfico de forma correcta | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.2.7 | Asegúrate de que el filtrado de ruta de acceso inversa esté habilitado. | Puntuados | Depende del entorno | El enrutamiento asíncrono y el origen de la ruta de acceso inversa son requisitos para entregar el balanceo de cargas del clúster | Seesaw |
3.5.3.2.1 | Asegúrate de tener una política de denegación de firewall predeterminada | Puntuados | Depende del entorno | Se recomienda implementar Google Distributed Cloud en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.3.2.2 | Asegúrate de que el tráfico de bucle invertido esté configurado | Puntuados | Depende del entorno | La utilización de la interfaz de bucle invertido se limita dada la funcionalidad de balanceo de cargas que se usa. | Seesaw |
3.5.3.2.4 | Asegúrate de que las reglas de firewall existan para todos los puertos abiertos | Sin puntuación | Depende del entorno | Se recomienda implementar Google Distributed Cloud en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.3.3.1 | Asegúrate de que la política de denegación de firewall de IPv6 sea predeterminada | Puntuados | Depende del entorno | Se recomienda implementar Google Distributed Cloud en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. Anthos no tiene requisitos para IPv6 compatible con GA. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.3.3.2 | Asegúrate de que el tráfico de bucle invertido de IPv6 esté configurado | Puntuados | Depende del entorno | Anthos no tiene requisitos para IPv6 compatible con GA. | Plano de control del administrador, Seesaw |
4.1.1.3 | Asegúrate de que la auditoría para los procesos que se inician antes de que se audite esté habilitada | Puntuados | Reprobadas | Un problema conocido con nuestro proceso de compilación marca esto como con errores, sin embargo, esto se debe considerar una falsa alarma. Esto se solucionará en el futuro. | Todos los nodos del clúster, Seesaw |
4.1.11 | Asegúrate de que se recopile el uso de comandos con privilegios | Puntuados | Reprobadas | Algunos objetos binarios se instalan en el tiempo de ejecución, por lo que se necesita su solución. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.2.1.5 | Asegúrate de que rsyslog esté configurado para enviar registros a un host de registro remoto | Puntuados | Depende del entorno | En la actualidad, Google Distributed Cloud recopila todos los registros registrados (de los servicios del sistema). Estos podrán ver los registros en “k8s_node” | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.2.3 | Asegúrate de que los permisos de todos los archivos de registro estén configurados | Puntuados | Reprobada | Esta prueba específica es demasiado restrictiva y poco realista, ya que muchos servicios pueden requerir que un grupo escriba archivos de registro. Es posible que se quite este elemento en una comparativa futura. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.4 | Asegúrate de que logrotate asigne los permisos adecuados | Puntuados | Con errores | El cumplimiento de esta regla podría afectar la funcionalidad de registro actual | Todos los nodos del clúster, Seesaw |
5.2.18 | Asegúrate de que el acceso SSH sea limitado | Puntuados | Depende del entorno | No se configura de forma predeterminada. Puede configurarse para cumplir con los requisitos específicos. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.2.20 | Asegúrate de que SSH AllowTcpForwarding esté inhabilitado | Puntuados | Con errores | El cumplimiento de esta regla podría afectar la funcionalidad actual del túnel SSH | Todos los nodos del clúster |
5.4.1.1 | Asegúrate de que el vencimiento de la contraseña sea de 365 días o menos | Puntuados | Control equivalente | Las VMs de Google Distributed Cloud dependen de la clave SSH para el acceso del usuario, en lugar de usar una contraseña. | Todos los nodos del clúster |
6.1.10 | Asegúrate de que no existan archivos que admitan la escritura pública | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.1.11 | Asegúrate de que no existan archivos ni directorios sin propietario | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.1.12 | Asegúrate de que no existan archivos ni directorios no agrupados | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.2.7 | Asegúrate de que los dotfiles de los usuarios no admitan la escritura grupal ni pública | Puntuados | Reprobadas | La configuración predeterminada para Ubuntu permite los permisos de grupos de dotfiles debido a la compatibilidad | Estación de trabajo de administrador |
Configura un trabajo cron de AIDE
AIDE es una herramienta de verificación de integridad de archivos que garantiza el cumplimiento de la comparativa CIS L1 Server 1.4 Filesystem Integrity Checking
. En Google Distributed Cloud, el proceso de AIDE generó problemas altos de uso de recursos.
El proceso de AIDE en los nodos está inhabilitado de forma predeterminada para evitar problemas de recursos. Esto afectará el cumplimiento de la comparativa de CIS L1 Server 1.4.2: Ensure
filesystem integrity is regularly checked.
Si deseas aceptar y ejecutar el trabajo cron de AIDE, completa los siguientes pasos para volver a habilitar AIDE:
Crea un DaemonSet.
A continuación, se muestra un manifiesto para un 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: /
En el manifiesto anterior, se dan las siguientes situaciones:
El trabajo cron de AIDE solo se ejecutará en el grupo de nodos
pool-1
según lo especificado por el nodeSelectorcloud.google.com/gke-nodepool: pool-1
. Puedes configurar el proceso de AIDE para que se ejecute en tantos grupos de nodos como desees si especificas los grupos en el camponodeSelector
. Para ejecutar la misma programación de trabajo cron en diferentes grupos de nodos, quita el camponodeSelector
. Sin embargo, para evitar las congestión de los recursos del host, te recomendamos que mantengas programas separados.El trabajo cron está programado para ejecutarse diariamente a las 5:30 a.m. según lo especificado en la configuración
minute=30;hour=5
. Puedes configurar diferentes programas para el trabajo cron de AIDE según sea necesario.
Copia el manifiesto en un archivo llamado
enable-aide.yaml
y crea el DaemonSet:kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
En el ejemplo anterior, USER_CLUSTER_KUBECONFIG es la ruta de acceso del archivo kubeconfig del clúster de usuario.