En una interpretación indirecta del principio de Kerckhoff en criptografía: un sistema criptográfico debe permanecer seguro incluso si todo sobre el sistema, excepto la clave, es conocido por el atacante.
Este principio es la base de una verdad importante sobre la seguridad moderna, que es que la oscuridad no es necesariamente protección. De manera similar, la contenerización, una herramienta poderosa en el despliegue moderno de software, puede prevenir movimientos laterales dentro de una red si se implementa correctamente, pero no impide que una aplicación dentro del contenedor sea comprometida.
Los contenedores ofrecen conveniencia, pero sin una seguridad sólida, también conllevan riesgos. No es sorprendente que el 60% de las imágenes de contenedores que se ejecutan en entornos de producción estén plagadas de vulnerabilidades conocidas, creando una puerta abierta para amenazas cibernéticas.
¿Cómo proteger sus contenedores de posibles brechas? La respuesta comienza con una lista de verificación integral de seguridad de contenedores que aborde las vulnerabilidades en cada capa, asegurando que no quede ninguna brecha expuesta.
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 aplicaciones contenerizadas, junto con la infraestructura que las soporta, de vulnerabilidades y amenazas a lo largo de su ciclo de vida.
Esto incluye asegurar toda la pila, desde el motor de contenedores, el sistema operativo anfitrión y la plataforma de orquestación (como Kubernetes) hasta los propios contenedores.
Una parte clave de la seguridad de contenedores es el escaneo continuo, comenzando desde las imágenes base hasta el código de la aplicación dentro de los contenedores.
Debe monitorear activamente los riesgos en tiempo de ejecución que puedan indicar un ataque, asegurándose de que las imágenes de contenedores utilizadas provengan de fuentes confiables y estén libres de vulnerabilidades conocidas.
También debe ejecutar el aislamiento del contenedor de manera impecable. Verifique dos veces cualquier punto débil: escalamiento de privilegios, redes mal configuradas, etc.
Existen varias otras medidas que puede tomar para eliminar activamente las amenazas de su entorno. Con un conjunto sólido de protocolos o listas de verificación de seguridad de contenedores que incluyan una variedad de prácticas, herramientas y políticas, puede proteger todo el ciclo de vida del contenedor, desde el desarrollo y despliegue hasta la ejecución y desmantelamiento.
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. Mantener directrices o listas de verificación a mano puede reducir el tiempo necesario para desplegar con éxito un contenedor Docker o Kubernetes completamente seguro.
Además de ahorrar tiempo, una lista de verificación de seguridad tiene varias otras ventajas:
- Estandarización: Estandarizar cada paso del ciclo de vida del contenedor es clave para garantizar la uniformidad y prevenir errores críticos. Cuando las personas trabajan juntas, siempre existe la posibilidad de error humano. Tener directrices claras sobre las tareas mantiene a todos alineados y ayuda a que todo funcione sin problemas.
- Cobertura integral: Los entornos contenerizados tienen múltiples bloques de construcción, como imágenes, registros, redes y tiempo de ejecución. Realizar una verificación antes de que estos elementos se incorporen al sistema debe ser obligatorio. Esto puede incluir escaneo de imágenes, controles de acceso, segmentación de red y monitoreo en tiempo de ejecución.
- Eficiencia y consistencia: Una lista de verificación es solo otro paso para garantizar un contenedor seguro, brindando a sus operaciones una ventaja adicional hacia la eficacia y la consistencia. Además, sus equipos tendrán un punto de referencia sobre las mejores prácticas de seguridad, reduciendo así las posibilidades de omitir un paso.
- Cumplimiento: Dado el creciente número de amenazas cibernéticas y brechas de datos, los gobiernos y organismos reguladores han establecido requisitos normativos estrictos. Una lista de verificación de seguridad de contenedores bien definida ayuda a garantizar el cumplimiento al aplicar mejores prácticas como control de acceso basado en roles (RBAC), escaneo de imágenes y cumplimiento de los puntos de referencia CIS para Docker y Kubernetes. También asegura registros y monitoreo para auditorías y cumple con los requisitos de marcos como GDPR, HIPAA o PCI-DSS.
- Mitigación proactiva de amenazas: Siempre es buena idea revisar todo el ciclo de vida del contenedor dos veces antes de desplegarlo, y una lista de verificación le ayuda a lograrlo. La primera revisión asegura que se implementen todas las medidas de seguridad, mientras que la segunda sirve como paso de validación para detectar configuraciones omitidas o amenazas emergentes antes de que se conviertan en problemas críticos.
Las 10 listas clave de verificación de seguridad de contenedores
Ahora que hemos establecido la importancia de la lista de verificación de seguridad de contenedores, es momento de profundizar y entender qué controles de seguridad debe implementar.
Aquí tiene una lista de verificación de seguridad para Docker y Kubernetes que enumera de manera concisa todos los pasos que debe tener su protocolo de seguridad:
Seguridad de imágenes
- Utilice imágenes base confiables y verificadas de repositorios oficiales.
- Restrinja quién puede subir/descargar imágenes hacia/desde el registro
- Escanee regularmente las imágenes de contenedores en busca de vulnerabilidades.
- Bloquee el despliegue de imágenes vulnerables o limite su acceso a la red
- Detecte datos sensibles como claves o tokens antes de subir imágenes
- Asegúrese de que las imágenes sean mínimas, conteniendo solo las dependencias necesarias.
- Implemente parches y actualizaciones automáticas 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 de 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 sensibles.
- Utilice control de acceso basado en roles (RBAC) para limitar el acceso a endpoints críticos de la API y acciones sobre recursos de contenedores como `get`, `list`, `watch`, o `secrets.`
- Utilice autenticación multifactor (MFA) para acceder a entornos de contenedores.
Seguridad de red
- Aísle los contenedores utilizando segmentación de red (por ejemplo, políticas de red de Docker).
- Proteja los servicios expuestos al público filtrando el tráfico en varios puertos y protocolos.
- Utilice comunicación cifrada (por ejemplo, TLS) para datos en tránsito.
- Utilice controles de capa 7 con un service mesh e inspección profunda de paquetes para aplicar políticas HTTP/HTTPS.
- Restringa el tráfico de las capas 3 y 4 utilizando control de acceso basado en IP y puertos para limitar el acceso.
- Certifique que el complemento Container Network Interface (CNI) elegido soporte 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 nieguen 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 Mutual TLS (mTLS) para autenticar la comunicación entre cargas de trabajo dentro de los clústeres.
Seguridad en tiempo de ejecución
- Monitoree el comportamiento en tiempo de ejecución de los contenedores en busca de actividad sospechosa.
- Limite el acceso de los contenedores a los recursos del host utilizando módulos de seguridad de Linux.
- Implemente límites de recursos (CPU, memoria) para prevenir ataques de denegación de servicio.
- Restringa el acceso a la API y al demonio en tiempo de ejecución para evitar la manipulación de contenedores en ejecución.
- Registre y audite todas las actividades de los contenedores en tiempo real.
Gestión de vulnerabilidades y parches
- Escanee regularmente los contenedores y sistemas anfitriones en busca de vulnerabilidades.
- Escanee archivos de configuración para cumplimiento en su pipeline de integración continua e incorpore verificaciones automáticas de configuraciones inseguras.
- Utilice firma de imágenes (Docker Content Trust) para verificar la integridad de las imágenes de contenedores.
- Realice análisis de código estático para identificar vulnerabilidades en el código de la aplicación y sus dependencias.
Gestión de secretos
- Almacene datos sensibles (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 Secrets y rote las claves de cifrado.
- Cifre los datos en reposo configurando el servidor API de Kubernetes para cifrar los datos secretos en etcd, para una capa adicional de protección.
- Configure tokens con períodos de expiración más cortos para reducir el impacto de un token comprometido.
Seguridad de la orquestación
- Asegure los orquestadores de contenedores (por ejemplo, Docker) con controles de acceso sólidos.
- Habilite el control de acceso basado en roles (RBAC) y asegure el mínimo privilegio para usuarios y cuentas de servicio.
- Implemente control de versiones (como Git) para definiciones y configuraciones de servicios del orquestador.
- Habilite el registro de todas las solicitudes API al plano de control del orquestador (por ejemplo, registros de auditoría en Kubernetes)
Configuración segura
- Desactive servicios o puertos innecesarios en los contenedores.
- Utilice sistemas de archivos de solo lectura para contenedores que no requieran acceso de escritura.
- Asegúrese de que los contenedores sean sin estado e inmutables siempre que sea posible.
Respaldo y recuperación ante desastres
- Realice copias de seguridad periódicas de las configuraciones de contenedores y los datos de la aplicación.
- Asegure la consistencia de los respaldos utilizando comandos de snapshot de etcd para realizar una copia de seguridad en un punto en el tiempo.
- Realice simulaciones de desastres donde falle intencionalmente un componente del clúster y valide que el proceso de restauración funcione como se espera.
Cumplimiento y auditoría
- Asegure el cumplimiento con los estándares de seguridad de la industria (por ejemplo, GDPR, PCI-DSS).
- Audite regularmente las políticas de seguridad de contenedores, registros y 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
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 lecturaMejores prácticas de seguridad de contenedores
Aunque le hemos proporcionado una lista de verificación de seguridad de contenedores, aquí tiene algunas mejores prácticas de seguridad de contenedores que fortalecen sus entornos contenerizados:
- Utilice imágenes base confiables: La base de su contenedor se construye sobre las imágenes. Así que asegúrese de obtenerlas de una fuente confiable. Además, opte por una herramienta de escaneo automático de imágenes y parches regulares. Utilice herramientas que se integren directamente en su pipeline CI/CD para verificar las imágenes base a medida que avanzan por cada etapa.
- Implemente el principio de mínimo privilegio: 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 anfitrión asegurando que solo se ejecuten 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.
- Proteja la Infraestructura como Código (IaC): Para evitar que configuraciones riesgosas lleguen a producción, puede utilizar plantillas IaC como manifiestos de Kubernetes que escanean en busca de violaciones de políticas y configuraciones incorrectas (como roles IAM demasiado permisivos o puertos expuestos) antes del despliegue.
- Refuerce la configuración en la nube: Asegure el aislamiento de recursos en la nube mediante VPCs y redes privadas, y refuerce los servicios en la nube utilizando control de acceso de mínimo privilegio. Implemente monitoreo continuo para detectar configuraciones incorrectas en la nube (como buckets S3 abiertos o interfaces de gestión expuestas).
- Reduzca vulnerabilidades externas: Las vulnerabilidades en dependencias de terceros (principalmente encontradas durante las compilaciones) pueden introducir debilidades en sus aplicaciones. Puede automatizar el escaneo de dependencias en busca de CVEs conocidos tanto en dependencias del sistema operativo como de la aplicación. Actualice regularmente bibliotecas y paquetes.
- Controles de referencia para 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 del despliegue. Implemente verificaciones de referencia en tiempo de ejecución (por ejemplo, puntos de referencia CIS de Kubernetes) para auditar regularmente tanto los orquestadores como los contenedores en ejecución.
- Segmentación de red: Cree y aplique políticas para controlar el tráfico de contenedores y reducir la superficie de ataque. La microsegmentación de cargas de trabajo contenerizadas 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, memoria y almacenamiento de cada contenedor, puede evitar que cualquier contenedor agote los recursos del sistema. Si se agotan los recursos del sistema, podría enfrentar problemas con las condiciones del servicio y otros problemas operativos.
- Monitoree y registre la actividad: Necesita responder a amenazas de seguridad en tiempo real. Obtenga herramientas que proporcionen visibilidad sobre el comportamiento de los contenedores, permitiéndole identificar y mitigar amenazas rápidamente.
- Proteja el pipeline CI/CD: Asegure su pipeline CI/CD incorporando controles de seguridad en cada etapa del ciclo de vida del contenedor, desde el commit de código hasta el despliegue. Esto ayuda a prevenir que se introduzcan vulnerabilidades durante el proceso de desarrollo.
- Automatice las actualizaciones de seguridad: Utilice herramientas de automatización para aplicar parches y actualizaciones de seguridad a contenedores y orquestadores sin causar tiempo de inactividad.
- Cumplimiento y aplicación de políticas: Audite los contenedores regularmente para cumplir con las políticas organizacionales y regulatorias. Utilice herramientas de aplicación de políticas para aplicar políticas de seguridad en todos los entornos y mantener estándares de seguridad y cumplimiento consistentes.
Errores comunes de seguridad de contenedores que debe evitar
En febrero de 2019, el equipo de Docker anunció públicamente la vulnerabilidad CVE-2019-5736. Debido a esta debilidad, los atacantes podían sobrescribir el binario del host, obtener acceso al sistema anfitrión y ejecutar comandos como root dentro de un contenedor.
Varias organizaciones, incluidas AWS, RedHat y Microsoft Azure, también encontraron esta vulnerabilidad y aplicaron parches a sus productos.
En 2021, la vulnerabilidad CVE-2021-3490 explotó una falla en el kernel de Linux relacionada con el extended Berkeley Packet Filter (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 requeridas, dejando ciertas configuraciones expuestas.
Estos incidentes demuestran que un pequeño descuido en la seguridad de sus contenedores puede comprometer la integridad de sus aplicaciones y exponer su entorno a riesgos.
Otros errores comunes de seguridad de contenedores a tener en cuenta son:
- Asumir que las imágenes públicas son seguras puede llevar a despliegues comprometidos. Nunca confíe en imágenes externas sin una revisión exhaustiva por desarrolladores experimentados.
- Exponer contenedores a demasiados canales abiertos aumenta la superficie de ataque. Evite dejar contenedores expuestos con permisos de root y revise las interacciones de red en busca de posibles puntos débiles.
- No verificar ni escanear bibliotecas de código en busca de vulnerabilidades antes de integrarlas en los contenedores
- No mantener registros precisos de los logs puede dificultar la detección rápida de problemas de seguridad.
- Ignorar la seguridad del pipeline CI/CD, como omitir controles de seguridad durante la compilación y el despliegue, puede introducir vulnerabilidades desde las primeras etapas del desarrollo.
SentinelOne Cloud Workload Security para contenedores
Necesita una estrategia unificada en todos los nodos para proteger eficazmente todos sus entornos contenerizados. Q2 es un proveedor líder de servicios financieros para más de 1200 bancos, uniones y entidades 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 para contenedores de SentinelOne en todos sus entornos. Y al igual que Q2, usted también puede beneficiarse de varias características y ventajas de esta solución, estar al tanto de cualquier anomalía y mantener una postura de seguridad sólida.
Características y beneficios clave
- Protección integral de cargas de trabajo híbridas en la nube en entornos multinube, incluidos AWS, Azure, GCP y centros de datos locales
- Bloquea ransomware, exploits de día cero, criptomineros y ataques fileless
- Arquitectura de agente basada en eBPF que ofrece visibilidad en tiempo real a nivel de procesos del sistema operativo, proporcionando telemetría profunda sin depender de módulos del kernel
- Motor de IA estática que analiza 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 temporal, 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 máxima disponibilidad de cargas de trabajo
- Acelera investigaciones y respuesta a incidentes, potencia la búsqueda de amenazas
- Workload Flight Data RecorderTM.
- Acelere la innovación con seguridad en tiempo de ejecución que no interfiere.
- Sin dependencias del kernel. Bajo consumo de CPU y memoria.
- Arquitectura eBPF, para estabilidad y rendimiento
- Soporta Docker, contenedores y runtimes cri-o
- Protección autoescalable
- CWPP en tiempo real
- Soporta servicios K8s autogestionados y gestionados
- Soporta 14 distribuciones líderes de Linux, incluido Amazon Linux 2023
- Integración con Snyk (se adquiere por separado)
Además, la Cloud-Native Application Protection Platform (CNAPP) de SentinelOne le ayuda a mejorar la seguridad de contenedores con funciones como Kubernetes Security Posture Management (KSPM) y Cloud Security Posture Management (CSPM), asegurando que sus aplicaciones cloud-native permanezcan seguras y en cumplimiento.
Protección de cargas de trabajo en la nube impulsada por IA (CWPP) para servidores, máquinas virtuales y contenedores, que detecta y detiene amenazas en tiempo de ejecución en tiempo real.
Preguntas frecuentes
Para garantizar la seguridad de los contenedores, es necesario adoptar un enfoque amplio que cubra múltiples capas. Comience por:
- Utilizar imágenes base confiables y escanearlas frecuentemente en busca de vulnerabilidades, manteniendo las imágenes mínimas para reducir la superficie de ataque.
- Aplicar el principio de privilegio mínimo restringiendo los contenedores solo a los permisos necesarios 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 cada etapa, desde la construcción hasta la ejecución.
- Por último, asegúrese de que su host y orquestador estén debidamente reforzados con parches de seguridad y políticas de red para limitar la comunicación entre contenedores y reducir amenazas potenciales.
La Iniciativa de Seguridad de Contenedores (CSI) tiene siete partes principales. Estas incluyen:
- Análisis de imágenes
- Protección en tiempo de ejecución
- Control de acceso
- Protección de redes
- Gestión de cumplimiento
- Supervisión
- Respuesta a incidentes.
SentinelOne Singularity Cloud Workload Security (CWS) desempeña un papel importante en la seguridad de contenedores. Protege las aplicaciones en contenedores durante todo su ciclo de vida. La plataforma automatiza la protección en tiempo de ejecución, gestiona vulnerabilidades y aplica el cumplimiento. Funciona con Kubernetes y otros sistemas para visualizar y proteger contenedores en tiempo real, tanto en nubes públicas como privadas.
El ciclo de vida de la seguridad de contenedores tiene cinco pasos principales:
- Seguridad de imágenes: Comience con imágenes verificadas seguras y revíselas con frecuencia para encontrar puntos débiles.
- Seguridad en la construcción: Asegúrese de que el proceso de construcción del contenedor siga reglas y métodos seguros.
- Seguridad en el despliegue: Utilice reglas de seguridad, otorgue los mínimos privilegios necesarios y configure redes seguras al implementar contenedores.
- Seguridad en tiempo de ejecución: Supervise los contenedores para detectar comportamientos anómalos, aplique reglas de seguridad en tiempo de ejecución y mantenga las redes separadas.
- Desmantelamiento: Retire los contenedores asegurándose de eliminar todos los datos confidenciales.

