Aller au contenu

Dast with owasp zap proxy slides

Introduction à OWASP ZAP

ZAP (Zed Attack Proxy) est l'outil de scan de vulnérabilités web dynamique le plus populaire au monde

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, Security Headers)


Pourquoi utiliser ZAP ?

  • Gratuit et open-source : Projet phare de la fondation OWASP
  • Polyvalent : Supporte les tests passifs (non intrusifs) et actifs
  • Automatisation : Scripts Python prêts à l'emploi 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)
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é)
Scan d'API
  • Importe une définition OpenAPI (Swagger) ou GraphQL
  • Teste spécifiquement les endpoints et les paramètres de l'API

Configuration GitLab CI pour ZAP

Le scan Baseline est recommandé pour un feedback rapide en CI :

zap_baseline_scan:
  stage: security_scan
  image: owasp/zap2docker-stable
  variables:
    TARGET_URL: "https://staging.myapp.com"
  script:
    - mkdir /zap/wrk
    # Scan passif de 1 minute (Baseline)
    - zap-baseline.py -t $TARGET_URL -r zap_report.html
  artifacts:
    when: always
    paths:
      - zap_report.html

Stratégies avancées

  • Nightly Scan : 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 faux positifs : Utiliser un fichier de configuration (-c) pour ignorer certaines alertes
  • Rapports : Génération aux formats HTML, XML ou JSON pour intégration avec des outils tiers

Conclusion

  • OWASP ZAP est le pilier du 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

☕️ Si tu souhaites soutenir mon travail, tu peux m'offrir un café ici.