¿Qué es la seguridad de los contenedores?

Diverso grupo multiétnico de personas mirando pantallas de ordenador

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 en contenedores y la infraestructura subyacente a lo largo de todo el ciclo de vida de desarrollo de software, desde la compilación hasta la implementación 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, aclaremos de qué estamos hablando, porque "seguridad de los contenedores" puede tener múltiples 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, incluidos los de escritorio, la TI tradicional y la infraestructura en la nube. Los desafíos de seguridad que describimos aquí se centran en los contenedores que contienen y protegen los datos.

Los datos son ahora el alma del comercio y la comunicación. El mundo moderno se paralizarí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 ciberdelincuente de hoy tiene las mismas motivaciones que el ladrón de ayer, solo que está equipado con las herramientas y los conocimientos necesarios para explotar las vulnerabilidades de seguridad.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


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

El papel clave de las aplicaciones

Para proteger completamente los datos, necesitamos comprender los contenedores. Además, debemos estar seguros de entender 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 un individuo.

¿Cuántas aplicaciones? Es un número difícil de descifrar, pero en abril de 2025, Google Play y Apple App Store ofrecían cada uno alrededor de dos millones de aplicaciones distintas. Tanto si estas aplicaciones las utiliza una organización como 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 un individuo que proporciona datos financieros personales para jugar en una aplicación de juegos hasta una empresa que proporciona datos confidenciales e información patentada a una aplicación de contabilidad. Si dicha información es robada (a través de malware u otros tipos de ciberamenazas) o expuesta, podría provocar pesadillas de relaciones públicas, pérdida de ventaja competitiva y violaciones de seguridad. Incluso podría provocar el robo de millones o incluso miles de millones de dólares en datos de clientes.

Por lo tanto, en todos los niveles, hay cantidades masivas de información privada que se comparte con y a través de las aplicaciones. Es mucho lo que está en juego, por lo que mantener una sólida posición de seguridad de los contenedores es una parte de vital importancia de la ciberseguridad.

¿Cómo funcionan los contenedores?

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

  • Código de la aplicación: el código de la 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 los marcos, 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 redes y nodos de transporte de entrada/salida de archivos.
  • Herramientas del sistema: cada aplicación requiere servicios y herramientas específicos para ayudarla a ejecutar sus funciones correctamente.
  • Archivos de configuración: los archivos de configuración establecen el comportamiento de la aplicación y qué ajustes se le aplican.
  • Dependencias: las dependencias son los marcos, componentes y bibliotecas ubicados externamente a los que la aplicación debe poder acceder para funcionar como se espera.
  • Variables de entorno: los entornos de desarrollo, pruebas y producción se pueden modificar según la actividad de tiempo de ejecución exhibida por el contenedor. Las variables dentro de los entornos en contenedores ayudan a controlar esa configuración.
  • Núcleo 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.
  • Ajustes de seguridad: estos ajustes permiten al usuario personalizar las medidas de seguridad establecidas para regular variables como los controles de acceso, las capacidades y los límites de recursos.
OpenShift 

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

Los contenedores facilitan la creación, la ejecución y el traspaso de aplicaciones entre diferentes entornos. Este vídeo muestra cómo OpenShift en IBM® Cloud ayuda a los equipos a gestionar aplicaciones en contenedores de forma eficiente, lo que agiliza el desarrollo en la nube y lo hace más fiable.

¿Qué son las imágenes de contenedor?

Las imágenes de contenedores 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 contenedores se agregan con diferentes capas y funcionan como plantillas.

Las imágenes de contenedores 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ítica para la seguridad, ya que es la base de todas las imágenes derivadas. La seguridad de los contenedores comienza con el uso de fuentes confiables, asegurándose de que la imagen proviene de una organización acreditada, está alojada en un registro fiable e incluye código fuente accesible para todos los componentes.

Es imperativo emplear una gestión proactiva de vulnerabilidades a lo largo de todo el ciclo de vida, incluso cuando se comienza con una imagen base de confianza. Analice regularmente todas las imágenes de contenedor mediante un escáner de imágenes, ya sea integrado en el registro o proporcionado como una herramienta independiente. Además, identifique las imágenes de contenedor que infrinjan las políticas o las buenas prácticas, lo que se suele denominar configuraciones incorrectas de contenedores.

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

El ciclo de vida del desarrollo de software (SDLC) rige las "estaciones" de la vida de una pieza de software y su existencia en funcionamiento. Las siete etapas descritas aquí son todas necesarias y deben realizarse secuencialmente.

Numerosas 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 deben ocurrir en el SDLC.

Planificación

La etapa inicial consiste en definir todos los aspectos del proyecto. Eso significa primero esbozar 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 costes y beneficios, los estudios de viabilidad y la programación.

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

  • Pipeline de CI/CD: el pipeline de integración continua/implementación continua (CI/CD) es un flujo de trabajo de DevOps en el que las aplicaciones en contenedores ganan velocidad y racionalización mediante el uso de comprobaciones de seguridad automatizadas. A través de la monitorización de seguridad automatizada y continua, los problemas pueden marcarse para los esfuerzos de corrección, de modo que puedan realizarse reparaciones antes de que se produzcan nuevas ramificaciones. El pipeline puede reforzarse aún más mediante la implementación de shift-left, un enfoque que integra las medidas de seguridad en una fase anterior del 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.
  • Cadenas de suministro: las cadenas de suministro representan otro ejemplo de una tecnología relacionada que se ha entrelazado a fondo con los elementos de seguridad de los contenedores. Los equipos de seguridad que trabajan para reforzar la seguridad de los contenedores de la cadena de suministro participan en el escaneo regular de las imágenes de los contenedores y los componentes relacionados. Esto ayuda a gestionar las nuevas ciberamenazas y las vulnerabilidades conocidas.

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. Todos los diversos requisitos que se aplican al proyecto deben recopilarse, analizarse y gestionarse.

Diseño

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 plan 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 los contenedores ha coincidido con la adopción igualmente amplia del cloud computing. Los contenedores se utilizan ahora en la nube en gran número para crear aplicaciones nativas de la nube. La responsabilidad de proteger los activos basados en la nube recae en los proveedores de servicios cloud, como IBM® Cloud, Google Cloud, Microsoft Azure y Amazon Web Services (AWS). Establecer la seguridad en la nube implica promulgar medidas de seguridad que fomenten la protección de los datos, la seguridad de la infraestructura y la gestión de identidades. Las cargas de trabajo trasladadas a la nube tienen los mismos problemas de seguridad básicos; los repositorios de imágenes siguen necesitando un escaneado de rutina para garantizar su viabilidad, incluso si se almacenan en entornos de nube. Lo ideal es que la implementación de la nube comience durante la fase de diseño del SDLC, ya que afecta significativamente a la planificación de la arquitectura y los recursos, y ambos deben abordarse antes de que comience el desarrollo.
  • Linux: Linux es una parte fundamental de la seguridad de los contenedores. La plataforma de código abierto proporciona los componentes básicos utilizados en la seguridad de los contenedores y las características de seguridad necesarias, como los firewalls. 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 los recursos, manteniendo al mismo tiempo un funcionamiento coherente. Los contenedores de Linux aprovechan al máximo las capacidades del kernel de Linux mediante el uso de varios métodos para restringir y aislar las cargas de trabajo en contenedores. Linux es donde se finalizan los detalles clave del programa y comienza la codificació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 utilizan 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 defensivas, además de dar a los contenedores de microservicio una escalabilidad adicional. Al igual que con otras buenas prácticas de seguridad de contenedores, los microservicios emplean el principio de privilegio mínimo, por el cual un contenedor solo recibe 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 recursos o afectar a otros contenedores. En condiciones óptimas, los microservicios deben utilizarse durante la fase de diseño, ya que es ahí donde las aplicaciones monolíticas se dividen en microservicios más pequeños que luego pueden implementar de forma independiente. Sin embargo, en algunas circunstancias, los microservicios también se pueden utilizar durante la etapa de implementación.
  • Máquinas virtuales: las máquinas virtuales (VM) pueden proporcionar seguridad adicional a los contenedores porque 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 ponerse en contacto con un sistema host para obtener recursos. Las máquinas virtuales también exhiben un límite de seguridad más fuerte que el que pueden lograr los contenedores por sí solos, lo que ayuda a reducir la posibilidad de que una violación de seguridad se extienda por todo el sistema de archivos y afecte negativamente a los flujos de trabajo que se procesan. El uso de máquinas virtuales debe ocurrir en la etapa de diseño porque es donde se teorizan y planifican la arquitectura y la estructura de un sistema.  

Desarrollo

Con todo el trabajo de “preparación” realizado, finalmente llega el momento de construir el software utilizando las especificaciones de diseño proporcionadas por el diseñador del 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 se utiliza normalmente durante la fase de diseño, también se usa durante el desarrollo, porque es entonces cuando se eligen la arquitectura y la plataforma del software y donde comienza el proceso de codificación del software.

Pruebas

La creación de un sistema de pruebas adecuado garantiza que el código creado funcione como se espera y permanezca libre de errores. Es importante automatizar las políticas que marcan las compilaciones con problemas de seguridad, especialmente a medida que se descubren nuevas vulnerabilidades. Parchar contenedores no es tan eficaz como reconstruirlos, por lo que las pruebas de seguridad deben incluir políticas que activen reconstrucciones automatizadas. La etapa de prueba puede incluir pruebas de integración, pruebas unitarias y pruebas del sistema.

Implementación

Suponiendo que se hayan completado todos los pasos anteriores, es hora de publicar el software y ponerlo a disposición de los usuarios. La implementación cubre todas las tareas relacionadas necesarias para preparar el producto 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 proporcionarle una plataforma automatizada y de código abierto para proteger las aplicaciones en contenedores. Los entornos de Kubernetes ofrecen características de seguridad como el control de acceso basado en roles (RBAC), políticas de red que rigen 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 una monitorización periódica en 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 puede emplearse durante cualquier parte del proceso del software, el uso principal reconocido de Kubernetes es la gestión de la implementación y el escalado de aplicaciones en contenedores.

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

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 del rendimiento.

Buenas prácticas de seguridad de contenedores

Hay varios pasos rutinarios que las organizaciones pueden tomar para ayudar a subrayar la efectividad 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. Por ejemplo, conceda privilegios a los contenedores con moderación, basándose en el principio de privilegio mínimo, otorgando a los contenedores solo los permisos que necesitan para operar. Del mismo modo, limite los controles de acceso para que solo los usuarios autorizados puedan acceder a las imágenes de los registros de contenedores y manipularlas. Siga las reglas de control de acceso basado en roles (RBAC) para garantizar una autenticación de usuario adecuada y evitar el acceso no autorizado. Por último, asegúrese de que las imágenes base de los contenedores procedan únicamente de fuentes aprobadas. Compruebe las imágenes base antes de la implementación para verificar que se hayan examinado correctamente y que procedan de fuentes oficialmente reconocidas.

Minimizar la exposición

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

Realizar escaneos rutinarios de vulnerabilidades

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

Mantenerse a la defensiva

Las vulnerabilidades pueden surgir en cualquier momento, por lo que es una buena práctica mantenerse alerta realizando regularmente una monitorización del tiempo de ejecución y salvaguardando la seguridad del tiempo de ejecución. Mantenerse alerta también ante posibles problemas de seguridad de la red. El trabajo en equipo refuerza la seguridad: todos los miembros de la empresa deben contribuir y centrarse en la causa, cada vez más importante, de la seguridad de los contenedores.

Soluciones relacionadas
IBM Red Hat OpenShift

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

Descubra 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 e implementación rápida.

Explore los contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.

Servicio 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 distintos entornos con flexibilidad, seguridad y eficiencia mediante la plataforma integral de contenedores de IBM.

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