Guía para la seguridad de los contenedores: todo lo que necesita saber
Ah, las maravillas de la tecnología. En la era de la información rica en innovación, somos los beneficiarios de una ola continua de nuevos avances, cada uno de los cuales ofrece la capacidad de ejecutar tareas vitales de manera más rápida y eficiente que nunca.
Sin embargo, junto con cada avance surgen posibles vulnerabilidades de seguridad.
Tal es el caso de la contenerización. Aunque sus raíces se remontan a cuatro décadas, el rápido aumento en el uso de la tecnología de contenedores en la actualidad está revolucionando la computación en la nube, específicamente con respecto a la forma en que las empresas desarrollan e implementan aplicaciones y servicios. Estimaciones recientes indican que más de la mitad de las empresas de Fortune 100 han adoptado el uso de contenedores y los números parecen estar creciendo rápidamente.
La lista de beneficios es demasiado impresionante para ignorarla. Según un informe de IBM (“Los beneficios de la contenedorización y lo que significa para usted”), éstos incluyen:
- Portabilidad entre diferentes plataformas y nubes
- Eficiencia mediante el uso de muchos menos recursos que las máquinas virtuales y la entrega de una mayor utilización de los recursos informáticos
- Agilidad que permite a los desarrolladores integrarse con su entorno DevOps existente
- Mayor velocidad en la entrega de mejoras
- Inicio más rápido de la aplicación y escalado más fácil
- Gestión más fácil
- Seguridad mejorada al aislar las aplicaciones del sistema host y entre sí
Notará que una de las viñetas es «seguridad mejorada». Sin embargo, el uso de contenedores también introduce posibles vulnerabilidades de seguridad que los usuarios deben abordar. Los exploraremos en detalle, pero primero un breve resumen de lo que se trata la tecnología de contenedores.
¿Qué son los contenedores?
“Todo en Google funciona con contenedores”, según un informe en el sitio web de la empresa. “La contenedorización permite que nuestros equipos de desarrollo se muevan rápido, implementen software de manera eficiente y operen a una escala sin precedentes”. Google informa que inicia más de dos mil millones de contenedores, cada semana.
Pero, ¿qué son? Aquí hay varias definiciones.
Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de manera rápida y confiable de un entorno informático a otro. Una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones.
— Estibador un jugador importante en la tecnología de contenedores
Los contenedores son componentes de software livianos que agrupan la aplicación, sus dependencias y su configuración en una sola imagen, que se ejecuta en entornos de usuario aislados en un sistema operativo tradicional en un servidor tradicional o en un entorno virtualizado.
— IBM Rajeev Gandhi y Peter Szmrecsanyi
Los contenedores son una solución al problema de cómo hacer que el software se ejecute de manera confiable cuando se mueve de un entorno informático a otro. Esto podría ser desde la computadora portátil de un desarrollador a un entorno de prueba, desde un entorno de prueba a producción, y quizás desde una máquina física en un centro de datos a una máquina virtual en una nube privada o pública.
— CIO.com “¿Qué son los contenedores y por qué los necesita?”
Los contenedores ofrecen un mecanismo de empaquetado lógico en el que las aplicaciones pueden abstraerse del entorno en el que realmente se ejecutan. Este desacoplamiento permite que las aplicaciones basadas en contenedores se implementen de manera fácil y consistente, independientemente de si el entorno de destino es un centro de datos privado, la nube pública o incluso la computadora portátil personal de un desarrollador.
— Google “Contenedores 101”
Una mirada más cercana a la seguridad de los contenedores
A medida que la adopción de contenedores continúa creciendo, un fuerte enfoque en la seguridad es una necesidad absoluta. En 2018, alrededor del 60 % de las organizaciones que utilizan contenedores sufrieron un incidente de seguridad relacionado con los contenedores, según una encuesta.
Junto con este hallazgo de los encuestados que representan a cientos de organizaciones que actualmente tienen contenedores en producción, surgieron varias estadísticas preocupantes adicionales:
- El 47% dijo que desplegó contenedores que se sabe que tienen vulnerabilidades, y
- El 46% admitió que desplegó contenedores sin saber si tenían o no vulnerabilidades.
En general, el 94% de los encuestados dijeron que tenían preocupaciones sobre la seguridad de los contenedores, y el 71% predijo que los incidentes de seguridad de los contenedores continuarían aumentando.
“Al igual que con todo el software, las aplicaciones en contenedores pueden ser víctimas de vulnerabilidades de seguridad de varios tipos, incluidos errores, autenticación y autorización inadecuadas y configuración incorrecta”, según TechBeacon.com. “Además, las aplicaciones en contenedores tienden a ser complejas y comprenden muchos componentes discretos que se comunican entre sí a través de una red. Como resultado, la superficie de ataque total del entorno puede ser grande, con posibles puntos problemáticos en múltiples capas de la arquitectura”.
El aumento de la popularidad de los contenedores ha desafiado a los administradores de seguridad a encontrar la mejor manera de proteger el ecosistema de contenedores, incluida toda la pila de contenedores, el ciclo de vida y la canalización.
«Introducir una buena higiene de seguridad en el ecosistema de contenedores no es una tarea sencilla», que compiló un análisis exhaustivo de las mejores prácticas de seguridad de contenedores titulado «Asegurar toda la pila, el ciclo de vida y la canalización de contenedores».
Para ayudar a defenderse contra posibles vulnerabilidades de seguridad de contenedores, el Instituto Nacional de Estándares y Tecnología (NIST) del Departamento de Comercio de EE. UU. ha elaborado un conjunto detallado de recomendaciones.
“La seguridad de los contenedores difiere de los métodos de seguridad tradicionales debido a la mayor complejidad y dinamismo del entorno de los contenedores. En pocas palabras, hay muchas más piezas en movimiento. La seguridad de los contenedores comprende todo, desde las aplicaciones que contienen hasta la infraestructura en la que se ejecutan”, según el innovador de la plataforma DevOps. GitLab que resume los puntos clave de NIST Guía de seguridad del contenedor de aplicaciones como sigue:
- Reconsidere la cultura operativa y los procesos técnicos de su organización para respaldar la nueva forma de desarrollar, ejecutar y respaldar aplicaciones que los contenedores hacen posible. La adopción de contenedores puede ser disruptiva para su cultura y metodologías de desarrollo existentes, y sus prácticas actuales pueden no ser directamente aplicables en un entorno en contenedores. Anime, eduque y capacite a su equipo para repensar cómo codifican y operan.
- Utilice sistemas operativos de host específicos del contenedor en lugar de los de uso general para reducir las superficies de ataque. Un sistema operativo host específico de contenedor es un sistema operativo minimalista diseñado para ejecutar solo contenedores. El uso de estos sistemas operativos reduce en gran medida las superficies de ataque.
- Solo agrupe contenedores con el mismo propósito, sensibilidad y postura de amenaza en un solo kernel de sistema operativo host para permitir una defensa adicional en profundidad. La segmentación de contenedores proporciona una defensa adicional en profundidad. Agrupar contenedores de esta manera hace que sea más difícil para un atacante expandir posibles compromisos a otros grupos. También aumenta la probabilidad de que se detecten y contengan los compromisos.
- Adopte herramientas y procesos de gestión de vulnerabilidades específicos del contenedor para imágenes para evitar compromisos. Las herramientas tradicionales hacen muchas suposiciones que no están alineadas con un modelo en contenedores y, a menudo, no pueden detectar vulnerabilidades dentro de los contenedores. Adopte herramientas y procesos para validar y hacer cumplir el cumplimiento de las mejores prácticas de configuración segura para imágenes, incluidos los informes centralizados, el monitoreo de cada imagen y la prevención de la ejecución de imágenes no conformes.
- Considere el uso de contramedidas basadas en hardware para proporcionar una base para la computación confiable. Extienda las prácticas de seguridad a todos los niveles de la tecnología de contenedores al basar la seguridad en una raíz de confianza de hardware, como el Modelo de plataforma de confianza (TPM).
- Utilice herramientas de defensa en tiempo de ejecución con reconocimiento de contenedores. Implemente y use una solución de seguridad de contenedores dedicada capaz de monitorear el entorno del contenedor y proporcionar una detección precisa de actividad anómala y maliciosa dentro de él. La forma más eficiente de garantizar la seguridad a escala es integrar funciones y procedimientos de seguridad en cada fase de desarrollo e implementación.
Seguridad del contenedor [Additional Resources]
Aquí hay un resumen de recursos adicionales de sitios web de la industria, agencias públicas y proveedores de soluciones de seguridad de contenedores:
- Instituto Nacional de Estándares y Tecnología — Guía de seguridad del contenedor de aplicaciones
- Baliza tecnológica — “Seguridad de contenedores: lo que necesita saber sobre el NIST Estándares”
- StackRox – Docker Container Security 101: riesgos y 33 mejores prácticas
- Sombrero rojo – “¿Qué es la seguridad de los contenedores?”
- Empresa de Hewlett Packard — “5 formas de proteger sus contenedores”
“Introducir una buena higiene de seguridad en el ecosistema de contenedores no es una tarea sencilla”,. Para ayudar, han compilado varios recursos útiles sobre la seguridad de los contenedores, que incluyen:
- Informe sobre el estado de la seguridad de los contenedores
- Protección de toda la pila de contenedores, el ciclo de vida y la canalización