Verfahren für dynamisches Scannen

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. App-Typen

So führen Sie einen vollständigen Scan von Web-, mobilen oder internen Anwendungen durch:

  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 rufen Sie das entsprechende Verzeichnis auf. 

  1. Erstellen Sie eine Kontextdatei, auf die der Scan angewendet werden soll. Weitere Informationen finden Sie in der Anleitung unten unter Authentifizierung.

  1. 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
  1. Die Ausgabe wird in einer XML-Datei gespeichert (Beispiel angehängt: zap-results-full.xml)

So führen Sie einen API-Scan durch:

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

  1. 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
  1. 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.

zap context
  1. 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

Zap-Authentifizierung
  1. 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.
zap Configure Authentication
  1. 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.
zap Configure Users

Nachdem Sie diese Einstellungen konfiguriert haben, können Sie den Kontext als Datei exportieren, auf die Ihr Scan verweisen kann.

zap Export Context

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:

zap Create User
  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