Buscar malas configuraciones en tus Dockerfile con Trivy

Cuando trabajas con contenedores debes de ser especialmente cuidadoso con las imágenes que eliges como base, como ayer que te conté conté cómo detectar vulnerabilidades con Snyk. Además deberías asegurarte de que las configuraciones que estás aplicando al generar tus Dockerfile son lo más seguras posible. Hoy quiero hablarte de otra herramienta en esta línea llamada Trivy.

Instalación

Lo primero que debes hacer para probar esta herramienta es instalarla. En este enlace tienes los pasos para diferentes sistemas operativos. En mi caso voy a hacer uso de Homebrew para instalar la herramienta en mi Mac:

brew install aquasecurity/trivy/trivy

Detectar vulnerabilidades con Trivy

Al igual que Snyk, puedes escanear vulnerabilidades en las imágenes. Para ello puedes utilizar el mismo Dockerfile, y así comparar resultados:

FROM python:3.4-alpine

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

Lo primero que debemos hacer es generar la imagen:

docker build -t 0gis0/python-app .

Y a partir de ahí ya podemos lanzar la herramienta de la siguiente manera:

trivy image 0gis0/python-app

El resultado sería el siguiente:

Resultado del escaneo en busca de vulnerabilidades

En este caso lo muestra en un formato tabla y no te hace recomendaciones de qué imágenes puedes usar, si la tuya no es la mejor opción.

Si cambio la imagen base a la última recomendada por Snyk:

FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

Verás que las vulnerabilidades se reducen.

Buscar configuraciones no apropiadas en tu Dockerfile

La parte que más me ha molado de esta herramienta es la capacidad que tiene de buscar «malas configuraciones» en tus Dockerfile. Utilizando el mismo ejemplo que en el apartado anterior, si lanzamos el siguiente comando, en el directorio donde tienes tu Dockerfile:

trivy config .

Obtendrás el siguiente resumen:

Buscar configuraciones no apropiadas en tu Dockerfile

¡Saludos!

logo lemoncode

 

 

Bootcamp DevOps

Si tienes ganas de meterte en el área de DevOps, formo parte del
equipo de docentes del Bootcamp DevOps Lemoncode, ¿Te animas a
aprender con nosotros?

Más Info