David Guzman
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.
2.seleccionar el menú repos
3.Seleccionar new repository
4.Ingresar el nombre del repositorio en este caso comms y seleccionar el lenguaje que en este caso es Java
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
Crear Pipeline
1.Seleccionar el menú Pipeline
2.Click New pipeline
3.Click en Azure repos git
4.Seleccionar el repositorio, en este caso comms
5.Para este caso seleccionamos Maven ya que el proyecto es un proyecto que compila con Maven
6.Modificar el pipeline, agregar la etapa de análisis con trivy
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