From 30aca3e8da9062bee015bf3f9443cbd2464250f5 Mon Sep 17 00:00:00 2001 From: pm Date: Sat, 13 Jun 2026 10:36:56 +0100 Subject: [PATCH] owasp zap config v11 --- .gitea/workflows/deploy.yml | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 0109dda..befb992 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -58,15 +58,17 @@ jobs: docker run -d --name apex-sandbox --network zap-net apex-solutions:latest sleep 10 - echo ">>> 3. Preparar Volume do ZAP (Criar config localmente)..." + echo ">>> 3. Preparar Volume do ZAP e Diretório de Testes..." mkdir -p qatests + chmod 777 qatests docker volume create zap-data - # Mudei o nome para zap-rules.conf (já não estamos a fazer baseline) docker run --rm -v zap-data:/zap/wrk alpine sh -c 'echo "FAIL_ON_SEVERITY: HIGH" > /zap/wrk/zap-rules.conf' echo ">>> 4. Executar OWASP ZAP (FULL SCAN + AJAX SPIDER)..." - # AQUI: zap-full-scan.py em vez de zap-baseline.py! + # Desligamos o "aborta ao primeiro erro" do Linux para o ZAP correr até ao fim + set +e + docker run --user root --name zap-scanner \ --network zap-net \ -v zap-data:/zap/wrk/:rw \ @@ -74,16 +76,32 @@ jobs: -t http://apex-sandbox:3000 \ -r report.html \ -j \ - -I -c zap-rules.conf || true + -I -c zap-rules.conf + + # GUARDAR O RESULTADO: O ZAP encontrou erro? (0 = Não, 1 = Sim). Guardamos na variável ZAP_EXIT_CODE + ZAP_EXIT_CODE=$? + + # Voltamos a ligar o "aborta ao primeiro erro" do Linux + set -e echo ">>> 5. Recolher o relatório HTML..." + # Como guardámos o erro e não abortámos, esta linha vai correr SEMPRE! docker cp zap-scanner:/zap/wrk/report.html qatests/report.html || true - echo ">>> 6. Limpeza final..." + echo ">>> 6. Limpeza final dos contentores..." docker rm -f zap-scanner apex-sandbox || true docker network rm zap-net || true docker volume rm zap-data || true + echo ">>> 7. Veredicto Final da Segurança..." + # Se o código guardado for diferente de 0, forçamos o bloqueio vermelho na pipeline! + if [ $ZAP_EXIT_CODE -ne 0 ]; then + echo "🚨 ALERTA CRÍTICO: OWASP ZAP encontrou vulnerabilidades! Pipeline bloqueada." + exit $ZAP_EXIT_CODE + else + echo "✅ ZAP Scan concluído sem vulnerabilidades críticas." + fi + - name: 6. Production Deployment if: github.event_name == 'push' run: |