-
Notifications
You must be signed in to change notification settings - Fork 0
ZAP Gids Pipeline integratie
| status ❌ |
|
|---|---|
| Taal | ✅ |
| Instructies | ✅ |
| (Dead) Links | ✅ |
Bij het werken met ZAP Automation Plans is het belangrijk om rekening te houden met portabiliteit. Scripts die lokaal goed functioneren, kunnen in een CI/CD-omgeving onverwachte problemen opleveren. Dit komt voornamelijk doordat omgevingsvariabelen (environment variables) anders zijn ingericht op een ontwikkelmachine dan in een pipeline-omgeving.
Het ZAP Automation Framework interpreteert géén omgevingsvariabelen automatisch in YAML-velden zoals urls of includePaths. In tegenstelling tot bijvoorbeeld shellscripts of Docker Compose, wordt een waarde als ${RELEASE_NAME} door ZAP beschouwd als een letterlijke string, tenzij je deze gebruikt in:
- een Zest-script, of
- een expliciet ondersteund veld zoals
env.parameters
Houd hier dus rekening mee bij het verplaatsen of hergebruiken van automation plans tussen verschillende omgevingen.
Je moet daarom een shell-script maken met envsubst

De ZAP-scan is geïntegreerd in de GitLab CI/CD-pipeline als een job in het bestand .gitlab-ci.yml. Deze taak doet het volgende:
- Draait in de zap-stage van de pipeline.
- Gebruikt het Docker-image
zaproxy/zaproxy:stable. - Wordt uitgevoerd voor zowel merge requests als de main-branch.
- Stelt omgevingsvariabelen in op basis van de context (merge request of main-branch).
- Vervangt variabelen in de configuratiebestanden.
- Start de ZAP-scan met het commando
zap.shen het automation planzap-scan.yaml. - Slaat de rapporten op als artefacten, die toegankelijk zijn via de GitLab-UI.
De run-zap-scan.sh wordt gebruikt om ZAP-scans lokaal uit te voeren.
./run-zap-scan.sh -r mr155De volgende acties worden uitgevoerd:
- Maakt een tijdelijke directorystructuur aan voor ZAP-scanresultaten.
- Stelt omgevingsvariabelen in (RELEASE_NAME, ZEST_SCRIPT, ENCODING_SCRIPT).
- Vervangt omgevingsvariabelen in configuratiebestanden.
- Voert de ZAP-scan uit met behulp van Docker met de zaproxy/zap-stable-image.
- Slaat de scanresultaten op in de tijdelijke directory.
Om de ZAP-scan lokaal uit te voeren gebruik het onderstaande commando.
./run-zap-scan.sh -r mr155Na het uitvoeren van het script zijn de scanrapporten te vinden in de map ./zap-temp/reports.
Het script bevat uitgecommentarieerde code voor debuggingdoeleinden. Om de ZAP-container te openen voor debugging:
- Verwijder de opmerkingen uit het debugginggedeelte in het script
- Voer het script uit
- Je komt terecht in een shell binnen de ZAP-container