Dast with owasp zap proxy slides
Introduction à OWASP ZAP¶
ZAP (Zed Attack Proxy) est un des outils open-source de référence pour le scan dynamique d'applications web
Il permet de réaliser du DAST (Dynamic Application Security Testing) : - Tests de sécurité automatisés en simulant des attaques - Analyse manuelle des applications web (Proxy d'interception) - Découverte de failles "au runtime" (XSS, SQL Injection, en-têtes de sécurité)
Pourquoi utiliser ZAP ?¶
- Gratuit et open-source : Projet phare de la fondation OWASP
- Polyvalent : Supporte les tests passifs (non intrusifs) et actifs
- Automatisation : Scripts Docker et plans d'automatisation prêts pour la CI/CD
- Mode API : Capacité à scanner des API REST, GraphQL et OpenAPI
Types de scans¶
Scan Passif (Baseline)¶
- Analyse le trafic (requêtes/réponses) sans modifier les données
- Idéal pour la CI/CD à chaque commit (rapide et sans risque)
- Exemple : en-tête de sécurité manquant (
X-Frame-Options,Content-Security-Policy)
Scan Actif (Full Scan)¶
- Tente de modifier les données et d'exploiter les failles
- Attention : Peut corrompre la base de données (à faire en environnement dédié)
- Exemple : injection SQL ou XSS sur un formulaire
Scan d'API¶
- Importe une définition OpenAPI (Swagger) ou GraphQL
- Teste spécifiquement les endpoints et les paramètres de l'API
- Exemple : injection dans un paramètre d'API ou contrôle d'accès insuffisant
Configuration GitLab CI pour ZAP¶
Le scan Baseline est recommandé pour un feedback rapide en CI :
zap_baseline_scan:
stage: security_scan
image:
name: ghcr.io/zaproxy/zaproxy:stable
entrypoint: [""]
variables:
TARGET_URL: "https://staging.myapp.com"
script:
# Spider de 1 minute par défaut, puis analyse passive
- zap-baseline.py -t "$TARGET_URL" -r "$CI_PROJECT_DIR/zap_report.html" -I
artifacts:
when: always
paths:
- zap_report.html
Stratégies avancées¶
- Scan planifié : Lancer le
zap-full-scan.pyune fois par jour (plus long, plus profond) - Authentification : Utiliser des scripts ZAP pour scanner des zones protégées par login
- Gestion des règles : Utiliser un fichier de configuration (
-c) pour passer des alertes en INFO, IGNORE, WARN ou FAIL - Rapports : Génération aux formats HTML, XML ou JSON pour intégration avec des outils tiers
Conclusion¶
- OWASP ZAP est un outil de référence pour le DAST dans une chaîne DevSecOps
- Commencer par un scan passif (Baseline) pour éviter de bloquer les builds
- Compléter par des scans actifs en environnement de staging ou en nightly
- Indispensable pour détecter les failles liées à la configuration serveur et au runtime