Llegamos a ustedes gracias a:



Reportajes y análisis

Vulnerabilidad de los contenedores: Herramientas y prácticas recomendadas

[29/04/2022] Los contenedores se están convirtiendo rápidamente en la forma de facto de implementaciones de computación y carga de trabajo en el ecosistema nativo de la nube. La última encuesta de Cloud Native Computing Foundation (CNCF) muestra que el 96% de las organizaciones están utilizando contenedores y Kubernetes de forma activa o los están evaluando. Los contenedores tienen beneficios muy conocidos como la portabilidad, la consistencia y la eficiencia, pero no están exentos de problemas de seguridad.

La seguridad de los contenedores es una actividad compleja que, al igual que la ciberseguridad en general, requiere una combinación de personas, procesos y tecnología, siendo la primera la más crítica. Las organizaciones que buscan trasladarse al uso generalizado de contenedores deben mejorar la capacitación del personal existente, e incorporar a nuevas personas con los conjuntos de habilidades necesarios para garantizar un modelo operativo seguro nativo de la nube, del que los contenedores son un componente clave.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Si las actividades de los organismos gubernamentales y las autoridades técnicas son un indicio, cada vez es mayor la atención a la seguridad de la cadena de suministro de software, lo que requiere un nivel de rigor y madurez que muchas organizaciones aún no han alcanzado. Al implementar las prácticas y herramientas que se analizan a continuación, y al mismo tiempo mantenernos al tanto de las mejores prácticas y la orientación de la industria, podemos acercarnos colectivamente al estado final deseado del uso seguro de contenedores.

Los contenedores son una parte entrelazada de la seguridad en la nube

En primer lugar, es importante comprender la función y las interacciones de los contenedores en los entornos de nube. El ecosistema nativo de la nube suele tener las cuatro C de la seguridad en la nube: cloud, clústeres, contenedores y código. Cada capa se basa en la siguiente, y las inseguridades en cualquiera de ellas pueden afectar las capas que vienen, como las aplicaciones implementadas en contenedores inseguros. Las vulnerabilidades en la nube, los clústeres de Kubernetes o las mismas aplicaciones pueden causar sus propios problemas, pero están fuera del alcance aquí.

La seguridad de los contenedores no es una actividad trivial, particularmente debido a los estados en los que existen los contenedores, como una imagen o un contenedor en ejecución, junto con las capas y el código que se puede colocar dentro del contenedor. El documento técnico de CNCF Cloud-Native Security es un buen punto de partida para comprender mejor las aplicaciones y contenedores nativos de la nube y sus ciclos de vida.

Cuidado con los peligros de la portabilidad de contenedores

Si bien uno de los beneficios más notables de los contenedores es su portabilidad, esto puede ser tanto un vicio como una virtud. Si las vulnerabilidades se integran al contenedor y luego se distribuyen, básicamente se envían las vulnerabilidades a todos los que usan esa imagen y también se pone en riesgo cualquier entorno en el que se ejecute, dado que generalmente se ejecutan en arquitecturas de varios inquilinos. Esto significa que, debido a que la naturaleza portátil y distribuida de las imágenes de contenedores está ampliamente disponible y compartida, quedan al alcance de otras preocupaciones, como el código de fuente abierto y la infraestructura como código (IaC), que a su vez pueden traer sus propias vulnerabilidades.

Los contenedores suelen ser construidos por desarrolladores externos en lugar de equipos de TI tradicionales y luego se distribuyen a la empresa. Esto significa que cosas como las prácticas de codificación segura, y las mejores prácticas de seguridad de contenedores, son un excelente punto de partida, pero ¿qué significa esto último?

Escanee los contenedores en busca de vulnerabilidades antes de ponerlos en producción

Algunas de las prácticas fundamentales que han surgido incluyen acciones como escanear contenedores en sus canalizaciones de CI/CD para evitar que las vulnerabilidades lleguen a los entornos de producción en tiempo de ejecución. Existen opciones de código abierto como Anchore y Trivvy, y también opciones de líderes del sector como Snyk.

Escanee los contenedores durante las actividades de despliegue del pipeline como parte del impulso más amplio para trasladar la seguridad a etapas más tempranas del proceso. La detección de vulnerabilidades en los contenedores en el pipeline evita que estas se introduzcan en entornos de producción, y que sean potencialmente explotadas por actores malintencionados. Esto es más eficiente, reduce el riesgo y es más económico que reparar las vulnerabilidades en producción.

Dado que muchos contenedores son creados por desarrolladores que buscan implementar sus aplicaciones, estas herramientas también pueden ponerse a su disposición, para permitirles abordar los problemas en lugar de crear un ida y vuelta con un equipo de seguridad probablemente falto de personal y cargado de impuestos, lo que se convierte en un cuello de botella para la entrega de valor.

Sin embargo, escanear imágenes de contenedores en los pipelines no es la fórmula mágica. Las imágenes de contenedores suelen ser almacenadas en repositorios y existen en estado de ejecución una vez implementadas en producción. Es clave escanearlas en ambos entornos. Debido a que aparecen nuevas vulnerabilidades de manera regular, simplemente extraer una imagen previamente escaneada de un repositorio e implementarla sin un nuevo escaneo, puede pasar por alto nuevas vulnerabilidades que se han publicado desde el escaneo anterior.

El mismo concepto se aplica a las vulnerabilidades que se ejecutan en producción, junto con la realidad de que, debido a controles de acceso potencialmente deficientes, es posible que se hayan realizado cambios en el contenedor en un estado de ejecución. Se pueden identificar las vulnerabilidades en los contenedores en ejecución y las herramientas pueden notificar al personal apropiado para que responda en consecuencia para investigar y potencialmente intervenir.

Utilice la firma de imágenes de contenedores

Otra actividad clave cuando se trata de proteger las cargas de trabajo de los contenedores es la firma de imágenes. Todo el mundo está familiarizado con la tríada de ciberseguridad CIA: confidencialidad, integridad y disponibilidad. La firma de la imagen de contenedor es similar a garantizar la integridad de la imagen del contenedor. Da la seguridad de que la imagen del contenedor que está siendo utilizada no ha sido manipulada y se puede confiar en ella. Esto se puede hacer como parte de un flujo de trabajo DevOps, así como en un registro.

Hay varias opciones disponibles cuando se trata de la firma de imágenes de contenedores. Una de las opciones más destacadas es Cosign, que admite la firma, verificación y almacenamiento de imágenes. También es compatible con varias opciones, como hardware, servicios de administración de claves (KMS), infraestructura de clave pública (PKI) "bring-your-own" y más.

Las opciones de firma sin clave están comenzando a surgir y son defendidas por equipos innovadores como Chainguard. Esencialmente, la firma sin clave admite la capacidad de usar claves de corta duración que solo existen el tiempo suficiente para que ocurran las actividades de firma, y están vinculadas a las identidades.

Cree listas de materiales de software para imágenes de contenedores

Los contenedores no son inmunes a los problemas de la cadena de suministro de software, y las organizaciones ahora buscan usar herramientas que ayuden a generar listas de materiales de software (SBOM) para sus imágenes de contenedores. Un ejemplo notable es la herramienta Syft de Anchore. Syft le permite crear SBOMs para las imágenes de contenedores como parte de los flujos de trabajo CI/CD, y permite a las organizaciones tener un conocimiento mucho más profundo del software que se ejecuta en su ecosistema de contenedores y estar bien posicionadas para responder en caso de que se produzca otro escenario tipo Log4j.

Este nivel de visibilidad ha sido tradicionalmente difícil de alcanzar, pero las organizaciones se están enfocando más en la seguridad de la cadena de suministro de software, siguiendo las directrices de la Casa Blanca y las agencias federales asociadas, como Cybersecurity Executive Order (EO). El llamamiento a un mayor enfoque en las prácticas de desarrollo seguro es cada vez mayor, con organizaciones como NIST que publica un Marco de desarrollo de software seguro (SSDF) actualizado, que exige el uso de SBOMs en actividades como archivar y proteger versiones de software.

La necesidad de contar con SBOMs para las imágenes de contenedores es el impulso de las atestaciones, que están siendo defendidas por empresas como TestifySec y NIST en su Software Supply Chain Security Guidance. NIST pide que se certifique el SSDF, que exige el uso de SBOMs. También existen opciones innovadoras para reforzar el cumplimiento de los SBOMs, como Syft, que puede apoyar la atestación de SBOM utilizando la especificación in-toto. Este enfoque permite al firmante dar fe de que el SBOM es una representación precisa del contenido de las imágenes del contenedor.

Puede ver también: