Zum Inhalt springen

ZAP (Zed Attack Proxy) - Web-App-Sicherheits-Scanner-Spickzettel

ZAP (Zed Attack Proxy) - Web-App-Sicherheits-Scanner-Spickzettel

ZAP (Zed Attack Proxy, gepflegt von Checkmarx, ehemals OWASP-Flaggschiff) ist ein kostenloses, quelloffenes dynamisches Anwendungssicherheitstests (DAST)-Tool. Es sitzt zwischen Ihrem Browser und einem Ziel als abfangendes Proxy und scannt Web-Apps und APIs dann passiv und aktiv auf Sicherheitslücken. Es kombiniert einen Spider/Crawler, einen Fuzzer, einen Active Scanner, WebSocket-Unterstützung und REST/GraphQL/SOAP-API-Scans — nutzbar interaktiv über eine GUI oder kopflos über CLI und API für CI/CD.

Installation

PlattformBefehl
Docker (empfohlen für CI)docker pull zaproxy/zap-stable
Debian/UbuntuInstaller von der ZAP-Website herunterladen
macOS (Homebrew)brew install --cask zap
PlattformübergreifendCross-Platform-Paket herunterladen (benötigt Java)
Verifizierenzap.sh -version (oder zap.bat unter Windows)

Ausführungsmodi

BefehlBeschreibung
zap.shDesktop-GUI starten
zap.sh -daemon -host 0.0.0.0 -port 8080Headless-Daemon mit API
zap.sh -cmd -quickurl https://target -quickout report.htmlEinmaliger Quick-Scan zu einem Report
docker run -t zaproxy/zap-stable zap-baseline.py -t https://targetBaseline (passiver) Scan in Docker

Automation Framework (Skriptgesteuerte Scans)

Die gepackten Scan-Skripte von ZAP sind der schnellste Weg zur CI-Integration.

SkriptZweck
zap-baseline.py -t URLPassiver Scan + Spider (schnell, CI-sicher)
zap-full-scan.py -t URLBaseline + aktiver Angriffsscan
zap-api-scan.py -t openapi.json -f openapiScan einer API aus einer OpenAPI/SOAP/GraphQL-Definition
-r report.htmlHTML-Report schreiben
-J report.jsonJSON-Report schreiben
-c config.confAlert-Filter / Regelkonfiguration
# CI-freundlicher Baseline-Scan, Build bei Erkenntnissen fehlschlagen
docker run -t zaproxy/zap-stable zap-baseline.py \
  -t https://staging.example.com -r zap-report.html

Kernkomponenten

KomponenteRolle
ProxyHTTP(S)-Traffic abfangen/inspizieren/modifizieren
SpiderApp crawlen, um URLs zu entdecken
Ajax SpiderJS-intensive Apps über echten Browser crawlen
Passive ScanProbleme aus beobachtetem Traffic kennzeichnen (ohne Angriffe)
Active ScanAttack-Payloads senden, um Sicherheitslücken zu finden
FuzzerPayload-Listen in Requests injizieren

Proxy-Einrichtung

SchrittWie
Browser-Proxy setzenBrowser auf localhost:8080 zeigen
ZAP-CA-Zertifikat installierenZAP-Root-Zertifikat importieren, um HTTPS abzufangen
Manuell erkundenApp durchsuchen; ZAP zeichnet den Traffic auf
Dann scannenSpider + aktiver Scan des entdeckten Baums

Die API (Automatisierung)

Mit dem laufenden Daemon ZAP über HTTP steuern.

EndpunktAktion
/JSON/spider/action/scan/?url=...Spider starten
/JSON/ascan/action/scan/?url=...Aktiven Scan starten
/JSON/core/view/alerts/Erkenntnisse abrufen
/OTHER/core/other/htmlreport/HTML-Report generieren
API-Schlüsselapikey=... mit Requests weitergeben

Authentifizierung & Kontext

KonzeptVerwendung
KontextZielumfang und Auth definieren
Session-MgmtCookie/HTTP/Skript-basierte Sessions
AuthentifizierungForm-, JSON-, HTTP- oder Skript-Auth
BenutzerAls authentifizierte Benutzer testen

Häufige Workflows

# Schneller passiver Baseline gegen Staging in CI
zap-baseline.py -t https://staging.example.com -r report.html

# REST-API von ihrer OpenAPI-Spezifikation scannen
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi -J out.json

# Vollständiger aktiver Scan (nur autorisierte Ziele)
zap-full-scan.py -t https://target.example.com -r full.html

ZAP im Vergleich zu anderen DAST-Tools

AspektZAPNucleiBurp SuiteNikto
ModellProxy + crawl + aktives DASTTemplate-CVE-ScannerProxy + manuell + ScannerServer-Misconfig-Scanner
KostenKostenlos/QuelloffenKostenlos/QuelloffenKostenlos + bezahltes ProKostenlos
API/CIStark (API + Skripte)StarkPro-ErweiterungenCLI
Beste fürVollständiges App-DAST, CISchnelle bekannte CVE-ChecksManuelles PentestingSchnelle Server-Checks

Häufige Paarung: Nuclei für schnelle bekannte-CVE-Erkennung plus ZAP für Crawling-Anwendungs-DAST.

Ressourcen