Vulnerabilidades en Imágenes
Para entender necesitas saber qué son los CVEs.
Uno de los ejemplos más comunes de vulnerabilidad es la de buffer overflow. Imagina que tenemos un servidor Apache ejecutando en una versión que permite este exploit. Podemos enviar una solicitud específica para ese servidor y en vez de apenas servir el HTML puede ejecutar un script en el servidor.
Exploites un término usado en seguridad de la información para describir una técnica o un software diseñado para aprovechar una vulnerabilidad específica en un sistema, aplicación o red. El objetivo principal de un exploit es explotar esa vulnerabilidad para obtener acceso no autorizado, ejecutar código malicioso, o causar algún otro efecto perjudicial.
En el caso de Kubernetes los objetivos son:
- Aplicaciones en contenedores accesibles remotamente
- Aplicaciones locales dentro de los contenedores.
Las vulnerabilidades no son solamente de las aplicaciones que estamos interesados en ejecutar, son una herencia de la imagen base usada y todo lo que instalamos a partir de ella, incluyendo las bibliotecas. Por ejemplo si estamos ejecutando un contenedor con nuestra aplicación y estamos usando la imagen base de Ubuntu y esta tiene alguna vulnerabilidad, entonces vamos a heredarla.
Como resultado podemos tener vulnerabilidades de:
- Escalada de privilegios
- Fuga de información
- DDOS
- etcd
Necesitamos de una herramienta que pueda ayudar a escanear todos los binarios y sus dependencias en todas las capas del contenedor.
Podemos descubrir vulnerabilidades durante: el proceso de build de la imagen o verificando en tiempo de ejecución los contenedores ejecutando en los pods. Obviamente es mejor encontrar problemas antes del pod estar ejecutando en el clúster.

Dos herramientas open source muy utilizadas son Trivy y Clair. Haz un estudio principalmente sobre Trivy que es más fácil de usar.
Podemos utilizar el controlador de admisión junto con OPA o PSP para restringir repositorios/imágenes o hacer cambios en las peticiones. Si una imagen utiliza una capa anterior que está restringida no conseguirá ser ejecutada, ya que no será permitido el pull de esa capa. Si hacemos un cambio por ejemplo de ubuntu:20.04 para ubuntu:22.04 para corregir, podemos utilizar el mutation webhook para esto.
