ZAP Dynamic Security Testing: DAST für eure Web-Applikationen automatisieren

Von Roland Golla
0 Kommentar
ZAP-Schild schützt Browser vor Sicherheitslücken im surrealen Dalí-StilTeilenArtefakteAlles herunterladenZap image seo a11yDokument · MD Zap flux pro image promptDokument · MD Zap seo metadataDokument · MD Zap dynamic security testing blogpostDokument · MD ProjektinhaltBlog PostVon dir erstelltFüge PDFs, Dokumente oder andere Texte hinzu, um sie in diesem Projekt als Referenz zu verwenden.

„Der Penetrationstest hat Schwachstellen gefunden, die wir im Code-Review komplett übersehen haben.“ – Diesen Satz hören wir bei Never Code Alone regelmäßig von Teams, die erstmals Dynamic Application Security Testing (DAST) einsetzen. Mit über 15 Jahren Erfahrung in Softwarequalität, Open Source und Remote Consulting zeigen wir euch heute, wie ihr ZAP – den weltweit meistgenutzten Open-Source-Security-Scanner – optimal in eure Entwicklungsworkflows integriert.

Warum Dynamic Security Testing unverzichtbar geworden ist

Static Application Security Testing (SAST) analysiert euren Quellcode, findet aber nur einen Teil der Sicherheitslücken. DAST hingegen testet eure laufende Applikation aus der Perspektive eines Angreifers – genau so, wie auch echte Hacker vorgehen würden. ZAP (Zed Attack Proxy) ist dabei das mächtigste kostenlose Werkzeug, das ihr dafür nutzen könnt.

Die Kombination beider Ansätze deckt nachweislich mehr Schwachstellen auf als jede Methode allein. Besonders kritische Lücken wie fehlerhafte Session-Verwaltung, unsichere Server-Konfigurationen oder Authentication-Bypasses werden erst im laufenden Betrieb sichtbar.

Was genau macht ZAP und wie funktioniert es?

ZAP arbeitet als sogenannter „Man-in-the-Middle Proxy“ – es sitzt zwischen eurem Browser und der Web-Applikation, fängt alle Requests ab und analysiert sie auf Sicherheitsprobleme. Dabei bietet es zwei Scan-Modi: Passive Scans laufen still im Hintergrund und analysieren den normalen Traffic. Active Scans simulieren echte Angriffe wie SQL Injection oder Cross-Site Scripting, um Schwachstellen aktiv zu entdecken.

Die Desktop-Anwendung eignet sich perfekt für manuelle Penetrationstests, während die Docker-Images und die REST-API die Automatisierung in CI/CD-Pipelines ermöglichen. Große Unternehmen wie Facebook und Intuit setzen ZAP genau für diese automatisierten Security-Checks ein.

Wie installiere ich ZAP auf meinem System?

Die Installation ist für alle gängigen Betriebssysteme straightforward. Java 8 oder höher wird benötigt – bei macOS ist Java bereits im Installer enthalten.

Für Ubuntu/Debian:

sudo apt update && sudo apt install zaproxy

Für macOS mit Homebrew:

brew install --cask zap

Für Docker-basierte Automatisierung:

docker pull ghcr.io/zaproxy/zaproxy:stable

Praxis-Tipp aus unseren Projekten: Startet mit der Desktop-Version, um euch mit ZAP vertraut zu machen. Erst wenn ihr versteht, was ZAP macht, lohnt sich die Automatisierung.

Kann ich ZAP in meine CI/CD-Pipeline integrieren?

Die Integration in eure DevSecOps-Pipeline ist eine der größten Stärken von ZAP. Mit den Docker-Images und GitHub Actions könnt ihr Security-Scans vollständig automatisieren.

Beispiel für GitHub Actions:

name: Security Scan
on: [push]
jobs:
  zap_scan:
    runs-on: ubuntu-latest
    steps:
      - name: ZAP Full Scan
        uses: zaproxy/action-full-scan@v0.10.0
        with:
          target: 'https://eure-staging-url.de'
          rules_file_name: 'zap-rules.tsv'

Für Jenkins existiert ein dediziertes Plugin, das die Konfiguration über die UI ermöglicht. Azure DevOps, GitLab CI und andere Plattformen lassen sich ebenfalls problemlos anbinden. Der Schlüssel liegt in der korrekten Konfiguration von Host, Port und Scan-Policies.

Wichtig: Führt aktive Scans niemals gegen Produktivsysteme aus, ohne explizite Genehmigung. ZAP simuliert echte Angriffe, die bei sensiblen Systemen Schäden verursachen können.

Welche Schwachstellen findet ZAP in meiner Applikation?

ZAP erkennt eine breite Palette von Sicherheitsproblemen aus den OWASP Top 10 und darüber hinaus. Die wichtigsten erkennbaren Schwachstellen umfassen SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Broken Authentication und Sensitive Data Exposure.

Der Scanner prüft auch Server-Konfigurationen wie fehlende Security-Header, Cookie-Flags und veraltete TLS-Versionen. Bei API-Scans analysiert ZAP eure OpenAPI-Spezifikationen oder GraphQL-Schemas und testet jeden Endpoint systematisch.

Die Ergebnisse werden nach Schweregrad kategorisiert: High, Medium, Low und Informational. Das ermöglicht euch eine priorisierte Behebung – kritische Lücken zuerst.

Was ist der Unterschied zwischen ZAP und Burp Suite?

Diese Frage bekommen wir häufig gestellt. Beide Tools sind leistungsfähige Web-Security-Scanner, unterscheiden sich aber in wesentlichen Punkten.

ZAP ist vollständig Open Source und kostenlos – inklusive aller Features. Burp Suite bietet eine kostenlose Community Edition mit eingeschränkten Funktionen; der vollständige Scanner ist nur in der kostenpflichtigen Professional Edition verfügbar. Bei ZAP könnt ihr mit einer einzigen YAML-Datei komplexe Automatisierungen steuern, was die CI/CD-Integration erheblich vereinfacht.

Burp Suite gilt als das bevorzugte Tool für manuelle Penetrationstests mit einer größeren Plugin-Bibliothek. ZAP punktet bei der Automatisierung und im DevSecOps-Kontext. Viele Security-Profis nutzen beide Tools parallel, um die jeweiligen Stärken zu kombinieren.

Wie handle ich False Positives bei ZAP-Scans?

False Positives – also fälschlicherweise gemeldete Schwachstellen – sind bei automatisierten Security-Scans unvermeidlich. ZAP bietet mehrere Mechanismen, um damit umzugehen.

Im Desktop-UI könnt ihr Alerts per Doppelklick öffnen und das Confidence-Level auf „False Positive“ setzen. Bei automatisierten Scans nutzt ihr Alert Filters, um bestimmte Alerts nach definierten Kriterien zu markieren. Die Konfigurationsdateien der Docker-Scans unterstützen reguläre Ausdrücke, mit denen ihr spezifische URLs oder Alert-Typen ausschließen könnt.

Best Practice aus unserer Erfahrung: Verifiziert jeden Alert manuell, bevor ihr ihn als False Positive klassifiziert. Was auf den ersten Blick harmlos erscheint, kann sich bei genauerer Analyse als echtes Sicherheitsproblem herausstellen.

Wie konfiguriere ich Authentifizierung für geschützte Bereiche?

Die meisten Web-Applikationen erfordern Authentifizierung – und genau diese geschützten Bereiche wollt ihr natürlich auch scannen. ZAP unterstützt verschiedene Authentifizierungsmethoden: Form-basierte Authentifizierung, HTTP/NTLM, Script-basierte Authentifizierung und manuelle Session-Übernahme.

Für API-Scans mit Bearer-Token nutzt ihr die Replacer-Funktion:

-config replacer.full_list(0).description=API-Auth 
-config replacer.full_list(0).enabled=true 
-config replacer.full_list(0).matchtype=REQ_HEADER 
-config replacer.full_list(0).matchstr=Authorization 
-config replacer.full_list(0).replacement="Bearer EUER-TOKEN"

Für komplexere Szenarien wie OAuth 2.0 Client Credentials Flow oder JWT-basierte Authentifizierung empfehlen wir Custom Authentication Scripts. ZAP erkennt automatisch, wenn eine Session abläuft, und führt eine Re-Authentifizierung durch.

Welche Scan-Typen bietet ZAP und wann nutze ich welchen?

ZAP stellt drei Haupt-Scan-Typen über die Docker-Images bereit, die für unterschiedliche Szenarien optimiert sind.

Der Baseline Scan ist zeitlich begrenzt und führt nur passive Scans durch – ideal für schnelle Checks in der CI/CD-Pipeline ohne Risiko für die Zielapplikation. Der Full Scan kombiniert Spider, AJAX Spider und Active Scan für umfassende Sicherheitstests. Der API Scan ist speziell für APIs optimiert und nutzt OpenAPI-, SOAP- oder GraphQL-Definitionen.

# Baseline Scan für schnelle Checks
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://eure-app.de

# Full Scan für Staging-Umgebungen
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t https://staging.eure-app.de

# API Scan mit OpenAPI-Spec
docker run -v $(pwd):/zap/wrk ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py -t openapi.yaml -f openapi

Wie optimiere ich die Scan-Performance bei großen Applikationen?

Große Web-Applikationen können Scan-Zeiten von mehreren Stunden verursachen. Mit gezielter Konfiguration reduziert ihr diese drastisch.

Definiert einen präzisen Scope – scannt nur die relevanten Bereiche eurer Applikation. Nutzt die Spider-Optionen, um Tiefe und Dauer zu begrenzen. Schließt statische Ressourcen wie Bilder, Fonts und CSS aus. Für CI/CD-Pipelines eignet sich der Baseline-Scan mit einer maximalen Dauer.

# Spider-Tiefe begrenzen
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py 
  -t https://eure-app.de 
  -z "-config spider.maxDepth=3"

Scan Policies ermöglichen es euch, nur relevante Checks für eure Technologie-Stack durchzuführen. Wenn ihr keine Datenbank nutzt, deaktiviert SQL-Injection-Tests.

Wie integriere ich ZAP-Reports in meine Entwicklungsprozesse?

ZAP generiert Reports in HTML, XML, JSON und Markdown. Die HTML-Reports eignen sich für Stakeholder-Präsentationen, während JSON und XML die maschinelle Verarbeitung ermöglichen.

docker run -v $(pwd):/zap/wrk ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py 
  -t https://eure-app.de 
  -r report.html 
  -J report.json 
  -x report.xml

In Jenkins könnt ihr die Reports als Build-Artefakte archivieren. GitHub Actions ermöglicht das Erstellen von Issues direkt aus den Scan-Ergebnissen. Für Enterprise-Setups bietet sich die Integration mit SIEM-Systemen oder Vulnerability-Management-Plattformen an.

Das Team von Never Code Alone nutzt in Kundenprojekten oft einen gestuften Ansatz: Baseline-Scans bei jedem Commit, Full-Scans als Nightly-Job und manuelle Deep-Dives vor größeren Releases.

Best Practices aus über 15 Jahren Security-Consulting

Nach unzähligen Projekten haben wir bei Never Code Alone folgende Standards etabliert:

Shift Left Security: Integriert ZAP so früh wie möglich in euren Entwicklungsprozess. Je später ihr Schwachstellen findet, desto teurer wird die Behebung.

Kontinuierliche Scans: Security ist kein einmaliges Event. Automatisierte Scans bei jedem Deployment fangen Regressionen ab.

Dokumentierte Ausnahmen: Jeder als False Positive klassifizierte Alert sollte dokumentiert und regelmäßig überprüft werden.

Team-Enablement: Entwickler sollten die Scan-Ergebnisse selbst interpretieren können. Das beschleunigt die Behebung erheblich.

Defense in Depth: ZAP ist ein Baustein eurer Security-Strategie, nicht die komplette Lösung. Kombiniert DAST mit SAST, Dependency-Scanning und manuellen Penetrationstests.

Der entscheidende Vorteil für eure Projekte

Dynamic Security Testing mit ZAP gibt euch eine Angreifer-Perspektive auf eure Applikationen. Ihr seht, was ein potenzieller Hacker sehen würde – und könnt reagieren, bevor es jemand anderes tut.

Die Automatisierung in CI/CD-Pipelines macht Security-Tests reproduzierbar und skalierbar. Neue Schwachstellen werden automatisch erkannt, noch bevor sie in Produktion landen.

Direkte Unterstützung für euer Team

Ihr wollt ZAP optimal in euren Workflow integrieren? Oder braucht ihr Unterstützung bei der Konfiguration für komplexe Authentifizierungs-Szenarien? Mit über 15 Jahren Expertise in Softwarequalität und Remote Consulting helfen wir euch gerne weiter.

Kontakt: roland@nevercodealone.de

Gemeinsam machen wir eure Applikationen sicherer – mit praktischen Lösungen, die in euren Alltag passen.

Fazit: Security als kontinuierlicher Prozess

ZAP transformiert die Art, wie Teams über Web-Security denken. Von der ersten Zeile Code bis zum Production-Deployment bietet es euch die Werkzeuge, um Schwachstellen systematisch zu finden und zu beheben.

Startet heute: Installiert ZAP, scannt eure Staging-Umgebung und analysiert die ersten Ergebnisse. Die Erkenntnisse werden euch überraschen – und euer Sicherheitsniveau nachhaltig verbessern.

Never Code Alone – Gemeinsam für bessere Software-Qualität!

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu