Aller au contenu

ZAP (Zed Attack Proxy) - Cheatsheet Analyseur de Sécurité Web

ZAP (Zed Attack Proxy) - Cheatsheet Analyseur de Sécurité Web

ZAP (Zed Attack Proxy, maintenu par Checkmarx, anciennement un phare OWASP) est un outil gratuit et open-source de test de sécurité dynamique (DAST). Il se positionne entre votre navigateur et une cible en tant que proxy d’interception, puis scanne passivement et activement les applications web et les API pour trouver les vulnérabilités. Il combine un spider/crawler, un fuzzer, un scanner actif, le support WebSocket et le scanriage des API REST/GraphQL/SOAP — utilisable de manière interactive via une GUI ou sans tête via CLI et API pour CI/CD.

Installation

PlateformeCommande
Docker (recommandé pour CI)docker pull zaproxy/zap-stable
Debian/Ubuntutélécharger le programme d’installation depuis le site ZAP
macOS (Homebrew)brew install --cask zap
Multiplateformetélécharger le paquet multiplateforme (nécessite Java)
Vérificationzap.sh -version (ou zap.bat sur Windows)

Modes d”Exécution

CommandeDescription
zap.shLancer la GUI de bureau
zap.sh -daemon -host 0.0.0.0 -port 8080Daemon sans tête avec l”API
zap.sh -cmd -quickurl https://target -quickout report.htmlScan rapide unique vers un rapport
docker run -t zaproxy/zap-stable zap-baseline.py -t https://targetScan baseline (passif) dans Docker

Framework d”Automatisation (Scans Scriptés)

Les scripts de scan empaquetés de ZAP sont le chemin le plus rapide vers l”intégration CI.

ScriptObjectif
zap-baseline.py -t URLScan passif + spider (rapide, sûr pour CI)
zap-full-scan.py -t URLBaseline + scan d”attaque actif
zap-api-scan.py -t openapi.json -f openapiScanner une API depuis une définition OpenAPI/SOAP/GraphQL
-r report.htmlÉcrire un rapport HTML
-J report.jsonÉcrire un rapport JSON
-c config.confConfiguration de filtre d”alerte / règle
# Scan baseline ami de CI, échouer la construction sur les résultats
docker run -t zaproxy/zap-stable zap-baseline.py \
  -t https://staging.example.com -r zap-report.html

Composants Principaux

ComposantRôle
ProxyIntercepter/inspecter/modifier le trafic HTTP(S)
SpiderCrawler l”application pour découvrir les URL
Ajax SpiderCrawler les applications JavaScript via un vrai navigateur
Scan PassifSignaler les problèmes du trafic observé (pas d”attaques)
Scan ActifEnvoyer des payloads d”attaque pour trouver les vulnérabilités
FuzzerInjecter des listes de payload dans les requêtes

Configuration du Proxy

ÉtapeComment
Définir proxy du navigateurPointer le navigateur vers localhost:8080
Installer le certificat ZAP CAImporter le certificat racine de ZAP pour intercepter HTTPS
Exploration manuelleParcourir l”application ; ZAP enregistre le trafic
Puis scannerSpider + scan actif de l”arborescence découverte

L”API (Automatisation)

Avec le daemon en cours d”exécution, piloter ZAP via HTTP.

EndpointAction
/JSON/spider/action/scan/?url=...Démarrer un spider
/JSON/ascan/action/scan/?url=...Démarrer un scan actif
/JSON/core/view/alerts/Récupérer les résultats
/OTHER/core/other/htmlreport/Générer un rapport HTML
Clé APITransmettre apikey=... avec les requêtes

Authentification et Contexte

ConceptUtilisation
ContexteDéfinir la portée cible et l”authentification
Gestion des sessionsSessions basées sur les cookies/HTTP/script
AuthentificationAuthentification par formulaire, JSON, HTTP ou script
UtilisateursTester en tant qu”utilisateurs authentifiés

Flux de Travail Courants

# Baseline passif rapide contre le staging dans CI
zap-baseline.py -t https://staging.example.com -r report.html

# Scanner une API REST à partir de sa spécification OpenAPI
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi -J out.json

# Scan actif complet (cibles autorisées uniquement)
zap-full-scan.py -t https://target.example.com -r full.html

ZAP vs Autres Outils DAST

AspectZAPNucleiBurp SuiteNikto
ModèleProxy + crawl + DAST actifAnalyseur CVE basé sur un modèleProxy + manuel + scannerAnalyseur de misconfiguration serveur
CoûtGratuit/open-sourceGratuit/open-sourceGratuit + Pro payantGratuit
API/CIFort (API + scripts)FortExtensions ProCLI
Meilleur pourDAST full app, CIVérifications rapides CVE connusTest de pénétration manuelVérifications serveur rapides

Appairage courant : Nuclei pour la détection rapide CVE connus plus ZAP pour le DAST au niveau application.

Ressources