Das OWASP ZAP API Python-Skript für aktives automatisiertes Scannen von Webanwendungen in Python 3

In einigen Fällen müssen Testentwickler vor der Veröffentlichung einer neuen Webanwendungs-Build automatisierte Pentests und Sicherheitsregressionstests durchführen.

Es ist möglich, OWASP ZAP (ZAP) zu diesem Zweck zu verwenden. ZAP bietet eine Application Programming Interface (API), die es ermöglicht, mit ZAP programmgesteuert zu interagieren. Die ZAP API-Dokumentation wird verwendet, um ein eigenständiges Python-Skript auszuführen, das API-Aufrufe an das ZAP-Programm macht. ZAP kann Python (und andere Sprachen) innerhalb der Anwendung ausführen, aber es kann im Moment, in dem dieser Artikel geschrieben wird, kein Python 3 ausführen. Wahrscheinlich sehen Sie einen ähnlichen Fehler, wenn Sie versuchen, einige Python3-Skripte für das Scannen auszuführen:

Python3-Skripte zum Scannen

Es gibt mehrere mögliche Gründe, warum das ZAP-API-Python-Skript für das aktive automatisierte Scannen von Webanwendungen in Python 3 möglicherweise nicht ausgeführt werden kann. Eine mögliche Ursache könnte sein, dass das Skript möglicherweise Kompatibilitätsprobleme mit Python 3 hat. Darüber hinaus können Probleme bei der Installation der benötigten Repositorys für python-owasp-zap auftreten oder bei der Konfiguration des ZAP-Dämons.

Was müssen Sie tun, um das Python 3-Skript innerhalb der ZAP-API zu verwenden?

Um das ZAP-API-Python-Skript für das aktive automatisierte Scannen von Webanwendungen in Python 3 auszuführen, befolgen Sie diese Schritte:

Zuerst können Sie überprüfen, ob das ‚zapv2‘-Python-Modul mithilfe des ‚pkgutil‘-Moduls installiert ist:

Falls nicht, installieren Sie den ZAP Python API-Client mit dem Befehl: ‚pip install zaproxy‘.

Wählen Sie das eigenständige Python-Skript aus der ZAP-API-Dokumentation aus, das Sie verwenden möchten, oder erstellen Sie Ihr eigenes Python-Skript. Stellen Sie sicher, dass Sie die folgenden Schritte in diesem Skript haben:

2.1 Importieren Sie den Python-API-Client für ZAP in Ihr Python-Skript ` from zapv2 import ZAPv2 `

2.2 Verbinden Sie sich mit dem API-Endpunkt der ZAP-Instanz, indem Sie den Host und den Port für die ZAP-Instanz als Argument für das Modul bereitstellen `zap = ZAPv2(proxies=localProxy, apikey=apiKey)` und überprüfen Sie, ob der notwendige API-Schlüssel und die Proxy-Einstellungen korrekt konfiguriert sind: ` localProxy = {„http“: „http://127.0.0.1:<Port>“, „https“: „https://127.0.0.1:<Port>“}` Vergewissern Sie sich, dass Ihre API-Schlüssel mit dem Schlüssel in der Zap-Oberfläche übereinstimmen. Zu diesem Zweck gehen Sie zu Werkzeuge => Optionen… -> API und klicken Sie auf „Zufälligen Schlüssel generieren“ (zum Beispiel, wenn der API-Schlüssel als „dsl21524545454sedasaszec“ festgelegt ist, stellen Sie sicher, dass Ihr Python-Skript diesen Schlüssel verwendet: apikey=“dsl21524545454sedasaszec“)

2.3 Richten Sie den Kontext für den Scan ein, indem Sie einen neuen Kontext erstellen und URLs hinzufügen.

2.4 Richten Sie die Authentifizierung für den Scan ein, indem Sie einen neuen Benutzer erstellen und die Authentifizierungsmethode konfigurieren.

3.Starten Sie ZAP, indem Sie Zap als Dämon ausführen.

Zap hört nun auf localhost: <Port>:

4.Führen Sie das Python-Skript aus:

Ich empfehle, Beispiele für Python-Skripte aus der Zap API-Dokumentation zu verwenden. Das Skript startet einen neuen Scan mit der angegebenen Kontext-ID unter Verwendung der ZAP-API und führt passive und aktive Scans durch.

5.Warten Sie, bis der Scan abgeschlossen ist, und holen Sie die Scan-Ergebnisse ab.

6.Analysieren Sie die Scan-Ergebnisse und ergreifen Sie die entsprechenden Maßnahmen, um die gefundenen Sicherheitslücken zu beheben.

Bei der Verwendung der ZAP-API für das aktive Scannen von Webanwendungen können einige potenzielle Probleme auftreten. Hier sind einige der Herausforderungen, denen Sie begegnen könnten:

  1. Langsame oder instabile Leistung: ZAP kann langsam oder instabil sein, insbesondere bei der Arbeit mit großen oder komplexen Webanwendungen. Es kann viel Speicher oder CPU-Ressourcen verbrauchen, was die Leistung Ihres Systems beeinträchtigen kann.
  2. Falsch positive Ergebnisse: ZAP kann falsch positive Ergebnisse generieren, das bedeutet, dass Sicherheitsprobleme als Schwachstellen gemeldet werden, obwohl sie in Wirklichkeit nicht ausnutzbar sind. Auf der anderen Seite kann ZAP auch einige Warnungen als falsch negatives Ergebnis erzeugen, das bedeutet, dass bestimmte Sicherheitsprobleme vom Tool nicht erkannt werden.
  3. Risiko der Beschädigung der Webanwendung: ZAP ist ein leistungsstarkes Werkzeug, das echte Angriffe auf Webanwendungen simulieren kann. Wenn es jedoch nicht ordnungsgemäß verwendet wird, kann es die Webanwendung beschädigen, indem es Daten ändert oder bösartige Skripte einfügt.

Um die oben genannten Probleme zu vermeiden, empfehle ich, die ZAP-API ordnungsgemäß zu verwenden und bewährte Verfahren für Sicherheitstests von Webanwendungen zu befolgen. Ich empfehle die Kombination von automatisierten Scans mit manuellen Tests. Dies hilft Ihnen, echte Sicherheitslücken zu identifizieren und zu vermeiden, sie fälschlicherweise als falsch positive Ergebnisse zu markieren, um eine umfassende Abdeckung von Sicherheitsproblemen zu gewährleisten.

Kontakt
Kontakt