David Guzman
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/666.png)
Trivy es una herramienta para encontrar vulnerabilidades en aplicaciones. Escanea imágenes de contenedores, código fuente y configuraciones para detectar problemas de seguridad. Es fácil de usar, no requiere configuración complicada y es ideal para integrar en procesos de desarrollo y despliegue.
Crear repositorio en Azure repos y subir cambios
Descargar proyecto comms
1. Ingresar al proyecto donde se va a crear el repositorio, en este caso a prueba java.
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-1024x392.png)
2.seleccionar el menú repos
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-2.png)
3.Seleccionar new repository
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-3.png)
4.Ingresar el nombre del repositorio en este caso comms y seleccionar el lenguaje que en este caso es Java
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-4.png)
5. Clonar el repositorio, subir los cambios con los comandos git:
5.1 git add .
5.2 git commit -m “feat: primer comit”
5.3 git push
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-5-1024x548.png)
Crear Pipeline
1.Seleccionar el menú Pipeline
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-7.png)
2.Click New pipeline
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-6-1024x102.png)
3.Click en Azure repos git
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-8.png)
4.Seleccionar el repositorio, en este caso comms
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-9.png)
5.Para este caso seleccionamos Maven ya que el proyecto es un proyecto que compila con Maven
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-11.png)
6.Modificar el pipeline, agregar la etapa de análisis con trivy
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-10-1024x556.png)
Instalar Trivy
yamlCopiar- script: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
displayName: 'Instalar Trivy'
- Se descarga el script de instalación desde el repositorio oficial de Trivy.
- Se ejecuta el script, instalando
trivy
en/usr/local/bin
, para que esté disponible globalmente.
Compilar el Proyecto Maven
yamlCopiar- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'package'
- Usa Maven para compilar el proyecto definido en
pom.xml
. - Asigna 3GB de RAM (
-Xmx3072m
) para evitar problemas de memoria en la compilación. - Usa Java 11 como versión del JDK (
jdkVersionOption: '1.11'
). - Ejecuta pruebas unitarias con JUnit, y publica los resultados si están en
**/surefire-reports/TEST-*.xml
. - El objetivo (
goals
) espackage
, lo que generará un archivo JAR o WAR entarget/
.
Escanear el Proyecto con Trivy
yamlCopiar- script: |
trivy fs --severity HIGH,CRITICAL . --format json -o trivy-results.json
if grep -q '"Severity": "CRITICAL"' trivy-results.json; then
echo "Vulnerabilidades críticas encontradas"
exit 1
fi
displayName: 'Escanear Sistema de Archivos con Trivy y Fallar si hay Vulnerabilidades Críticas'
- Escanea el sistema de archivos con Trivy (
trivy fs
), buscando vulnerabilidades de alta y crítica gravedad en archivos y dependencias. - Guarda los resultados en formato JSON en
trivy-results.json
. - Si encuentra vulnerabilidades críticas, falla el pipeline (
exit 1
).
Esto significa que si hay una vulnerabilidad CRÍTICA, el pipeline se detiene y marca la ejecución como fallida.
Publicar los Resultados del Escaneo
yamlCopiar- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: 'trivy-results.json'
ArtifactName: 'TrivyResults'
publishLocation: 'Container'
- Publica el archivo
trivy-results.json
como un artefacto del pipeline bajo el nombreTrivyResults
. - Esto permite que otros pasos o usuarios puedan descargar y revisar el informe de vulnerabilidades.
7.Ejecucion del pipeline
![](https://blog-davidguzman.com.co/wp-content/uploads/2025/02/image-12.png)