Cómo garantizar la seguridad de los contenedores

  • Actualidad

La tecnología de contenedores aumenta la rapidez y la eficiencia del proceso de desarrollo de aplicaciones pero hay una serie de amenazas que pueden poner en riesgo la seguridad de las organizaciones. Encontramos en un informe técnico de Trend Micro cómo evitarlos

La creación de aplicaciones en contenedores permite a los desarrolladores ejecutar apps sin problemas en cualquier hardware, infraestructura o entorno cloud pero, para que todo sea perfecto, tienen que estar debidamente asegurados.

Para minimizar los riesgos al construir en contenedores, Trend Micro ha reunido una serie d recomendaciones para los desarrolladores en un informe técnico titulado “Seis pasos para la seguridad integral de los contenedores”:

1. Asegurar el host del contenedor
Los contenedores deben estar alojados en un sistema operativo centrado en contenedores. La superficie de ataque general se reducirá si se eliminan los servicios que no son necesarios para alojar sus cargas de trabajo de contenedor.

- Se deben agregar herramientas de monitorización para proporcionar visibilidad sobre la salud de los hosts.

- Para proteger los sistemas host de los contenedores, se debe utilizar un conjunto sólido de controles de seguridad, como los disponibles en la solución Trend Micro Deep Security. La integridad de estos sistemas, que se encargan de todas las cargas de trabajo de los contenedores, estará garantizada si están debidamente protegidos. 

2. Blindar el entorno de red
- La recomendación es aprovechar los controles como un sistema de prevención de intrusiones (IPS) y el filtrado web para el tráfico que se desplaza de norte a sur, y de ida y vuelta a Internet, con el fin de detener los ataques y filtrar el contenido malicioso.

- Para monitorizar el tráfico entre contenedores, también debe desplegarse un IPS. La monitorización del tráfico interno es fundamental para su defensa, pues los atacantes que ya se han afianzado en una red pueden desplazarse rápidamente de forma lateral para ampliar su alcance.

3. Proteger el stack de gestión
- El registro de contenedores debe estar debidamente protegido y monitorizado.

- La instalación de Kubernetes debe ser bloqueada. Además, se deben aprovechar las funciones como Pod y las políticas de red para hacer cumplir los estándares de seguridad y desarrollo de la organización.

- Se deben utilizar herramientas de seguridad para escanear y validar la configuración de cada contenedor a medida que se añade al registro de contenedores. Esto garantiza que solo se desplieguen contenedores que cumplan con los estándares de desarrollo y seguridad del equipo. En este apartado cita como ejemplo su solución Deep Security Smart Check.

4.  Construir sobre una base segura
- Se deben revisar y observar las comunicaciones de los equipos de proyecto sobre las dependencias utilizadas en las aplicaciones. Cuando una pieza de software es parcheada, esos cambios necesitan ser integrados en la aplicación para reducir los riesgos.

- Es conveniente también asegurarse de que los contenedores estén libres de malware o vulnerabilidades conocidas y no tengan secretos expuestos utilizando un escáner de imágenes de contenedores. Esto también permitirá buscar indicadores de compromiso personalizados (IoCs). Mediante el uso de un escáner de imágenes de contenedor, se pueden mitigar los riesgos antes de un desarrollo mayor o del despliegue en producción.

5. Proteger el ciclo de construcción
- Las estaciones de trabajo de los desarrolladores deben instalarse con controles de endpoints potentes porque ayuda a prevenir el malware, las visitas a sitios web maliciosos y otros problemas de seguridad y amenazas en los contenedores. En este punto cita su solución Apex One

- Se debe implementar un esquema de control de acceso que sea exhaustivo y consistente. Un paso crítico para salvaguardar la integridad del pipeline es garantizar de que solo los usuarios autorizados puedan acceder a los repositorios de código, integrar sucursales y lanzar compilaciones que se envían a producción.

- Los servidores que ejecutan dichas herramientas también deben estar protegidos. El uso de soluciones de seguridad puede proporcionar un conjunto de controles sólidos con un mínimo de sobrecarga, lo que ayuda a su equipo a cumplir los objetivos y estándares de seguridad.

6. Asegurar su aplicación
- El código debe seguir las mejores prácticas para mejorar su calidad. Después de todo, simples errores o malas elecciones de diseño pueden provocar muchas vulnerabilidades de seguridad. Invertir tiempo y esfuerzo en asegurar la calidad del código siempre se traduce en dividendos de seguridad.

- Los controles de autoprotección en tiempo de ejecución deben utilizarse para ayudar a conectar los puntos entre las vulnerabilidades de seguridad y los problemas en líneas de código específicas. Esto cierra la brecha durante el análisis de la causa raíz y permite lograr mejores resultados de seguridad.