Comparativas de CIS en Ubuntu

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 se endurecen para cumplir con el nivel 2: perfil de 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 de 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 se endurecen para cumplir con el perfil de servidor de nivel 2 de CIS. En la siguiente tabla, se justifican los motivos por los que 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 22.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 se endurecen para cumplir con el perfil de servidor de nivel 2 de CIS. En la siguiente tabla, se justifican los motivos por los que 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 separada 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 separada 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 separada 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 separada 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 esté ubicado en una partición separada 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úrate de que /home esté ubicado en una partición separada 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 Establecer la contraseña del cargador de arranque en scratch2 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 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 Desinstalar 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 Estación de trabajo de administrador,
3.3.7 Habilitar el parámetro de 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 de acceso inversa son un requisito para entregar el balanceo de cargas del clúster. Nodos que no son administradores principales Seesaw
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 vuelvan a autenticar 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 la 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 se endurecen para cumplir con el perfil de servidor de nivel 2 de CIS. En la siguiente tabla, se justifican los motivos por los que 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 Actualmente, 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 la 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 AIDE ha provocado altos problemas 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:

  1. 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 nodeSelector cloud.google.com/gke-nodepool: pool-1. Puedes configurar el proceso de AIDE para que se ejecute en tantos grupos de nodos como desees. Para ello, especifica los grupos en el campo nodeSelector. Para ejecutar la misma programación de trabajo cron en diferentes grupos de nodos, quita el campo nodeSelector. Sin embargo, para evitar congestión de recursos de host, te recomendamos que mantengas programas separados.

    • El trabajo cron está programado para ejecutarse diariamente a las 5:30 a.m., como se especifica en la configuración minute=30;hour=5. Puedes configurar diferentes programas para el trabajo cron de AIDE según sea necesario.

  2. 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.