Dynamische Scanverfahren

ZAP

Scan-Tool Web Mobile Local API Extension Serverless Anleitung
OWASP® Zed Attack Proxy (ZAP)

Mit dem OWASP ZAP; ZAP-Docker-Container können Sie automatisierte dynamische Scans (DAST) für Ihre Anwendung ausführen. Vordefinierte Konfigurationsdateien enthalten bereits alle erforderlichen CWEs. Sie müssen es nur Ihrer Umgebung und dem Docker-Ausführungsbefehl hinzufügen.

Definitionen der einzelnen Typen Hier klicken App-Typen

Mit den folgenden Schritten können Sie einen vollständigen Scan für Web-, mobile oder interne Anwendungen ausführen:

  1. DAST- und API-Scans werden mit dem ZAP-Docker-Image ausgeführt. Bei Web-, mobilen oder internen Anwendungen sollte der vollständige ZAP-Scan in einer Prod-1- oder Staging-Umgebung ausgeführt werden. 

  2. Laden Sie die Konfigurationsdatei zap-casa-config.conf herunter und wechseln Sie zum Verzeichnis. 

  1. Erstellen Sie eine Kontextdatei für den Scan. Weitere Informationen finden Sie unten im Abschnitt Authentifizierung.

  1. Führen Sie den folgenden Befehl aus: 

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py 
-t https://example.com -P 8080 
-c zap-casa-config.conf 
-x results-full.xml -n example.context -U username
  1. Die Ausgabe wird in einer XML-Datei gespeichert (Beispiel: zap-results-full.xml).

Ein API-Scan kann so ausgeführt werden:

  1. Verwenden Sie für API-Scans die Konfigurationsdatei zap-casa-api-config.conf

  1. Wechseln Sie zum Verzeichnis und führen Sie den folgenden Befehl aus:

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
-t owasp/zap2docker-stable zap-api-scan.py 
-t https://example.com -f openapi-P 8080 
-c zap-casa-api-config.conf 
-x results-full.xml
  1. Die Ausgabe wird in einer XML-Datei gespeichert (Beispiel:zap-results-api.xml).

Authentifizierung

ZAP-Scans sollten mit Authentifizierung durchgeführt werden, um herauszufinden, wo Nutzerdaten gespeichert und abgerufen werden. Dafür ist eine Konfiguration erforderlich, bevor die Scans ausgeführt werden. Das ZAP-Docker-Image ermöglicht zwei Argumente in Bezug auf die Authentifizierung:

-n context_file

Kontextdatei, die vor dem Scannen des Ziels geladen wird

-U Nutzer

Nutzername für die authentifizierten Scans. Der Nutzer muss in der jeweiligen Kontextdatei definiert werden. 

Zum Festlegen dieser Parameter muss eine Kontextdatei erstellt werden. Am einfachsten geht das über die ZAP Desktop-UI.

Zap-Kontext
  1. Legen Sie den Authentifizierungsmechanismus fest. ZAP unterstützt derzeit fünf Authentifizierungsansätze:

    • Manuelle Authentifizierung

    • Formularbasierte Authentifizierung

    • HTTP/NTLM-Authentifizierung

    • Skriptbasierte Authentifizierung

    • JSON-basierte Authentifizierung

Zap-Authentifizierung
  1. Definieren Sie Ihre Auth-Parameter. Dazu gehören in der Regel die Log-in-URL und das Nutzlastformat (Nutzername und Passwort). Die erforderlichen Parameter sind spezifisch für die verwendeten Authentifizierungsmethoden.
zap-Authentifizierung konfigurieren
  1. Fügen Sie einen gültigen Nutzer und ein gültiges Passwort hinzu. Erstellen Sie mehrere Nutzer, wenn die Anwendung je nach Rolle verschiedene Funktionen bietet.
zap – Nutzer konfigurieren

Nachdem Sie diese Einstellungen konfiguriert haben, können Sie den Kontext als Datei für Ihren Scan exportieren.

zap-Exportkontext

Bewahren Sie den Kontext an einem leicht zugänglichen Ort auf, da Sie den Dateipfad als Argument für Ihren Scanbefehl angeben müssen. Jetzt können Sie einen authentifizierten Scan mit den im Kontext angegebenen Nutzeranmeldungen ausführen. Beispiel:

zap-Nutzer erstellen
  docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
  -t owasp/zap2docker-stable zap-full-scan.py 
  -t https://example.com -P 8080 
  -c zap-casa-config.conf -x results-full.xml 
  -n /Users/DemoUser/Documents/Context.context -U test@example.com