¿Qué es la seguridad de contenedores?

Diverso grupo multiétnico de personas que mira pantallas de computadora

Autores

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué es la seguridad de contenedores?

La seguridad de contenedores protege las aplicaciones contenedorizadas y la infraestructura subyacente a lo largo de todo el ciclo de vida de desarrollo de software, desde la creación hasta el despliegue y el tiempo de ejecución.

La seguridad de los contenedores tiene como objetivo mejorar las medidas de protección y minimizar los riesgos de seguridad.

En primer lugar, hay que aclarar sobre lo que estamos analizando porque "seguridad de contenedores" puede tener varios significados. Los contenedores son unidades de software autónomas que agrupan el código de la aplicación con todas las bibliotecas y dependencias necesarias. Permiten que el código se ejecute en cualquier entorno informático, incluido el escritorio, la TI tradicional y la infraestructura en la nube. Los desafíos de seguridad que describimos aquí se centran en aquellos contenedores que contienen y protegen los datos.

Los datos son ahora el alma del comercio y la comunicación. El mundo moderno se detendría sin datos, por lo que la información debe protegerse a toda costa. El engaño y el crimen siguen siendo aspectos permanentes de la condición humana. El delincuente cibernético de hoy tiene las mismas motivaciones que el ladrón de ayer, solo que está equipado con las herramientas y los conocimientos para explotar las vulnerabilidades de seguridad.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

El papel clave de las aplicaciones

Para proteger completamente los datos, necesitamos entender los contenedores. Además, debemos asegurarnos de comprender la importancia de las aplicaciones porque eso es lo que contienen los contenedores: aplicaciones que realizan una multitud de acciones en los datos de una empresa o persona.

 ¿Cuántas aplicaciones? Es una cifra difícil de precisar, pero en abril de 2025, Google Play y la App Store de Apple ofrecían cada una alrededor de 2 millones de aplicaciones distintas. Tanto si estas aplicaciones son empleadas por una organización como por un individuo, las vulnerabilidades de seguridad se producen casi con toda seguridad a partir de la transferencia de datos del usuario de la aplicación a la propia aplicación.

Esta transferencia abarca desde una persona que proporciona datos financieros personales para usar una aplicación de juegos hasta una empresa que proporciona datos confidenciales e información de propiedad exclusiva a una aplicación de contabilidad. Si dicha información es objeto de robo (a través de malware u otros tipos de amenazas cibernéticas) o se expone, podría provocar pesadillas de relaciones públicas, pérdida de ventaja competitiva y violaciones de seguridad. Incluso podría tener como consecuencia el robo de millones o incluso miles de millones de USD en datos de clientes.

Por lo tanto, en todos los niveles, se comparten cantidades masivas de información privada con y a través de aplicaciones. Hay mucho en juego, por lo que mantener una postura sólida de seguridad de contenedores es una parte de vital importancia de la ciberseguridad.

¿Cómo funcionan los contenedores?

En un contexto de desarrollo de software, las tecnologías de contenedores contienen todo lo necesario para que se ejecuten las aplicaciones. El contenedor lo empaqueta todo como una entidad autónoma que está lista para funcionar y capaz de ejecutarse de manera consistente en varios tipos de entornos. Todos los archivos necesarios para ejecutar la aplicación están aquí:

  • Código de aplicación: el código de aplicación incluye todos los archivos ejecutables de la aplicación, como el código fuente y el código binario compilado.
  • Entorno de tiempo de ejecución: el entorno de tiempo de ejecución del contenedor contiene las infraestructuras, bibliotecas y herramientas necesarias para ejecutar el código de la aplicación.
  • Bibliotecas del sistema: las bibliotecas del sistema son recursos compartidos que ofrecen funciones comunes como bibliotecas gráficas, bibliotecas de red y nodo de transporte de entrada/salida de archivos.
  • Herramientas del sistema: cada aplicación requiere utilidades y herramientas específicas para ayudar a ejecutar sus funciones correctamente.
  • Archivos de configuración: los archivos de configuración establecen la forma en que se comporta la aplicación y qué ajustes se aplican a esta.
  • Variables de entorno: los entornos de desarrollo, pruebas y producción pueden modificarse según la actividad de tiempo de ejecución exhibida por el contenedor. Las variables dentro de los entornos en contenedores ayudan a controlar esas configuraciones.
  • Kernel del sistema operativo: los contenedores no requieren un sistema operativo (SO) completo. En su lugar, utilizan un tipo de virtualización del sistema operativo que aprovecha las características del kernel del sistema operativo.
  • Configuración de seguridad: esta configuración permite al usuario personalizar las medidas de seguridad implementadas para regular variables como controles de acceso, capacidades y límites de recursos.
OpenShift 

Vea cómo se ejecutan los contenedores en la nube con OpenShift

Los contenedores facilitan la creación, ejecución y movimiento de aplicaciones entre diferentes entornos. Este video muestra cómo OpenShift on IBM Cloud ayuda a los equipos a gestionar aplicaciones en contenedores de manera eficiente, haciendo que el desarrollo en la nube sea más rápido y confiable.

¿Qué son las imágenes de contenedores?

Las imágenes de contenedor son archivos estáticos e inmutables que contienen código ejecutable y funcionan de forma aislada en la infraestructura de TI. La imagen del contenedor contiene los componentes necesarios para crear un contenedor en un sistema operativo. Las imágenes de contenedor se agregan con diferentes capas y funcionan como plantillas.

Las imágenes de contenedor son el formato predeterminado para entregar aplicaciones en entornos nativos de la nube, y es donde comienza la seguridad de los contenedores. La imagen base es crítico para la seguridad, ya que es la base de todas las imágenes derivadas. La seguridad de contenedor comienza con el uso de fuentes confiables, asegurándose de que la imagen provenga de una organización acreditada, esté alojada en un registro confiable e incluya código fuente accesible para todos los componentes.

Es imprescindible emplear la administración proactiva de vulnerabilidades durante todo el ciclo de vida, incluso cuando se comienza con una imagen base de confianza. Escanee regularmente todas las imágenes del contenedor mediante un escáner de imágenes, ya sea integrado en el registro o proporcionado como una herramienta independiente. Además, identifique imágenes de contenedor que infrinjan las políticas o las mejores prácticas, comúnmente denominadas configuraciones erróneas de contenedor.

Seguridad de contenedores a lo largo del ciclo de vida del desarrollo de software

El ciclo de vida del desarrollo de software (SDLC) rige las “estaciones” de la vida de un software y su existencia funcional. Las siete etapas descritas aquí son todas necesarias y deben realizar secuencialmente.

Una gran cantidad de tecnologías clave trabajan mano a mano con estas etapas de desarrollo, y estas soluciones (y las medidas de seguridad que proporcionan) también se analizan en el punto en el que deberían ocurrir en el SDLC.

Planificación

La etapa inicial es definir todos los aspectos del proyecto. Eso significa primero describir el alcance del proyecto, así como sus objetivos esperados y los recursos disponibles para el esfuerzo. Pero normalmente también incluye otras actividades, como el análisis de costos y beneficios, los estudios de viabilidad y la programación.

Se sugiere que las siguientes dos tecnologías relacionadas se analicen durante la etapa de planeación, ya que ambas pueden implementarse durante cualquier parte del SDLC:

  • Pipeline de CI/CD: El pipeline de integración continua/despliegue continuo (CI/CD) es un flujo de trabajo de DevOps en el que las aplicaciones en contenedores ganan velocidad y optimización mediante el uso de comprobaciones de seguridad automatizadas. A través del monitoreo de seguridad automatizado y continuo, se puede alertar sobre los problemas para los esfuerzos de corrección, de modo que las reparaciones puedan ocurrir antes de que se produzcan más ramificaciones. El pipeline puede fortalecerse aún más mediante la implementación de desplazamiento a la izquierda, un enfoque que integra las medidas de seguridad antes en el proceso de DevOps. El uso de contenedores junto con un pipeline de CI/CD ayuda a la integración general de las prácticas de seguridad en los flujos de trabajo utilizados por los equipos de DevSecOps.

Análisis de requisitos

La siguiente etapa consiste en profundizar en las necesidades del proyecto, vistas a través de la lente de las necesidades de los stakeholders y los usuarios. Es necesario recopilar, analizar y gestionar todos los distintos requisitos que se aplican al proyecto.

Diseñe

En esta etapa, el diseñador suele ser el centro de atención porque es el momento de canalizar toda la información recopilada sobre los requisitos en un diseño de software viable. Este proyecto técnico describe la arquitectura necesaria, las estructuras de datos requeridas y la interfaz de usuario que debe adoptarse.

Hay cuatro tecnologías relacionadas que idealmente deberían abordarse durante la etapa de diseño, si se van a utilizar.

  • Nube: la adopción generalizada de contenedores coincidió con la adopción igualmente amplia de la computación en la nube. Ahora, los contenedores se usan en la nube en grandes cantidades para crear aplicaciones nativas de la nube. La responsabilidad de proteger los activos de información basados en la nube recae en proveedores de servicios en la nube como IBM Cloud, Microsoft Azure y Amazon Web Services (AWS). Establecer la seguridad en la nube implica implementar medidas de seguridad que fomenten la protección de datos, la seguridad de la infraestructura y la gestión de identidades. Las cargas de trabajo que se mueven a la nube se enfrentan a los mismos problemas básicos de seguridad; los repositorios de imágenes aún necesitan escaneos de rutina para garantizar su viabilidad, incluso si se almacenan en entornos de nube. La implementación de la nube idealmente debería comenzar durante la etapa de diseño del SDLC, ya que impacta significativamente la arquitectura y la planeación de recursos, las cuales deben abordar antes de que comience el desarrollo.
  • Linux: Linux es una parte instrumental de la seguridad del contenedor. La plataforma de código abierto suministra los componentes básicos que se usan en la seguridad de los contenedores y las características de seguridad necesarias como cortafuegos. Los espacios de nombres de Linux son lugares para aislar eficazmente los contenedores en ejecución dentro de su entorno y minimizar su acceso a recursos mientras mantienen una operación coherente. Los contenedores de Linux aprovechan al máximo las capacidades del kernel de Linux  mediante el uso de distintos métodos para restringir y aislar las cargas de trabajo contenedorizadas. Linux es donde se finalizan los detalles clave del programa y comienza la programación real. Como tal, puede tener lugar durante la etapa de diseño o implementación posterior.
  • Microservicios: al igual que con Linux, los microservicios usan contenedores para imponer aislamiento en cada microservicio y darle su propio entorno de "sandbox" aparte del sistema operativo host y otros servicios. Esto reduce la superficie de ataque y mejora sus capacidades de defensa, además de dar a los contenedores de microservicios una escalabilidad adicional. Al igual que con otras mejores prácticas de seguridad de contenedores, los microservicios aplican el principio de privilegio mínimo, por el cual a un contenedor solo se le otorgan los privilegios mínimos absolutos necesarios para que pueda ejecutar su función según lo previsto, pero sin exceder su capacidad para acceder a los recursos o incidir en otros contenedores. De manera óptima, los microservicios deben usarse durante la etapa de diseño porque ahí es donde las aplicaciones monolíticas se dividen en servicios más pequeños que luego se pueden desplegar de forma independiente. Sin embargo, en algunas circunstancias, los microservicios también se pueden utilizar durante la etapa de despliegue.
  • Máquinas virtuales: las máquinas virtuales (VM) pueden proporcionar seguridad adicional para los contenedores, ya que ofrecen una capa adicional de aislamiento. Las máquinas virtuales tienen su propio sistema operativo independiente, lo que reduce el riesgo de que los contenedores se contaminen a través de la interacción con otros contenedores, ya que no tienen que recurrir a un sistema host para obtener recursos. Las máquinas virtuales también presentan un límite de seguridad más sólido que el que pueden alcanzar los contenedores por sí solos, lo que ayuda a reducir la posibilidad de que una violación de seguridad se propague por todo el sistema de archivos y afecte negativamente a los flujos de trabajo que se están procesando. El uso de máquinas virtuales debe realizarse en la etapa de diseño porque ahí es donde se teoriza y planea la arquitectura y la estructura de un sistema.  

Desarrollo

Una vez realizado todo el trabajo de "preparación", finalmente es el momento de crear el software con las especificaciones de diseño proporcionadas por el diseñador de software. El desarrollador escribe el código, crea interfaces de programación de aplicaciones (API) y se encarga de que los componentes se integren según sea necesario.

Aunque Linux suele utilizarse durante la etapa de diseño, también se utiliza durante el desarrollo porque es cuando se eligen la arquitectura y la plataforma del software y donde comienza el proceso de programación del software.

Pruebas

La creación de un sistema de pruebas adecuadas asegura que el código creado funcione como se esperaba y se mantenga libre de errores. Es importante automatizar las políticas que señalan las compilaciones con problemas de seguridad, sobre todo a medida que se descubren nuevas vulnerabilidades. La aplicación de parches a los contenedores no es tan eficaz como la reconstrucción, por lo que las pruebas de seguridad deben incluir políticas que desencadenen reconstrucciones automatizadas. La etapa de prueba puede incluir integration testing, pruebas unitarias y pruebas del sistema.

Despliegue

Suponiendo que se completaron todos los pasos anteriores, es hora de publicar el software y ponerlo a disposición de los usuarios. El despliegue cubre todas las tareas relacionadas necesarias para preparar los productos de software para su distribución masiva, como el empaquetado y la configuración del software.

Kubernetes

Kubernetes respalda los esfuerzos de orquestación de contenedores y la seguridad de los contenedores al brindarle una plataforma automatizada y de código abierto para proteger las aplicaciones en contenedores. Los entornos de Kubernetes ofrecen características de seguridad, como control de acceso basado en roles (RBAC), políticas de red que gobiernan la comunicación entre pods (como Kubernetes se refiere a los contenedores). También ofrecen gestión de secretos (que prioriza el almacenamiento seguro de datos confidenciales, como contraseñas, claves API  claves de cifrado y tokens).

Los procesos de seguridad de Kubernetes aplican un monitoreo regular en todos los clústeres de Kubernetes en busca de posibles errores de configuración, es decir, cualquier configuración que pueda abrir la puerta a riesgos de seguridad y exponer vulnerabilidades. Y aunque, técnicamente, Kubernetes se puede usar durante cualquier parte del recorrido del software, el uso principal reconocido de Kubernetes es manejar el despliegue y el escalado de aplicaciones en contenedores.

Como se mencionó anteriormente, los microservicios también se pueden utilizar durante la etapa de despliegue.

Mantenimiento

La última etapa del proceso SDLC es proporcionar soporte continuo para el software. Esta etapa puede implicar la generación de mejoras del programa, correcciones de errores y otros tipos de mejoras de rendimiento.

Mejores prácticas de seguridad de contenedores

Hay varios pasos rutinarios que las organizaciones pueden tomar para ayudar a subrayar la eficacia de sus políticas de seguridad. La mayoría de ellos reflejan enfoques de sentido común y utilizan principios probados de gestión de vulnerabilidades:

Restringir el acceso

Muchas medidas de seguridad de los contenedores restringen el acceso de alguna manera o forma. Por ejemplo, conceder privilegios a los contenedores con moderación, basar en el principio del menor privilegio, dando a los contenedores sólo las licencias que necesitan para funcionar. Del mismo modo, limite los controles de acceso para que sólo los usuarios autorizados puedan acceder a las imágenes de Container Registry y manipularlas. Siga las reglas de control de acceso basado en funciones (RBAC) para garantizar la correcta autenticación de los usuarios y evitar accesos no autorizados. Por último, cerciorar de que las imágenes base de los contenedores proceden únicamente de fuentes autorizadas. Compruebe las imágenes de base antes de su aplicación para Verify que fueron debidamente verificadas y proceden de fuentes oficialmente reconocidas.

Minimice la exposición

Para limitar con eficacia las vulnerabilidades, las organizaciones deben reducir la superficie de ataque mediante la eliminación de las imágenes de contenedores y eliminando servicios, procesos y paquetes innecesarios. El objetivo es minimizar los posibles vectores de ataque dirigidos a imágenes de contenedores.

Realice análisis de vulnerabilidades de rutina

Utilice herramientas de seguridad de contenedores para realizar análisis rutinarios de vulnerabilidades del entorno del contenedor. Además, escanee imágenes a intervalos regulares y actualice las imágenes de contenedores periódicamente, junto con el motor de contenedores que está utilizando, como Docker.

Manténgase a la defensiva

Las vulnerabilidades pueden surgir en cualquier momento, por lo que es una buena práctica mantenerse alerta realizando con regularidad un monitoreo del tiempo de ejecución y protegiendo la seguridad del tiempo de ejecución. Manténgase alerta también ante posibles problemas de seguridad de la red. El trabajo en equipo fortalece la seguridad: todos en la empresa deben contribuir y mantenerse enfocados en la causa cada vez más importante de la seguridad de contenedores.

Soluciones relacionadas
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.

Conozca Red Hat OpenShift
Soluciones de contenedores

Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto y despliegue rápido.

Explorar contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.

Servicios en la nube
Dé el siguiente paso

Modernice su infraestructura con las soluciones de contenedores de IBM. Ejecute, escale y gestione cargas de trabajo en contenedores en todos los entornos con flexibilidad, seguridad y eficiencia mediante el uso de la plataforma integral de contenedores de IBM.

Explore las soluciones de contenedores Cree su cuenta gratuita de IBM Cloud