ZAP
Scantool | Web |
Mobile |
Local |
API |
Extension |
Serverless |
Anleitung |
---|---|---|---|---|---|---|---|
OWASP® Zed Attack Proxy (ZAP) |
Verwenden Sie den OWASP ZAP -ZAP-Docker-Container, um automatisierte dynamische Scans (DAST) für Ihre Anwendung durchzuführen. Vordefinierte Konfigurationsdateien enthalten bereits alle erforderlichen CWEs. Sie müssen es lediglich Ihrer Umgebung und dem Docker-Befehl „run“ hinzufügen. |
Definitionen der einzelnen Typen finden Sie in diesem Hilfeartikel.
So führen Sie einen vollständigen Scan von Web-, mobilen oder internen Anwendungen durch:
-
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.
-
Laden Sie die Konfigurationsdatei zap-casa-config.conf herunter und rufen Sie das entsprechende Verzeichnis auf.
-
Erstellen Sie eine Kontextdatei, auf die der Scan angewendet werden soll. Weitere Informationen finden Sie in der Anleitung unten unter Authentifizierung.
-
Führen Sie dazu diesen 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
-
Die Ausgabe wird in einer XML-Datei gespeichert (Beispiel angehängt: zap-results-full.xml)
So führen Sie einen API-Scan durch:
-
Verwenden Sie für API-Scans die Konfigurationsdatei zap-casa-api-config.conf.
-
Rufen Sie das Verzeichnis auf 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
-
Die Ausgabe wird in einer XML-Datei gespeichert (Beispiel im Anhang: Zap-Ergebnisse-API.xml).
Authentifizierung
ZAP-Scans sollten mit Authentifizierung durchgeführt werden, um zu ermitteln, wo Nutzerdaten gespeichert und darauf zugegriffen wird. Dazu ist eine Konfiguration vor dem Ausführen der Scans erforderlich. Das ZAP-Docker-Image unterstützt zwei Argumente im Zusammenhang mit der Authentifizierung:
-n context_file |
Kontextdatei, die vor dem Scannen des Ziels geladen wird |
-U-Nutzer |
Nutzername für authentifizierte Scans. Der Nutzer muss in der angegebenen Kontextdatei definiert sein. |
Um diese Parameter festzulegen, muss eine Kontextdatei erstellt werden. Am einfachsten geht das über die ZAP-Desktop-Benutzeroberfläche.
-
Legen Sie den Authentifizierungsmechanismus fest. ZAP unterstützt derzeit fünf Authentifizierungsansätze:
-
Manuelle Authentifizierung
-
Formularbasierte Authentifizierung
-
HTTP-/NTLM-Authentifizierung
-
Scriptbasierte Authentifizierung
-
JSON-basierte Authentifizierung
-
- Definieren Sie Ihre Authentifizierungsparameter. Dazu gehören in der Regel die Anmelde-URL und das Nutzlastformat (Nutzername und Passwort). Die erforderlichen Parameter sind spezifisch für die verwendeten Authentifizierungsmethoden.
- Fügen Sie einen gültigen Nutzer und ein gültiges Passwort hinzu. Erstellen Sie mehrere Nutzer, wenn die Anwendung je nach Rolle unterschiedliche Funktionen bietet.
Nachdem Sie diese Einstellungen konfiguriert haben, können Sie den Kontext als Datei exportieren, auf die Ihr Scan verweisen kann.
Speichern Sie den Kontext an einem leicht zugänglichen Ort, da Sie den Dateipfad als Argument für den Scanbefehl angeben müssen. Jetzt können Sie einen authentifizierten Scan mit der im Kontext angegebenen Nutzeranmeldung ausführen. Beispiel:
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