Der OWASP Zed Attack Proxy (ZAP) ist eines der weltweit beliebtesten, kostenlosen Sicherheitstools und wird von hunderten internationalen Freiwilligen aktiv betreut. OWASP ZAP kann dabei helfen, automatisch Sicherheitslücken in Webanwendungen zu finden, während die Anwendungen noch entwickelt und getestet werden.
ZAP ist ein sehr umfangreiches Tool, mit sehr vielen Funktionalitäten. Es gibt eigens dafür veröffentlichte Schulungen und Workshops. Durch die übersichtliche Oberfläche, über die sich das Tool steuern lässt, ist es auch an Entwickler und Anwendungstester ohne große Erfahrungen mit Penetrationstests gerichtet. Neben dem Vorteil der Cross-Plattform Funktionalität des Tools ist die Oberfläche außerdem in zahlreiche Sprachen übersetzt.
Das Tool ZAP kann mittels REST-API gesteuert werden, welche eine Automatisierung des Pentesting-Prozesses ermöglichen kann. Diese API bietet Zugriff auf den aktiven Scanner und den Spider. Der Spider ist ein Feature von ZAP, welches ermöglicht eine Webanwendung auf ihre Pfade und URLs zu scannen um alle Angriffsziele zu erfassen. Diese erfassten URLs können anschließend mit einem „aktiven Scan“ angegriffen werden.
Während sich der Anwender durch die analysierte Webanwendung klickt, kann ZAP diese Aufrufe aufnehmen und einen passiven Scan durchführen. Dies ist insbesondere dann hilfreich, wenn eine Anwendung während der Entwicklung getestet wird. ZAP arbeitet also als Man-in-the-Middle-Proxy um die Aufrufe auf die Webanwendung zu analysieren und auszuführen. Abbildung 1 stellt den Verbindungsaufbau eines Man-in-the-Middle Proxys dar. Dabei wird statt der Originalverbindung von PC zu Webseite der zwischengeschaltete Proxy – im Bild mit der orangenen Farbe gekennzeichnet – als Vermittler aufgerufen. Der Proxy leitet als zwischengeschaltetes Glied alle HTTP-Anfragen an die Webseite und die Antworten an den PC weiter. Nicht direkt ersichtliche AJAX-Aufrufe können somit erkannt und protokolliert werden.
ZAP kann als Jenkins Plugin installiert und so konfiguriert werden, dass automatisiert ein passiver Scan gegen die Seite der Hochschule Aalen durchgeführt wird. Dabei scannt ZAP alle HTTP-Requests und Responses, die beim Aufruf der Startseite der Hochschule Aalen zwischen Server und Client ausgetauscht werden und analysiert diese auf Sicherheitslücken. Der passive Modus wurde in diesem Beispiel gewählt, da die Requests bzw. die Responses nicht verändert werden und der getesteten Webseite dadurch kein Schaden entsteht.
Der passive Scan der Webseite der Hochschule Aalen ergab dabei zwei Beanstandungen mit der Kritikalität „Niedrig“ (vgl. Abbildung 2). Eingebunden in ein Continuous-Integration Tool wie Jenkins, kann ZAP beispielsweise die Integrationstestphase oder Systemtestphase durch automatisierte passive oder aktive Scans unterstützen.
Es besteht auch die Möglichkeit den Jenkins so zu konfigurieren, dass in einem Build via ZAP ein automatischer Scan durchgeführt wird. Dabei wird eine Vielzahl von Angriffszielen und Angriffsmethoden durchgetestet. Dies erfolgt nach dem Try and Error Prinzip. Daher werden beim aktiven Angriff zahlreiche Aufrufe auf das Webportal ausgeführt, beispielsweise um in den Variablenparameter eine XSS-Injection auszuführen.
OWASP ZAP gehört somit zu der Gruppe der dynamischen Scanning Tools (DAST). Im Scan-Modus können die folgenden Angriffsmethoden getestet werden:
- Path Traversal,
- Remote File Inclusion,
- Server Side Include,
- Cross Site Scripting (Reflected),
- Cross Site Scripting (Persistent),
- Cross Site Scripting (dom-based),
- SQL Injection,
- Server-Side Code Injection,
- Remote OS Command Injection,
- Directory Browsing,
- External Redirect,
- Buffer Overflow,
- Format String Error,
- CRLF Injection,
- Parameter Tampering,
- Custom Scripts: Active Scan Rules.
- Custom Scripts: Passive Scan Rules.
Die Angriffsmethoden können zusätzlich um sogenannte Community Scripte und Add-Ons aus dem ZAP Marketplace erweitert werden.