Alineación de imágenes de Ubuntu de Azure Kubernetes Service (AKS) con el punto de referencia de Center for Internet Security (CIS)

Como servicio seguro, Azure Kubernetes Service (AKS) es compatible con los estándares SOC, ISO, PCI DSS e HIPAA. En este artículo se describe la configuración del sistema operativo de seguridad aplicada a la imagen de Ubuntu usada por AKS. Esta configuración de seguridad se basa en la línea base de seguridad de Linux de Azure que se alinea con el punto de referencia CIS. Para más información acerca de la seguridad de AKS, consulte Conceptos de seguridad de las aplicaciones y los clústeres en Azure Kubernetes Service (AKS). Para más información acerca de la seguridad de AKS, consulte Conceptos de seguridad de las aplicaciones y los clústeres en Azure Kubernetes Service (AKS). Para obtener más información sobre el punto de referencia de CIS, vea Puntos de referencia de Center for Internet Security (CIS). Para más información sobre las líneas base de seguridad de Azure para Linux, consulte Línea de base de seguridad de Linux.

Ubuntu LTS 18.04

Los clústeres de AKS se implementan en las máquinas virtuales del host, que ejecutan un sistema operativo con configuraciones seguras integradas. Este sistema operativo se usa para contenedores que se ejecutan en AKS. Este sistema operativo host se basa en una imagen de Ubuntu 18.04.LTS con configuraciones de seguridad aplicadas.

Como parte del sistema operativo optimizado para seguridad:

  • AKS proporciona un sistema operativo de host optimizado para seguridad de manera predeterminada, pero ninguna opción para seleccionar un sistema operativo alternativo.
  • El sistema operativo del host con seguridad optimizada se crea y se mantiene específicamente para AKS y no se admite fuera de la plataforma AKS.
  • Para reducir el área expuesta a ataques, se han deshabilitado en el sistema operativo algunos controladores de módulos de kernel que no eran necesarios.

Nota

Sin relación con los puntos de referencia de CIS, Azure aplica revisiones diarias, lo que incluye revisiones de seguridad, a los hosts de máquina virtual de AKS.

El objetivo de la configuración segura integrada en el sistema operativo del host es reducir el área expuesta de ataque y optimizar la implementación de contenedores de forma segura.

A continuación se muestran los resultados de las recomendaciones de CIS Ubuntu 18.04 LTS Benchmark v2.1.0.

Las recomendaciones pueden tener una de las siguientes razones:

  • Posible impacto en la operación: no se aplicó la recomendación porque tendría un efecto negativo en el servicio.
  • Cubierto en otro lugar: la recomendación está cubierta por otro control en el proceso en la nube de Azure.

A continuación se muestran las reglas de CIS implementadas:

Número de párrafo de CIS Descripción de la recomendación Status Motivo
1 Programa de instalación inicial
1.1 Configuración del sistema de archivos
1.1.1 Deshabilitar sistemas de archivos no usados
1.1.1.1 Asegurarse de que el montaje de sistemas de archivos cramfs está deshabilitado Aprobado
1.1.1.2 Asegurarse de que el montaje de sistemas de archivos freevxfs está deshabilitado Aprobado
1.1.1.3 Asegurarse de que el montaje de sistemas de archivos jffs2 está deshabilitado Aprobado
1.1.1.4 Asegurarse de que el montaje de sistemas de archivos hfs está deshabilitado Aprobado
1.1.1.5 Asegurarse de que el montaje de sistemas de archivos hfsplus está deshabilitado Aprobado
1.1.1.6 Asegurarse de que el montaje de sistemas de archivos udf está deshabilitado Suspenso Posible impacto operacional
1.1.2 Asegurarse de que /tmp está configurado Suspenso
1.1.3 Asegurarse de que la opción nodev está establecida en la partición /tmp Suspenso
1.1.4 Asegurarse de que la opción nosuid está establecida en la partición /tmp Aprobado
1.1.5 Asegurarse de que la opción noexec está establecida en la partición /tmp Aprobado
1.1.6 Asegúrese de que /dev/shm está configurado Aprobado
1.1.7 Asegurarse de que la opción nodev está establecida en la partición /dev/shm Aprobado
1.1.8 Asegurarse de que la opción nosuid está establecida en la partición /dev/shm Aprobado
1.1.9 Asegurarse de que la opción noexec está establecida en la partición /dev/shm Suspenso Posible impacto operacional
1.1.12 Asegurarse de que la partición /var/tmp incluye la opción nodev Aprobado
1.1.13 Asegurarse de que la partición /var/tmp incluye la opción nosuid Aprobado
1.1.14 Asegurarse de que la partición /var/tmp incluye la opción noexec Aprobado
1.1.18 Asegurarse de que la partición /home incluye la opción nodev Aprobado
1.1.19 Asegurarse de que la opción nodev está establecida en particiones de medios extraíbles No es aplicable
1.1.20 Asegurarse de que la opción nosuid está establecida en particiones de medios extraíbles No es aplicable
1.1.21 Asegurarse de que la opción noexec está establecida en particiones de medios extraíbles No es aplicable
1.1.22 Asegurarse de que el bit permanente está establecido en todos los directorios grabables de manera global Suspenso Posible impacto en la operación
1.1.23 Deshabilitar el montaje automático Aprobado
1.1.24 Deshabilitar el almacenamiento USB Aprobado
1.2 Configuración de las actualizaciones de software
1.2.1 Asegurarse de que los repositorios del administrador de paquetes están configurados Aprobado Cubierto en otro lugar
1.2.2 Asegúrese de que las claves de GPG están configuradas No es aplicable
1.3 Comprobación de integridad del sistema de archivos
1.3.1 Asegurarse de que AIDE está instalado Suspenso Cubierto en otro lugar
1.3.2 Asegurarse de que la integridad del sistema de archivos se comprueba periódicamente Suspenso Cubierto en otro lugar
1.4 Configuración de arranque seguro
1.4.1 Asegúrese de que no estén invalidados los permisos en la configuración del cargador de arranque Suspenso
1.4.2 Asegurarse de que la contraseña del cargador de arranque está establecida Suspenso No es aplicable
1.4.3 Asegurarse de que están configurados los permisos en la configuración del cargador de arranque. Suspenso
1.4.4 Asegurarse de la autenticación que se requiere para el modo de usuario único Suspenso No es aplicable
1.5 Protección de procesos adicionales
1.5.1 Asegurarse de que la compatibilidad con XD/NX está habilitada No es aplicable
1.5.2 Asegurarse de que la selección aleatoria del diseño del espacio de direcciones (ASLR) está habilitada Aprobado
1.5.3 Asegurarse de que la vinculación previa está deshabilitada Aprobado
1.5.4 Asegurarse de que los volcados de memoria están restringidos Aprobado
1.6 Control de acceso obligatorio
1.6.1 Configuración de AppArmor
1.6.1.1 Asegurarse de que AppArmor está instalado Aprobado
1.6.1.2 Asegurarse de que AppArmor está habilitado en la configuración del cargador de arranque Suspenso Posible impacto en la operación
1.6.1.3 Asegurarse de que todos los perfiles de AppArmor estén en modo de aplicación o queja Aprobado
1.7 Banners de advertencia de la línea de comandos
1.7.1 Asegurarse de que el mensaje del día está configurado correctamente Aprobado
1.7.2 Asegurarse de que están configurados los permisos en/etc/issue.net Aprobado
1.7.3 Asegurarse de que están configurados los permisos en/etc/issue Aprobado
1.7.4 Asegurarse de que los permisos en /etc/motd están configurados Aprobado
1.7.5 Asegurarse de que el banner de advertencia de inicio de sesión remoto está configurado correctamente Aprobado
1.7.6 Asegurarse de que el banner de advertencia de inicio de sesión local está configurado correctamente Aprobado
1.8 GNOME Display Manager
1.8.2 Asegurarse de que el banner de inicio de sesión de GDM está configurado Aprobado
1.8.3 Asegurarse de que disable-user-list está habilitado Aprobado
1.8.4 Asegúrese de que XDCMP no esté habilitado Aprobado
1,9 Asegurarse de que están instaladas las actualizaciones, las revisiones y el software de seguridad adicional Aprobado
2 Servicios
2.1 Servicios de uso especial
2.1.1 Sincronización de la hora
2.1.1.1 Asegurarse de que la sincronización de hora está en uso Aprobado
2.1.1.2 Asegurarse de que systemd-timesyncd está configurado No es aplicable AKS usa ntpd para timesync
2.1.1.3 Asegurarse de que chrony está configurado Suspenso Cubierto en otro lugar
2.1.1.4 Asegurarse de que ntp está configurado Aprobado
2.1.2 Asegúrese de que el sistema de ventanas X no esté instalado Aprobado
2.1.3 Asegúrese de que el servidor de Avahi no esté instalado Aprobado
2.1.4 Asegúrese de que CUPS no esté instalado Aprobado
2.1.5 Asegúrese de que el servidor DHCP no esté instalado Aprobado
2.1.6 Asegúrese de que el servidor LDAP no esté instalado Aprobado
2.1.7 Asegúrese de que NFS no esté instalado Aprobado
2.1.8 Asegúrese de que el servidor DNS no esté instalado Aprobado
2.1.9 Asegúrese de que el servidor FTP no esté instalado Aprobado
2.1.10 Asegúrese de que el servidor FTP no esté instalado Aprobado
2.1.11 Asegúrese de que los servidores IMAP y POP3 no estén instalados Aprobado
2.1.12 Asegúrese de que Samba no esté instalado Aprobado
2.1.13 Asegúrese de que el servidor proxy HTTP no esté instalado Aprobado
2.1.14 Asegúrese de que el servidor SNMP no esté instalado Aprobado
2.1.15 Asegurarse de que el agente de transferencia de correo está configurado para el modo solo local Aprobado
2.1.16 Asegúrese de que el servicio rsync no esté instalado Suspenso
2.1.17 Asegúrese de que el servidor NIS no esté instalado Aprobado
2,2 Clientes de servicio
2.2.1 Asegúrese de que el cliente NIS no esté instalado Aprobado
2.2.2 Asegúrese de que el cliente rsh no esté instalado Aprobado
2.2.3 Asegúrese de que el cliente talk no esté instalado Aprobado
2.2.4 Asegúrese de que el cliente telnet no esté instalado Suspenso
2.2.5 Asegúrese de que el cliente LDAP no esté instalado Aprobado
2.2.6 Asegúrese de que RPC no esté instalado Suspenso Posible impacto operacional
2.3 Asegurarse de que se quitan o enmascaran los servicios no esenciales Aprobado
3 Configuración de red
3.1 Deshabilitar protocolos y dispositivos de red sin usar
3.1.2 Asegurarse de que las interfaces inalámbricas están deshabilitadas Aprobado
3.2 Parámetros de red (solo host)
3.2.1 Asegurarse de que el envío de redireccionamiento de paquetes está deshabilitado Aprobado
3.2.2 Asegurarse de que el reenvío IP está deshabilitado Suspenso No es aplicable
3.3 Parámetros de red (host y enrutador)
3.3.1 Asegúrese de que no se acepten paquetes enrutados de origen Aprobado
3.3.2 Asegúrese de que no se acepten los redireccionamientos de ICMP Aprobado
3.3.3 Asegúrese de que no se acepten los redireccionamientos de ICMP seguros Aprobado
3.3.4 Asegurarse de que se registran los paquetes sospechosos Aprobado
3.3.5 Asegurarse de que se omiten las solicitudes ICMP de difusión Aprobado
3.3.6 Asegurarse de que se omiten las respuestas ICMP ficticias Aprobado
3.3.7 Asegurarse de que el filtrado de Invertir trazado está habilitado Aprobado
3.3.8 Asegurarse de que las cookies SYN de TCP están habilitadas Aprobado
3.3.9 Asegúrese de que no se acepten anuncios de enrutadores IPv6 Aprobado
3.4 Protocolos de red poco comunes
3,5 Configuración del firewall
3.5.1 Configuración de UncomplicatedFirewall
3.5.1.1 Asegurarse de que ufw está instalado Aprobado
3.5.1.2 Asegurarse de que iptables-persistent no está instalado con ufw Aprobado
3.5.1.3 Asegurarse de que el servicio ufw está habilitado Suspenso Cubierto en otro lugar
3.5.1.4 Asegurarse de que el tráfico de bucle invertido de ufw está configurado Suspenso Cubierto en otro lugar
3.5.1.5 Asegurarse de que las conexiones salientes de ufw están configuradas No es aplicable Cubierto en otro lugar
3.5.1.6 Asegurarse de que existen reglas de firewall de ufw para todos los puertos abiertos No es aplicable Cubierto en otro lugar
3.5.1.7 Garantizar la directiva de firewall de denegación predeterminada de ufw Suspenso Cubierto en otro lugar
3.5.2 Configuración de nftables
3.5.2.1 Asegurarse de que nftables está instalado Suspenso Cubierto en otro lugar
3.5.2.2 Asegurarse de que ufw está desinstalado o deshabilitado con nftables Suspenso Cubierto en otro lugar
3.5.2.3 Asegurarse de que las tablas iptables se vacían con nftables No es aplicable Cubierto en otro lugar
3.5.2.4 Asegurarse de que existe una tabla nftables Suspenso Cubierto en otro lugar
3.5.2.5 Asegurarse de que existen cadenas base de nftables Suspenso Cubierto en otro lugar
3.5.2.6 Asegurarse de que el tráfico de bucle invertido de nftables está configurado Suspenso Cubierto en otro lugar
3.5.2.7 Asegurarse de que las conexiones salientes y establecidas de nftables estén configuradas No es aplicable Cubierto en otro lugar
3.5.2.8 Garantizar la directiva de firewall de denegación predeterminada de nftables Suspenso Cubierto en otro lugar
3.5.2.9 Asegurarse de que el servicio nftables está habilitado Suspenso Cubierto en otro lugar
3.5.2.10 Asegurarse de que las reglas de nftables son permanentes Suspenso Cubierto en otro lugar
3.5.3 Configuración de iptables
3.5.3.1 Configuración del software de iptables
3.5.3.1.1 Asegurarse de que los paquetes de iptables están instalados Suspenso Cubierto en otro lugar
3.5.3.1.2 Asegurarse de que nftables no está instalado con iptables Aprobado
3.5.3.1.3 Asegurarse de que ufw está desinstalado o deshabilitado con iptables Suspenso Cubierto en otro lugar
3.5.3.2 Configuración de iptables IPv4
3.5.3.2.1 Garantizar la directiva de firewall de denegación predeterminada de iptables Suspenso Cubierto en otro lugar
3.5.3.2.2 Asegurarse de que el tráfico de bucle invertido de iptables está configurado Suspenso No es aplicable
3.5.3.2.3 Asegurarse de que las conexiones salientes y establecidas de iptables estén configuradas No es aplicable
3.5.3.2.4 Asegurarse de que existen reglas de firewall de iptables para todos los puertos abiertos Suspenso Posible impacto en la operación
3.5.3.3 Configuración de ip6tables IPv6
3.5.3.3.1 Garantizar la directiva de firewall de denegación predeterminada de ip6tables Suspenso Cubierto en otro lugar
3.5.3.3.2 Asegurarse de que el tráfico de bucle invertido de ip6tables está configurado Suspenso Cubierto en otro lugar
3.5.3.3.3 Asegurarse de que las conexiones salientes y establecidas de ip6tables estén configuradas No es aplicable Cubierto en otro lugar
3.5.3.3.4 Asegurarse de que existen reglas de firewall de ip6tables para todos los puertos abiertos Suspenso Cubierto en otro lugar
4 Registro y auditoría
4,1 Configuración de la contabilidad del sistema (auditd)
4.1.1.2 Asegurarse de que la auditoría está habilitada
4.1.2 Configuración de la retención de datos
4,2 Configuración del registro
4.2.1 Configuración de rsyslog
4.2.1.1 Asegurarse de que rsyslog está instalado Aprobado
4.2.1.2 Asegurarse de que el servicio rsyslog está habilitado Aprobado
4.2.1.3 Asegurarse de que el registro está configurado Aprobado
4.2.1.4 Asegurarse de que los permisos de archivo predeterminados de rsyslog estén configurados Aprobado
4.2.1.5 Asegurarse de que rsyslog está configurado para enviar registros a un host de registro remoto Suspenso Cubierto en otro lugar
4.2.1.6 Asegurarse de que los mensajes remotos de rsyslog solo se aceptan en los hosts de registro designados. No es aplicable
4.2.2 Configuración de journald
4.2.2.1 Asegurarse de que journald está configurado para enviar registros a rsyslog Aprobado
4.2.2.2 Asegurarse de que journald está configurado para comprimir archivos de registro grandes Suspenso
4.2.2.3 Asegurarse de que journald está configurado para escribir archivos de registro en un disco persistente Aprobado
4.2.3 Asegurarse de que los permisos de todos los archivos de registro están configurados Suspenso
4.3 Asegurarse de que logrotate está configurado Aprobado
4.4. Asegurarse de que logrotate asigna los permisos adecuados Suspenso
5 Acceso, autenticación y autorización
5,1 Configuración de los programadores de trabajos basados en tiempo
5.1.1 Asegurarse de que el demonio cron está habilitado y en ejecución Aprobado
5.1.2 Asegurarse de que están configurados los permisos en/etc/crontab Aprobado
5.1.3 Asegurarse de que los permisos en /etc/cron.hourly están configurados Aprobado
5.1.4 Asegurarse de que los permisos en /etc/cron.daily están configurados Aprobado
5.1.5 Asegurarse de que los permisos en /etc/cron.weekly están configurados Aprobado
5.1.6 Asegurarse de que los permisos en /etc/cron.monthly están configurados Aprobado
5.1.7 Asegurarse de que los permisos en /etc/cron.d están configurados Aprobado
5.1.8 Asegurarse de cron está restringido a los usuarios autorizados Suspenso
5.1.9 Asegurarse de que at está restringido a los usuarios autorizados Suspenso
5.2 Configuración de sudo
5.2.1 Asegurarse de que sudo está instalado Aprobado
5.2.2 Asegurarse de que los comandos sudo usan pty Suspenso Posible impacto operacional
5.2.3 Asegurarse de que existe el archivo de registro de sudo Suspenso
5.3 Configuración del servidor SSH
5.3.1 Asegurarse de que están configurados los permisos en /etc/ssh/sshd_config Aprobado
5.3.2 Asegurarse de que los permisos en los archivos de clave privada de host SSH están configurados Aprobado
5.3.3 Asegurarse de que los permisos en los archivos de clave pública de host SSH están configurados Aprobado
5.3.4 Asegúrese de que el acceso SSH esté limitado. Aprobado
5.3.5 Asegurarse de que LogLevel de SSH es apropiado Aprobado
5.3.7 Asegúrese de que el valor de SSH MaxAuthTries es 4, o menos Aprobado
5.3.8 Asegurarse de que IgnoreRhosts de SSH está habilitado Aprobado
5.3.9 Asegurarse de que HostbasedAuthentication de SSH está deshabilitado Aprobado
5.3.10 Asegurarse de que el inicio de sesión de la raíz de SSH está deshabilitado Aprobado
5.3.11 Asegurarse de que PermitEmptyPasswords de SSH está deshabilitado Aprobado
5.3.12 Asegúrese de que SSH PermitUserEnvironment está deshabilitado Aprobado
5.3.13 Asegurarse de que solo se usan cifrados seguros Aprobado
5.3.14 Asegurarse de que solo se usen algoritmos MAC seguros Aprobado
5.3.15 Asegurarse de que solo se usan algoritmos de intercambio de claves seguros Aprobado
5.3.16 Asegúrese de que está configurado el intervalo de tiempo de espera de inactividad de SSH Suspenso
5.3.17 Asegúrese de que el valor de LoginGraceTime de SSH es un minuto, o menos Aprobado
5.3.18 Asegurarse de que está configurado el banner de advertencia de SSH Aprobado
5.3.19 Asegurarse de que PAM de SSH está habilitado Aprobado
5.3.21 Asegurarse de que SSH MaxStartups está configurado Suspenso
5.3.22 Asegurarse de que SSH MaxSessions está limitado Aprobado
5.4 Configuración de PAM
5.4.1 Asegurarse de que están configurados los requisitos para la creación de contraseñas Aprobado
5.4.2 Asegurarse de que se ha configurado el bloqueo de intentos de contraseña erróneos Suspenso
5.4.3 Asegurarse de que la reutilización de la contraseña está limitada Suspenso
5.4.4 Asegurarse de que el algoritmo de hash de contraseña es SHA-512. Aprobado
5.5 Cuentas y entorno de usuario
5.5.1 Establecer parámetros de Shadow Password Suite
5.5.1.1 Asegurarse de que el número mínimo de días entre los cambios de contraseña está configurado Aprobado
5.5.1.2 Asegurarse de que la contraseña expira en un plazo máximo de 365 días Aprobado
5.5.1.3 Asegurarse de que los días de advertencia para la expiración de contraseña es 7 o más Aprobado
5.5.1.4 Asegurarse de que el plazo máximo del bloqueo de contraseñas inactivas es 30 días Aprobado
5.5.1.5 Asegurarse de que todos los usuarios tienen la última fecha de cambio de contraseña en el pasado. Suspenso
5.5.2 Asegurarse de que las cuentas del sistema están protegidas Aprobado
5.5.3 Asegurarse de que el grupo predeterminado de la cuenta raíz es GID 0. Aprobado
5.5.4 Asegurarse de que el umask de usuario predeterminado es 027, o incluso más restrictivo Aprobado
5.5.5 Asegurarse de que el tiempo de espera predeterminado de shell de usuario sea de 900 segundos o menos Suspenso
5.6 Asegurarse de que el inicio de sesión raíz está restringido a la consola del sistema No es aplicable
5.7 Asegurarse de que está restringido el acceso al comando su Suspenso Posible impacto en la operación
6 Mantenimiento del sistema
6.1 Cambie los permisos del sistema de archivos
6.1.2 Asegurarse de que los permisos de /etc/passwd están configurados Aprobado
6.1.3 Asegurarse de que los permisos de /etc/passwd- están configurados Aprobado
6.1.4 Asegurarse de que los permisos de /etc/group están configurados Aprobado
6.1.5 Asegurarse de que los permisos de /etc/group- están configurados Aprobado
6.1.6 Asegurarse de que los permisos de /etc/shadow están configurados Aprobado
6.1.7 Asegurarse de que los permisos de /etc/shadow- están configurados Aprobado
6.1.8 Asegurarse de que los permisos de /etc/gshadow están configurados Aprobado
6.1.9 Asegurarse de que los permisos de /etc/gshadow- están configurados Aprobado
6.1.10 Asegurarse de que no existen archivos grabables de manera global Suspenso Posible impacto en la operación
6.1.11 Asegurarse de que no existen archivos o directorios sin propietarios Suspenso Posible impacto en la operación
6.1.12 Asegurarse de que no existen archivos o directorios desagrupados Suspenso Posible impacto en la operación
6.1.13 Auditar ejecutables de SUID No es aplicable
6.1.14 Auditar ejecutables de SGID No es aplicable
6,2 Configuración de usuario y de grupo
6.2.1 Asegurarse de que las cuentas de /etc/passwd usan contraseñas sombreadas Aprobado
6.2.2 Asegúrese de que los campos de contraseña no estén vacíos Aprobado
6.2.3 Asegurarse de que todos los grupos en /etc/passwd existen en /etc/group. Aprobado
6.2.4 Asegurarse de que existen todos los directorios principales de los usuarios. Aprobado
6.2.5 Asegurarse de que los usuarios son propietarios de sus directorios principales. Aprobado
6.2.6 Asegurarse de que los permisos de los directorios principales de los usuarios sean 750 o más restrictivos Aprobado
6.2.7 Asegúrese de que los archivos que comiencen por punto de los usuarios no sean de grupo ni de escritura internacional Aprobado
6.2.8 Asegurarse de que ningún usuario tiene archivos .netrc. Aprobado
6.2.9 Asegurarse de que ningún usuario tiene archivos .forward. Aprobado
6.2.10 Asegurarse de que ningún usuario tiene archivos .rhosts. Aprobado
6.2.11 Asegurarse de que la raíz es la única cuenta de UID 0. Aprobado
6.2.12 Garantizar la integridad de la variable PATH raíz Aprobado
6.2.13 Asegurarse de que no existen UID duplicados. Aprobado
6.2.14 Asegurarse de que no existe ningún GID duplicado. Aprobado
6.2.15 Asegurarse de que no existe ningún nombre de usuario duplicado. Aprobado
6.2.16 Asegurarse de que no existe ningún nombre de grupo duplicado Aprobado
6.2.17 Asegurarse de que el grupo de instantáneas está vacío. Aprobado

Pasos siguientes

Para más información acerca de la seguridad de AKS, consulte los siguientes artículos: