Aller au contenu

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.py une 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