Los contenedores de Software hoy son más que conocidos y necesarios dentro del mundo de la tecnología, ya que permiten correr una aplicación o servicio de manera contenida, paquetizada y aislada, utilizando los servicios del sistema operativo del host en el que está corriendo. Estas son ventajas sobre las conocidas VM (de las siglas en ingles Virtual Machine), ya que estas sí necesitan simular un hardware que levanta los servicios del sistema operativo, convirtiéndolas en una opción menos ágil y liviana que los contenedores.
Si bien las ventajas y beneficios del uso de esta tecnología están más que claras, un punto fundamental a considerar es que tenemos y debemos garantizar un nivel de seguridad sobre los contenedores de software de los diferentes vendors que existen hoy en el mercado. Para esto, como responsables del área de seguridad, debemos analizar y contemplar los siguientes factores para así poder tener una estrategia sólida de contenedores:
Análisis de las capas de la arquitectura: para asegurar los contenedores debemos pensar en la forma en la que se asegura cualquier proceso de ejecución. Es decir, debemos considerar la seguridad en todas las capas de la arquitectura de los contenedores. Dependiendo si la arquitectura pertenece a un vendor o es de la comunidad abierta, estas capas pueden encontrarse más segmentadas o más aglomeradas. Como ejemplo, las capas a proteger serian:
1. Arquitectura del host de contenedor
2. Contenido
3. Registros
4. Diseño
5. Implementación
6. Orquestación
7. Aislamiento de redes
8. Almacenamiento
9. Gestión de interfaz de programación de aplicaciones
10. Clústeres federados
Visibilidad de las imágenes de los contenedores: un punto fundamental de la seguridad en los contenedores es poder tener la capacidad de visibilizar de extremo a extremo las imágenes de los contenedores y poder detectar cualquier tipo de amenaza durante el análisis. Una imagen de contenedor de software es un paquete de software ligero, independiente y ejecutable que tiene todos los procesos necesarios para ejecutar una aplicación.
Visibilidad de las aplicaciones: dentro de cada contenedor corre una aplicación y es importante conocer y analizar los procesos de dicha aplicación en la búsqueda de anomalías, entendiendo de dónde proviene y cómo fue diseñada para evitar que pueda comprometer la infraestructura sobre la cual se monta.
Detección de vulnerabilidades: al escanear las imágenes de los contenedores es una buena práctica contar con una herramienta que pueda analizar cualquier tipo de vulnerabilidad para luego poder correr los procesos de corrección.
Detección de malware y amenazas: como en el resto de las tecnologías, es sumamente importante la creación de políticas que permitan la detección de malware y amenazas. Una de las técnicas conocidas para identificar amenazas utilizadas en los contenedores de Software es el DPI:
Deep Packet Inspection (DPI) o Inspección a fondo de los paquetes, es el acto de inspección realizado por cualquier equipo de red de paquetes que no sea punto final de comunicación, utilizando con algún propósito el contenido (normalmente la parte útil) que no sea el encabezamiento del paquete.
Evaluación continua: proteger a los contenedores de amenazas recientemente identificadas por medio del monitoreo de bases de datos de amenazas. Las imágenes de contenedores deben estar constantemente examinadas de modo que se pueda actuar rápidamente ante riesgos emergentes
Detección de amenazas de día Cero: el escaneo constante de las imágenes le permitirá proteger a los contenedores de amenazas de día cero.
Configurar accesos basados en roles: para optimizar la seguridad se debería tener una herramienta de monitoreo y seguridad que le permita crear usuarios y grupos autorizados de acuerdo a un acceso basado en roles.
La utilización de contenedores forma parte actualmente de las opciones para montar soluciones y aplicaciones tanto en infraestructura de clientes, como en nube. Por lo tanto, debemos considerar las medidas de seguridad necesarias, mencionadas anteriormente, para dotar a esta solución de ambientes y entornos seguros que protejan a los usuarios en la utilización e integridad de sus datos, operaciones, transacciones, accesos e información.