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.