En una interpretación indirecta del principio de Kerckhoff en criptografía, un sistema criptográfico debe seguir siendo seguro incluso si el atacante conoce todo sobre el sistema, excepto la clave.
Este principio es la base de una importante verdad sobre la seguridad moderna, que es la oscuridad no es necesariamente protección. Del mismo modo, la contenedorización, una potente herramienta en la implementación de software moderno, puede impedir los movimientos laterales dentro de una red si se implementa correctamente, pero no impide que una aplicación dentro del contenedor se vea comprometida.
Los contenedores ofrecen comodidad, pero sin una seguridad sólida, también entrañan riesgos. No es de extrañar que el 60 % de las imágenes de contenedores que se ejecutan en entornos de producción estén plagadas de vulnerabilidades conocidas, lo que abre la puerta a las amenazas cibernéticas.
Entonces, ¿cómo se protegen los contenedores de posibles brechas? La respuesta comienza con una lista de verificación de seguridad de contenedores completa que aborda las vulnerabilidades en cada capa, asegurando que no quede ningún hueco expuesto.
En esta publicación, compartimos con usted una lista de verificación de seguridad de contenedores y algunas de las mejores prácticas que le ayudarán a crear una fortaleza impenetrable para proteger sus contenedores.
¿Qué es la seguridad de contenedores?
La seguridad de contenedores es el proceso de proteger las aplicaciones en contenedores, junto con la infraestructura que las soporta, de vulnerabilidades y amenazas a lo largo de su ciclo de vida.
Esto incluye proteger toda la pila, desde el motor del contenedor, el sistema operativo del host y la plataforma de orquestación (como Kubernetes) hasta los propios contenedores.
Una parte fundamental de la seguridad de los contenedores es el escaneo continuo, desde las imágenes base hasta el código de las aplicaciones dentro de los contenedores.
Debe supervisar activamente los riesgos en tiempo de ejecución que puedan indicar un ataque, al tiempo que se asegura de que las imágenes de los contenedores utilizadas proceden de fuentes fiables y están libres de vulnerabilidades conocidas.
También debe ejecutar el aislamiento del contenedor de forma impecable. Compruebe dos veces si hay puntos débiles: escalada de privilegios, redes configuradas incorrectamente, etc.
Hay otras medidas que puede tomar para eliminar activamente las amenazas de su entorno. Con un sólido conjunto de protocolos o listas de verificación de seguridad de contenedores que incluyan una serie de prácticas, herramientas y políticas, puede proteger todo el ciclo de vida del contenedor, desde el desarrollo y la implementación hasta el tiempo de ejecución y la puesta fuera de servicio.
Importancia de una lista de verificación de seguridad de contenedores
Los entornos de contenedores son un laberinto de piezas móviles. Y si desea gestionar su seguridad, necesita un sistema. Tener a mano directrices o listas de verificación puede reducir el tiempo necesario para implementar con éxito un contenedor Docker o Kubernetes totalmente seguro.
Además de ahorrar tiempo, una lista de verificación de seguridad tiene otras ventajas:
- Estandarización: Estandarizar cada paso del ciclo de vida del contenedor es clave para garantizar la uniformidad y evitar errores críticos. Cuando las personas trabajan juntas, siempre existe la posibilidad de que se produzcan errores humanos. Contar con directrices claras sobre las tareas permite que todos estén en sintonía y ayuda a que todo funcione sin problemas.
- Cobertura completa: Los entornos contenedorizados tienen múltiples componentes, como imágenes, registros, redes y tiempo de ejecución. Es obligatorio realizar una comprobación antes de introducir estos elementos en el sistema. Esto puede incluir el escaneo de imágenes, los controles de acceso, la segmentación de la red y la supervisión del tiempo de ejecución.
- Eficiencia y coherencia: Una lista de verificación es solo un paso más para garantizar la seguridad de los contenedores, lo que proporciona a sus operaciones una ventaja adicional en cuanto a eficacia y coherencia. Además, sus equipos tendrán un punto de referencia sobre las mejores prácticas de seguridad, lo que reducirá las posibilidades de que se salten algún paso.
- Cumplimiento normativo: Dado el creciente número de amenazas cibernéticas y violaciones de datos, los gobiernos y los organismos reguladores han establecido requisitos normativos estrictos. Una lista de verificación de seguridad de contenedores bien definida ayuda a garantizar el cumplimiento normativo mediante la aplicación de mejores prácticas como control de acceso basado en roles (RBAC), el escaneo de imágenes y el cumplimiento de los parámetros de referencia CIS para Docker y Kubernetes. También garantiza los registros y la supervisión para las auditorías y cumple los requisitos de marcos normativos como el RGPD, la HIPAA o el PCI-DSS.
- Mitigación proactiva de amenazas: Siempre es buena idea revisar dos veces todo el ciclo de vida del contenedor antes de implementarlo, y una lista de verificación le ayuda a lograrlo. La primera revisión garantiza que se implementen todas las medidas de seguridad, mientras que la segunda sirve como paso de validación para detectar cualquier configuración omitida o amenazas emergentes antes de que se conviertan en problemas críticos.
Las 10 listas de verificación clave para la seguridad de los contenedores
Ahora que hemos establecido la importancia de la lista de verificación de seguridad de los contenedores, es el momento de profundizar y comprender qué controles de seguridad debe implementar.
Aquí tiene una lista de comprobación de seguridad de Docker y Kubernetes que enumera de forma concisa todos los pasos que debe incluir su protocolo de seguridad:
-  Seguridad de las imágenes
- Utilice imágenes base fiables y verificadas de repositorios oficiales.
- Restringe quién puede enviar/extraer imágenes al/del registro
- Escanea regularmente las imágenes de contenedores en busca de vulnerabilidades.
- Bloquea la implementación de imágenes vulnerables o limita su acceso a la red
- Detectar datos confidenciales, como claves o tokens, antes de enviar imágenes
- Asegúrese de que las imágenes sean mínimas y solo contengan las dependencias necesarias.
- Implemente parches y actualizaciones automatizadas de imágenes.
-  Acceso y permisos
- Evite ejecutar contenedores con privilegios de root.
- Evite que los contenedores obtengan privilegios excesivos o realicen llamadas al sistema innecesarias.
- Implemente el principio del mínimo privilegio para contenedores y usuarios.
- Controle qué contenedores pueden modificar archivos o directorios específicos.
- Utilice PodSecurity Admission para restringir el acceso a capacidades y recursos confidenciales.
-  Utilice el control de acceso basado en roles (RBAC) para limitar el acceso a puntos finales API críticos y acciones de recursos de contenedores como `get`, `list`, `watch`, o `secrets.`
- Utilice autenticación multifactorial (MFA) para acceder a entornos de contenedores.
-  Seguridad de la red
- Aísle los contenedores mediante la segmentación de la red (por ejemplo, políticas de red de Docker).
- Proteja los servicios públicos filtrando el tráfico en varios puertos y protocolos.
- Utilice comunicaciones cifradas (por ejemplo, TLS) para los datos en tránsito.
- Utilice controles de capa 7 con una malla de servicios y una inspección profunda de paquetes para aplicar políticas HTTP/HTTPS.
- Restrinja el tráfico de capa 3 y 4 utilizando el control de acceso basado en IP y en puertos para limitar el acceso.
- Certifique que el complemento de interfaz de red de contenedores (CNI) elegido es compatible con las políticas de red de Kubernetes.
- Aplique políticas de red de entrada y salida a todas las cargas de trabajo, con políticas predeterminadas que denieguen todo el tráfico.
- Asegúrese de que los componentes críticos (API de Kubernetes, API de Kubelet, etc.) no estén expuestos públicamente.
- Cifre el tráfico y utilice TLS mutuo (mTLS) para autenticar la comunicación de las cargas de trabajo dentro de los clústeres.
-  Seguridad en tiempo de ejecución
- Supervisar el comportamiento del tiempo de ejecución del contenedor en busca de actividades sospechosas.
- Limitar el acceso del contenedor a los recursos del host mediante módulos de seguridad de Linux.
- Implemente límites de recursos (CPU, memoria) para evitar ataques de denegación de servicio.
- Restrinja el acceso a la API y al demonio en tiempo de ejecución para evitar la manipulación de los contenedores activos.
- Registrar y auditar todas las actividades de los contenedores en tiempo real.
-  Gestión de vulnerabilidades y parches
- Analice periódicamente los contenedores y los sistemas host en busca de vulnerabilidades.
- Analice los archivos de configuración para verificar el cumplimiento en su canalización de integración continua e incorpore comprobaciones automatizadas para detectar configuraciones de seguridad incorrectas.
- Utilice la firma de imágenes (Docker Content Trust) para verificar la integridad de las imágenes de los contenedores.
- Realice análisis de código estático para identificar vulnerabilidades en el código de una aplicación y sus dependencias.
-  Gestión de secretos
- Almacenar datos confidenciales (claves API, contraseñas) en herramientas de gestión de secretos.
- Evite codificar secretos en imágenes de contenedores o variables de entorno.
- Realice auditorías periódicas y revise quién tiene acceso a la API de secretos y rote las claves de cifrado.
- Cifre los datos en reposo configurando el servidor API de Kubernetes para cifrar los datos secretos en etcd, lo que proporciona una capa adicional de protección.
- Configure tokens con períodos de caducidad más cortos para reducir el impacto de que un token se vea comprometido.
-  Seguridad de la orquestación
- Proteja los orquestadores de contenedores (por ejemplo, Docker) con controles de acceso sólidos.
- Habilite el control de acceso basado en roles (RBAC) y garantice el mínimo privilegio para los usuarios y las cuentas de servicio.
- Implemente el control de versiones (como Git) para las definiciones y configuraciones del servicio del orquestador.
- Habilite el registro de todas las solicitudes de API al plano de control del orquestador (por ejemplo, registros de auditoría en Kubernetes).
-  Configuración segura
- Desactive los servicios o puertos innecesarios en los contenedores.
- Utilice sistemas de archivos de solo lectura para los contenedores que no requieran acceso de escritura.
- Asegúrese de que los contenedores sean sin estado e inmutables siempre que sea posible.
-  Copias de seguridad y recuperación ante desastres
- Realice copias de seguridad periódicas de las configuraciones de los contenedores y los datos de las aplicaciones.
- Asegúrese de que las copias de seguridad sean coherentes utilizando los comandos de guardado de instantáneas de etcd para realizar copias de seguridad puntuales.
- Realice simulaciones de desastres en las que falle intencionadamente un componente del clúster y compruebe que el proceso de restauración funciona según lo esperado.
-  Cumplimiento normativo y auditoría
- Garantizar el cumplimiento de las normas de seguridad del sector (por ejemplo, el RGPD o el PCI-DSS).
- Audite periódicamente las políticas de seguridad de los contenedores, los registros y las configuraciones de control de acceso.
- Realice pruebas de penetración de seguridad periódicas en los entornos de contenedores.
 Guía de mercados de la CNAPP
Guía de mercados de la CNAPP
Obtenga información clave sobre el estado del mercado de CNAPP en esta guía de mercado de Gartner para plataformas de protección de aplicaciones nativas de la nube.
Guía de lecturaPrácticas recomendadas de seguridad de contenedores
Aunque le hemos proporcionado una lista de verificación de seguridad de contenedores, aquí tiene algunas prácticas recomendadas de seguridad de contenedores que refuerzan sus entornos contenedorizados:
- Utilice imágenes base de confianza: La base de su contenedor se construye sobre las imágenes. Por lo tanto, asegúrese de obtenerlas de una fuente fiable. Además, opte por una herramienta de análisis automatizado de imágenes y aplicación periódica de parches. Utilice herramientas que se integren directamente en su canalización de CI/CD para comprobar las imágenes base a medida que avanzan por cada etapa.
- Implemente el privilegio mínimo: Mantenga los privilegios de los contenedores bajo control. Evite ejecutar contenedores como root y restrinja el acceso a los recursos del sistema para adelantarse a posibles vectores de amenaza. Utilice los puntos de referencia CIS para reforzar el sistema operativo del host, asegurándose de que se ejecutan los servicios mínimos, y considere herramientas como SentinelOne para reducir la superficie de ataque a nivel de llamadas al sistema. Esto es importante, ya que los contenedores comparten el kernel del host.
- Infraestructura segura como código (IaC): Para evitar que las configuraciones arriesgadas lleguen a la producción, puede utilizar plantillas IaC como los manifiestos de Kubernetes, que buscan infracciones de políticas y configuraciones incorrectas (como roles IAM demasiado permisivos o puertos expuestos) antes de la implementación.
- Fortalecimiento de la configuración de la nube: Garantice el aislamiento de los recursos de la nube mediante VPC y redes privadas, y fortalezca los servicios de la nube utilizando un control de acceso con privilegios mínimos. Implemente una supervisión continua de las configuraciones incorrectas de la nube (como buckets S3 abiertos o interfaces de gestión expuestas).
- Reducir las vulnerabilidades externas: Las vulnerabilidades en las dependencias de terceros (que se encuentran principalmente durante las compilaciones) pueden introducir debilidades en sus aplicaciones. Puede automatizar el análisis de dependencias para detectar CVE conocidas tanto en el sistema operativo como en las dependencias de las aplicaciones. Actualice periódicamente las bibliotecas y los paquetes.
- Controles de referencia de orquestador y tiempo de ejecución: Utilice controles de seguridad del orquestador, como los controladores de admisión de Kubernetes, para aplicar políticas de seguridad antes de la implementación. Implemente comprobaciones de referencia en tiempo de ejecución (por ejemplo, referencias CIS de Kubernetes) para auditar periódicamente tanto los orquestadores como los contenedores en ejecución.
- Segmentación de la red: Cree y aplique políticas para controlar el tráfico de contenedores y reducir la superficie de ataque. La microsegmentación de las cargas de trabajo en contenedores limita el impacto de una brecha y mejora la seguridad de la red.
- Limitación de recursos: Al aplicar límites de recursos a la CPU, la memoria y el almacenamiento de cada contenedor, se puede evitar que cualquier contenedor agote los recursos del sistema. Si se agotan los recursos del sistema, es posible que se enfrenten a problemas con las condiciones del servicio y otras cuestiones operativas.
- Supervisar y registrar la actividad: Es necesario responder a las amenazas de seguridad en tiempo real. Consiga herramientas que le proporcionen visibilidad sobre el comportamiento de los contenedores, lo que le permitirá identificar y mitigar rápidamente las amenazas.
- Proteja el canal de CI/CD: Asegúrese de que su canal de CI/CD sea seguro incorporando comprobaciones de seguridad en cada etapa del ciclo de vida del contenedor, desde la confirmación del código hasta la implementación. Esto ayuda a evitar que se introduzcan vulnerabilidades durante el proceso de desarrollo.
- Automatice las actualizaciones de seguridad: Utilice herramientas de automatización para aplicar parches de seguridad y actualizaciones a los contenedores y orquestadores sin causar tiempo de inactividad.
- Cumplimiento y aplicación de políticas: Audite los contenedores periódicamente para cumplir con las políticas organizativas y normativas. Utilice herramientas de aplicación de políticas para aplicar políticas de seguridad en todos los entornos y mantener unos estándares de seguridad y cumplimiento coherentes.
Errores comunes de seguridad de contenedores que se deben evitar
En febrero de 2019, el equipo de Docker anunció públicamente el CVE-2019-5736 vulnerability. Debido a esta debilidad, los atacantes podían sobrescribir el binario del host, obtener acceso al sistema host y ejecutar comandos como root dentro de un contenedor.
Varias organizaciones, entre ellas AWS, RedHat y Microsoft Azure, también detectaron esta vulnerabilidad y aplicaron parches a sus productos.
En 2021, la vulnerabilidad CVE-2021-3490 aprovechó un fallo en el kernel de Linux relacionado con filtro de paquetes Berkeley extendido (eBPF)..
Esta debilidad permitía a los atacantes ejecutar código arbitrario en el host desde contenedores comprometidos que tenían acceso a eBPF a través de los perfiles seccomp predeterminados de Kubernetes. Estos perfiles no restringían las llamadas al sistema necesarias, lo que dejaba expuestas ciertas configuraciones.
Estos incidentes demuestran que un pequeño descuido en la seguridad de los contenedores puede comprometer la integridad de las aplicaciones y exponer el entorno a riesgos.
Otros errores comunes de seguridad de los contenedores a los que hay que prestar atención son:
- Suponer que las imágenes públicas son seguras puede comprometer las implementaciones. Nunca confíe en imágenes externas sin una revisión exhaustiva por parte de desarrolladores experimentados.
- Exponer los contenedores a demasiados canales abiertos aumenta la superficie de ataque. Evite dejar los contenedores expuestos con permisos de root y revise las interacciones de red en busca de posibles puntos débiles.
- No examinar y analizar las bibliotecas de código en busca de vulnerabilidades antes de integrarlas en los contenedores
- No mantener registros precisos de los registros puede dificultar la detección rápida de problemas de seguridad.
- Ignorar la seguridad del canal de CI/CD, como omitir las comprobaciones de seguridad durante la compilación y la implementación, puede introducir vulnerabilidades en las primeras fases del desarrollo.
SentinelOne Cloud Workload Security para contenedores
Necesita una estrategia unificada en todos los nodos para proteger eficazmente todos sus entornos contenedorizados. Q2 es un proveedor líder de servicios financieros para más de 1200 bancos, sindicatos e instituciones financieras. Con más de 22 millones de usuarios finales y 65 000 contenedores en la nube pública, Q2 ha implementado Cloud Workload Security for Containers de SentinalOne en todos sus entornos. Al igual que Q2, usted también puede aprovechar varias características y ventajas de esta solución, estar al tanto de cualquier anomalía y mantener una sólida postura de seguridad.
Características y ventajas clave
- Protección integral de cargas de trabajo en la nube híbrida en entornos multinube, incluidos AWS, Azure, GCP y centros de datos locales
- Bloquea el ransomware, los exploits de día cero, mineros de criptomonedas y ataques sin archivos
- La arquitectura de agente basada en eBPF ofrece visibilidad en tiempo real a nivel de proceso del sistema operativo, lo que proporciona una telemetría profunda sin depender de módulos del kernel
- Motor de IA estático que analiza las arquitecturas de archivos aprovechando un conjunto de datos de más de 500 millones de firmas de malware. Motor de IA conductual que utiliza análisis temporales, evaluando patrones a lo largo del tiempo para detectar comportamientos maliciosos que pueden evadir la detección estática.
- Detección en tiempo real de ataques a velocidad de máquina en servidores VMS, contenedores y Kubernetes
- Recuperación automatizada, para una disponibilidad máxima de la carga de trabajo
- Aceleración de las investigaciones y la respuesta a incidentes, y potenciación de la búsqueda de amenazas
- Workload Flight Data RecorderTM.
- Acelere la innovación con una seguridad en tiempo de ejecución que no supone un obstáculo.
- Sin dependencias del kernel. Baja sobrecarga de CPU y memoria.
- Arquitectura eBPF, para mayor estabilidad y rendimiento
- Compatible con Docker, contenedores y entornos de ejecución cri-o
- Protección de autoescalado
- CWPP en tiempo real
- Compatible con servicios K8s autogestionados y gestionados
- Compatible con 14 distribuciones Linux líderes, incluida Amazon Linux 2023
- Integración con Snyk (se adquiere por separado)
Además, la Plataforma de protección de aplicaciones nativas en la nube (CNAPP) de SentinelOne le ayuda a mejorar la seguridad de los contenedores con funciones como Kubernetes Security Posture Management (KSPM) y Cloud Security Posture Management (CSPM), lo que garantiza que sus aplicaciones nativas de la nube sigan siendo seguras y cumplan con las normativas.
Vea SentinelOne en acción
Descubra cómo la seguridad en la nube basada en IA puede proteger su organización en una demostración individual con un experto en productos SentinelOne.
DemostraciónFAQs
Para garantizar la seguridad de los contenedores, es necesario adoptar un enfoque amplio que abarque muchas capas. Empiece por:
- Utilizar imágenes base de confianza y analizarlas con frecuencia en busca de vulnerabilidades, manteniendo las imágenes al mínimo para reducir la superficie de ataque.
- Aplicar el principio del mínimo privilegio restringiendo los contenedores solo a los permisos que necesitan y nunca ejecutándolos como root.
- Supervisar continuamente la actividad de los contenedores en tiempo real para detectar comportamientos sospechosos y realizar análisis de vulnerabilidades en todas las etapas, desde la compilación hasta el tiempo de ejecución.
- Por último, asegúrese de que su host y su orquestador estén debidamente protegidos con parches de seguridad y políticas de red para limitar la comunicación entre contenedores y reducir las posibles amenazas.
La Iniciativa de Seguridad de Contenedores (CSI) tiene siete partes principales. Estas son:
- Escaneo de imágenes
- Protección del tiempo de ejecución
- Control de acceso
- Protección de redes
- Gestión del cumplimiento normativo
- Vigilancia
- Respuesta a incidentes.
La plataforma SentinelOne Singularity Cloud Workload Security (CWS) desempeña un papel importante en la seguridad de los contenedores. Protege las aplicaciones en contenedores durante toda su vida útil. La plataforma automatiza la protección en tiempo de ejecución, gestiona las vulnerabilidades y garantiza el cumplimiento normativo. Funciona con Kubernetes y otros sistemas para ver y proteger los contenedores en tiempo real, tanto en nubes públicas como privadas.
El ciclo de vida de la seguridad de los contenedores tiene cinco pasos principales:
- Seguridad de las imágenes: Comience con imágenes verificadas y seguras, y compruébelas con frecuencia para detectar puntos débiles.
- Seguridad de la compilación: Asegúrese de que el proceso de compilación de contenedores siga reglas y métodos seguros.
- Seguridad de la implementación: Utilice reglas de seguridad, conceda los mínimos derechos necesarios y configure redes seguras cuando implemente contenedores.
- Seguridad en tiempo de ejecución: Esté atento a cualquier acción extraña en los contenedores, utilice reglas de seguridad en tiempo de ejecución y mantenga las redes separadas.
- Desmantelamiento: Retire los contenedores de uso asegurándose de borrar todos los datos privados.

