Saltar al contenido

Trivy: Logra escanear imágenes locales de Docker con éxito

Escanear imágenes de Docker o, para ser más honestos, escanear tus imágenes de contenedores se está convirtiendo en una de las tareas cotidianas a realizar como parte del desarrollo de tu aplicación. El cambio de ritmo de cuán fácilmente surgen las nuevas vulnerabilidades, la explosión de dependencias que tiene cada una de las imágenes de contenedores y la cantidad de implementaciones por empresa hacen que sea bastante complejo mantener el ritmo para asegurar que puedan mitigar los problemas de seguridad.

Ya cubrimos este tema hace algún tiempo cuando la herramienta Docker Desktop introdujo la opción de escaneo basada en una integración con Synk y, más recientemente, con el último lanzamiento de Lens. Esta es una de las opciones para verificar las imágenes de contenedores de la versión “corporativa” de la herramienta. Y desde hace algún tiempo también, los registros centrales de la Nube han proporcionado tal como un ECR, incluyendo la opción de Escaneo como una de las capacidades para cualquier imagen implementada allí.

Pero, ¿qué pasa si ya te estás moviendo de Docker Desktop a otra opción, como podman o Rancher Desktop? ¿Cómo puedes escanear tus imágenes de docker?

Varios escáneres pueden usarse para escanear tus imágenes de contenedores localmente, y algunos de ellos son más fáciles de configurar que otros. Uno de los más conocidos es Clair, que también se está utilizando como parte del registro RedHat Quay y tiene mucha tracción. Funciona en un modo cliente-servidor que es excelente para ser utilizado por diferentes equipos que requieren una implementación más “empresarial”, generalmente estrechamente relacionada con un Registro. Sin embargo, no se adapta bien para ejecutarse localmente ya que requiere varios componentes y relaciones.

Como una opción fácil para probar localmente, tienes Trivy. Trivy es una herramienta interesante desarrollada por AquaSecurity. Puede que recuerdes la empresa ya que es la que está detrás de otros desarrollos relacionados con la seguridad en Kubernetes, como KubeBench, que ya cubrimos en el pasado.

En sus propias palabras, “Trivy es un escáner de seguridad integral. Es confiable, rápido y sencillo de usar y funciona donde lo necesites.”

¿Cómo instalar Trivy?

El proceso de instalación es relativamente fácil y está documentado para cada plataforma importante aquí. Sin embargo, al final, se basa en paquetes binarios disponibles como RPM, DEB, Brew, MacPorts, o incluso una imagen de Docker.

¿Cómo escanear imágenes de Docker con Trivy?

Una vez instalado, puedes simplemente ejecutar los comandos como este:

 trivy image python:3.4-alpine

Esto realizará las siguientes tareas:

  • Actualizar la base de datos del repositorio con todas las vulnerabilidades
  • Descargar la imagen en caso de que no esté disponible localmente
  • Detectar los lenguajes y componentes presentes en esa imagen
  • Validar las imágenes y generar un resultado

¿Qué salida proporciona Trivy?

Como ejemplo, esta es la salida para el python:3.4-alpine a partir de hoy:

Escanear imágenes de Docker con Trivy

Obtendrás una tabla con una fila por cada biblioteca o componente que haya detectado una vulnerabilidad mostrando el nombre de la Biblioteca y la exposición relacionada con ella con el código CVE. El código CVE es generalmente cómo se refieren a las vulnerabilidades ya que están presentes en un repositorio común con todas sus descripciones y detalles. Además de eso, muestra la severidad de la vulnerabilidad basada en el informe existente. También proporciona la versión actual detectada en la imagen y en caso de que haya una versión diferente que haya solucionado esa vulnerabilidad, la versión inicial que ha resuelto esa vulnerabilidad, y finalmente, un título para proporcionar un poco más de contexto sobre la vulnerabilidad:

Si una Biblioteca está relacionada con más de una vulnerabilidad, dividirá las celdas en esa fila para acceder a los diferentes datos para cada vulnerabilidad.

Etiquetas:

Trivy: Get To Scan Docker Local Images with Success

Scan Docker images or, to be more honest, scan your container images is becoming one of the everyday tasks to be done as part of the development of your application. The change of pace of how easily the new vulnerabilities arise, the explosion of dependencies that each of the container images has, and the number of deployments per company make it quite complex to keep the pace to ensure that they can mitigate the security issues.

We already covered this topic some time ago when the Docker Desktop tool introduced the scan option based on an integration with Synk and, more recently, with the latest release of Lens. This is one of the options to check the container images of the “corporate” version of the tool. And since some time also, the central registries from the Cloud have Provided such an ECR, including the Scanning option as one of the capabilities for any image deployed there.

But what happens if you are already moving from Docker Desktop to another option, such as podman or Rancher Desktop? How can you scan your docker images?

Several scanners can be used to scan your container images locally, and some of them are easier than others to set up. One of the main knowns is Clair which is also being used as part of the RedHat Quay registry and has a lot of traction. It works on a client-server mode that is great to be used by different teams that require a more “enterprise” deployment, usually closely related to a Registry. Still, it doesn’t play well to be run locally as it requires several components and relationships.

As an easy option to try locally, you have Trivy. Trivy is an exciting tool developed by AquaSecurity. You may remember the company as this is the one that is behind other developments related to security in Kubernetes, such as KubeBench, that we already covered in the past.

In its own words, “Trivy is a comprehensive security scanner. It is reliable, fast, and straightforward to use and works wherever you need it.”

How to Install Trivy?

The installation process is relatively easy, and documented for every significant platform here. Still, in the end, it relies on binary packages available such as RPM, DEB, Brew, MacPorts, or even a Docker image.

How To Scan Docker Images With Trivy ?

Once it is installed, you can just run the commands such as this:

 trivy image python:3.4-alpine

This will do the following tasks:

  • Update the repository DB with all the vulnerabilities
  • Pull the image in case this is not available locally
  • Detect the languages and components present in that image
  • Validate the images and generate an output

What Output Is Provided By Trivy?

As a sample, this is the output for the python:3.4-alpine as of Today:

Scan Docker Images With Trivy

You will get a table with one row per library or component that has detected a vulnerability showing the Library name and the exposure related to it with the CVE code. CVE code is usually how vulnerabilities are referred to as they are present in a common repository with all their descriptions and details of them. In addition to that, it shows the severity of the vulnerability based on the existing report. It also provides the current version detected on the image and in case there is a different version that fixed that vulnerability, the initial version that has solved that vulnerability, and finally, a title to provide a little bit more context about the vulnerability:

If a Library is related to more than one vulnerability, it will split the cells on that row to access the different data for each vulnerability.

Etiquetas:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *