Escaneando Contenedores con Trivy: Seguridad en tu Pipeline DevOps

La seguridad en entornos DevOps no es opcional. A medida que aumentan los despliegues en contenedores, escanear imágenes en busca de vulnerabilidades se vuelve una práctica esencial. En este artículo aprenderás a usar Trivy, una herramienta ligera, rápida y eficaz para escaneo de contenedores, archivos y configuraciones.


🛡️ ¿Qué es Trivy?

Trivy (de Aqua Security) es un escáner de seguridad todo en uno que detecta:

  • Vulnerabilidades en paquetes del sistema operativo (como APT o RPM)
  • Fallos en dependencias de aplicaciones (Java, Node.js, Python, etc.)
  • Secretos expuestos (API keys, tokens)
  • Problemas en configuraciones de IaC (Terraform, Dockerfile, Kubernetes YAML)

🚀 Instalación rápida de Trivy

En Linux/macOS (con Homebrew):

brew install aquasecurity/trivy/trivy

Con script automático:

curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin

Usando Docker:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image <imagen>

🐳 Escaneando Imágenes de Docker

Escaneo básico:

trivy image nginx:latest

Este comando analiza la imagen nginx:latest y reporta vulnerabilidades conocidas.

Escaneo con salida en formato JSON (ideal para pipelines):

trivy image --format json -o reporte.json nginx:latest

Ignorar vulnerabilidades específicas:

trivy image --ignore-unfixed nginx:latest

💡 Tip: Agrega Trivy a tu pipeline CI/CD para prevenir despliegues de imágenes vulnerables.


📦 Escaneo de Archivos y Repositorios

Trivy también analiza carpetas locales, ideal para detectar secretos y vulnerabilidades antes de hacer un build.

trivy fs .

Puedes integrarlo antes de construir tus imágenes para detectar problemas temprano.


📜 Escaneo de Configuraciones IaC

Trivy detecta malas prácticas y configuraciones inseguras en archivos como Dockerfile, docker-compose.yaml, o manifiestos de Kubernetes.

trivy config ./infra

💡 Tip: Ideal para validar antes de aplicar terraform apply o kubectl apply.


🔄 Integración en Pipelines CI/CD

Ejemplo en GitLab CI:

trivy_scan:
  image: aquasec/trivy
  script:
    - trivy image --exit-code 1 --severity CRITICAL,HIGH my-app:latest

Esto fallará el pipeline si se detectan vulnerabilidades críticas o altas.


🎯 Buenas prácticas al usar Trivy

  • Escanea siempre imágenes antes de subirlas a un registry.
  • Usa --exit-code para romper builds inseguros.
  • Combina Trivy con herramientas como Snyk o Grype si necesitas más profundidad.
  • Automatiza el escaneo diario de imágenes ya desplegadas.

✅ Conclusión

Trivy es una herramienta poderosa, ligera y sencilla de integrar en tus flujos DevOps. Te permite detectar problemas antes de que lleguen a producción, mejorando tu postura de seguridad sin añadir complejidad innecesaria.