Comparativas de CIS en Ubuntu

En este documento, se describe el nivel de cumplimiento que tienen los clústeres de Anthos en VMware (GKE On-Prem) con la comparativa de CIS para Ubuntu.

Versiones

En este documento, se hace referencia a las siguientes versiones:

Versión de Anthos Versión de Ubuntu Versión de la comparativa de CIS para Ubuntu Nivel de CIS
1.9 18.04 LTS v2.0.1 Servidor de nivel 2

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 usan los clústeres de Anthos alojados en VMware se endurecen para cumplir con el perfil del servidor de nivel 2.

Evaluación en clústeres de Anthos alojados en VMware

Usamos los siguientes valores para especificar el estado de las recomendaciones de Ubuntu en clústeres de Anthos alojados en VMware.

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 los clústeres de Anthos alojados en VMware proporcionan controles de seguridad equivalentes.
Depende del entorno Los clústeres de Anthos alojados en VMware no configuran elementos relacionados con una recomendación de comparativa. Tu configuración determina si tu entorno cumple con la recomendación.

Estado de los clústeres de Anthos alojados en VMware

Las imágenes de Ubuntu que se usan con los clústeres de Anthos alojados en VMware se endurecen para cumplir con el perfil del servidor de nivel 2 de CIS. En la siguiente tabla, se proporcionan justificaciones sobre por qué los componentes de los clústeres de Anthos alojados en VMware 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 Con puntuación Reprobadas 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 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.7 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.11 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.12 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.13 Asegúrate de que exista una partición independiente para /home Con puntuación 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.21 Asegúrate de que el bit persistente esté configurado en todos los directorios que admiten escritura pública Con puntuación Reprobadas 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 Con puntuación 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 Con puntuación 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 Con puntuación 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.8.1.2 Asegúrate de que el banner de advertencia de acceso local esté configurado correctamente Puntuados Control equivalente Anthos también aplica el endurecimiento DISA-STIG a los nodos, lo que actualiza el banner de advertencia según corresponda Todos los nodos del clúster, Seesaw
3.1.2 Asegúrate de que el reenvío de IP esté inhabilitado Con puntuación Reprobadas 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.2.5 Asegúrate de que las reglas de firewall existan para todos los puertos abiertos Sin puntuación Depende del entorno Se recomienda que Anthos en VMware se implemente 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.4.1.1 Asegúrate de tener una política de denegación de firewall predeterminada Puntuados Depende del entorno Se recomienda que Anthos en VMware se implemente 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.4.1.2 Asegúrate de que el tráfico de bucle invertido esté configurado Con puntuación 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.4.2.1 Asegúrate de que la política de denegación de firewall de IPv6 sea predeterminada Con puntuación Depende del entorno Se recomienda que Anthos en VMware se implemente 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.4.2.2 Asegúrate de que el tráfico de bucle invertido de IPv6 esté configurado Con puntuación 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 Con puntuación 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.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 Con puntuación Depende del entorno Por el momento, Anthos en VMWare recopila todos los registros de journald (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 Con puntuación Reprobadas 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.12 Asegúrate de que SSH PermitUserEnvironment esté inhabilitado Con puntuación Reprobadas Esta configuración entra en conflicto con la configuración de endurecimiento de DISA-STIG. Todos los nodos del clúster, Seesaw
5.2.13 Asegúrate de que solo se usen algoritmos de cifrado sólidos Con puntuación Control equivalente La aplicación de DISA-STIG usa una lista alternativa de algoritmos de cifrado compatibles que no se alinean 1:1 con los que usa esta comparativa Todos los nodos del clúster
5.2.18 Asegúrate de que el acceso SSH sea limitado Con puntuación 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.19 Asegúrate de que el banner de advertencia de SSH esté configurado Con puntuación Control equivalente La aplicación de la configuración de endurecimiento de DISA-STIG modifica el banner de advertencia SSH Todos los nodos del clúster, Seesaw
6,1.6 Asegúrate de que los permisos en /etc/passwd estén configurados Con puntuación Reprobadas Esta prueba específica es demasiado restrictiva y Canonical la está actualizando (vínculo). Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw
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 Con puntuación 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.10 Asegúrate de que los dotfiles de los usuarios no admitan la escritura grupal ni pública Con puntuación 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 los clústeres de Anthos alojados en VMware, el proceso AIDE generó problemas de alto uso de recursos.

A partir de la versión 1.9.7, el proceso AIDE en los nodos se inhabilita 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 si especificas 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 las congestión de recursos del host, te recomendamos que mantengas programas independientes.

    • El trabajo cron está programado para ejecutarse a las 5:30 a.m. según lo especificado por 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.