En esta entrada vamos a configurar OWASP ZAP en nuestro Pipeline Jenkins. En esta ocasión no vamos a hacer una instalación de OWASP ZAP, vamos a ejecutarlo en un contenedor Docker en el mismo host que Jenkins y sumarlo el “Stage” a nuestro Pipeline.
Para comenzar, en el host que contiene Jenkins, vamos a correr el Docker de OWASP ZAP.
-i owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 \
-config api.addrs.addr.name=.* -config api.addrs.addr.regex=true \
-config api.disablekey=true
Vamos a hacer una llamada directa al Docker con el comando zap-cli. Elegí el quick-scan y agregamos un tag de Medium. La finalidad es que no me reporte los Low.
Vamos a crear un Stage en nuestro código Groovy de Jenkins. Agregue un Try & Catch. Me interesa, por los falsos positivos, que el Pipeline continue aun si tenemos vulenrabilidades Medium o High.
A continuación creamos el reporte. En este caso, para su posterior publicación, la salida es html pero podríamos jugar con otros formatos para alimentar otro sistema. Por ejemplo JSON para utilizar ArcherySec o DefectDojo y poder gestionar la vulnerabilidad hallada.
steps {
script {
try {
echo "Inicio de Scanneo Dinamico"
sh "docker exec zap zap-cli --verbose quick-scan http://pipeline.ironbox.com.ar:8090 -l Medium"
//sh "docker exec zap zap-cli --verbose alerts --alert-level Medium -f json | jq length"
currentBuild.result = 'SUCCESS'
}
catch (Exception e) {
//echo e.getMessage()
//currentBuild.result = 'FAILURE'
println ("Revisar Reporte ZAP. Se encontraron Vulnerabilidades.")
}
}
echo currentBuild.result
echo "Generacion de Reporte"
sh "docker exec zap zap-cli --verbose report -o /zap/reports/owasp-quick-scan-report.html --output-format html"
publishHTML target: [
allowMissing: false,
alwaysLinkToLastBuild: false,
keepAll: true,
reportDir: '/opt/dast/reports',
reportFiles: 'owasp-quick-scan-report.html',
reportName: 'Analisis DAST'
]
}
}
¡Vamos a correr ese Pipeline! A ver que nos entrega.

Como habíamos configurado el Pipeline continuo aun habiendo encontrado una vulnerabilidad Medium.
Ahora podemos revisar el reporte.
Muchas cosas para configurar y seguir jugando. Espero que les sea de utilidad.
fuente:https://blog.santiagoagustinfernandez.com/analisis-dast-en-nuestro-pipeline-con-owasp-zap/