- Advertisement -spot_img
HomeSecurityDynamic Application Security Testing (DAST) mit OWAS ZAP Automatisieren

Dynamic Application Security Testing (DAST) mit OWAS ZAP Automatisieren

- Advertisement -spot_img

Autor: Rudolf Groetz

(DAST) ist eine Black-Box-Sicherheitstestmethode, bei der eine Anwendung von außen, ohne das Wissen um die innere Struktur der Anwendung getestet wird. Ein Tester, der DAST durchführt, untersucht eine laufende Anwendung und versucht, sie so zu kompromittieren, wie es ein Angreifer machen würde.

Mit DAST kann nach einer Vielzahl von Sicherheitslücken gesucht werden, einschließlich Problemen bei der Eingabe- / Ausgabevalidierung, die eine Anwendung für Cross-Site-Scripting oder SQL-Injection anfällig machen können. DAST kann aber auch helfen,
Konfigurationsfehler zu erkennen.

DAST ist zwar ein wesentlicher Bestandteil von Sicherheitstests, kann jedoch kein vollständiges Bild der Sicherheitslücken in einer Anwendung liefern. Für umfassende Anwendungssicherheit müssen Black-Box-Tests mit White-Box-Tests und anderen fortschrittlichen Tools kombiniert werden. Dieser Artikel zeigt, wie OWASP ZAP für DAST eingesetzten werden kann.

Was ist OWASP ZAP und wie kann es uns helfen? 

OWASP Zed Attack Proxy (OWASP ZAP, nachfolgend kurz ZAP) ist ein Open-Source-Tool, das von Sicherheitsexperten zum manuellen und automatisierten Scannen im Rahmen von Penetrationstests verwendet wird. Das Tool bietet branchenführende Funktionen und wird von einer große Support-Community entwickelt und gewartet. Neben dem ZAP Client selbst, verfügt das Tool auch über eine API, die sehr gut definiert und dokumentiert ist. Somit kann via API-Zugriff problemlos auf Funktionen von ZAP zugegriffen werden.

ZAP wurde speziell für das Testen von Webanwendungen entwickelt und ist flexibel und erweiterbar. Vom Prinzip her, ist es ein Web-Proxy der den Datenverkehr vom Client zum Server und zurück kontrolliert. Mit ZAP können Sie Anforderungen an Ihre Anwendung abfangen, ändern und erneut senden, um zu sehen, wie die Anwendung reagiert. Dieses kann über die ZAP Benutzeroberfläche oder API’s erfolgen.

Ohne viel Konfigurationsaufwand kann ZAP auch von Nicht-Sicherheitsexperten verwendet werden, da es bereits eine Vielzahl vordefinierter Sicherheits-Checks mitbringt, die eine Anwendung auf bekannte Sicherheitslücken scannt. Um jedoch den Sicherheitszustand der Webanwendung richtig einschätzen zu können, müssen die Grundlagen der Sicherheitstests verstanden werden. ZAP bietet eine Reihe von Funktionen, wobei die drei grundlegendsten nachfolgend beschrieben werden: Passives Scannen, Aktives Scannen und Schnellstart-Scan.

 OWASP ZAP SQ Magazin
Abb. 1: Begrüßungsbildschirm OWASP ZAP

Passives Scannen

Beim passiven Scan handelt es sich um einen harmlosen Penetrationstest, bei dem nur die Antworten vom Server auf bekannte Schwachstellen überprüft werden. Die passive ScanFunktion ist die bekannteste Funktion von ZAP. Sie zeichnet alle Anforderungen und Antworten der zu testenden Webanwendung auf und protokolliert eine Warnung, wenn die Anforderung oder Antwort möglicherweise eine Sicherheitslücke aufweist. Der passive Scan ändert die Daten nicht. Injections, die OWASP Sicherheitslücke Nr. 1 im Jahr 2018, werden aber mit einem passiven Scan nicht gefunden. Dazu bedarf es eines aktiven Scans.

Aktives Scannen

Während das passive Scannen keine Änderungen an den Antworten bewirkt und als sicher eingestuft wird, zielt das aktive Scannen darauf ab, andere Sicherheitslücken durch bekannte Angriffe auf bestimmte Bereiche Ihrer Anwendung zu finden. Sie sollten vorsichtig sein, wenn Sie dies auf Anwendungen anwenden, für die Sie nicht über die entsprechenden Berechtigungen zum Testen verfügen – aktives Scannen ist ein echter Angriff. Ein aktiver Scan greift die Website mit bekannten Techniken an, um Schwachstellen zu finden. Beim aktiven Scan werden Daten geändert und es können schädliche Skripts in
die Website eingefügt werden. Wenn Sie Ihre Website also wirklich auf Sicherheitsprobleme testen, stellen Sie sie in einer neuen Umgebung bereit und führen Sie den aktiven Scan durch. Und führen Sie den aktiven Scan nur für die Sites aus, für die Sie die Berechtigung haben!

Schnellstart-Scan

Mit dem Schnellstarttest können Sie ohne viel Aufwand Sicherheits-Scans mit einigen Standardparametern durchführen. Es muss nur das Ziel (URL oder IP-Adresse mit Port) angegeben und ausgeführt werden. ZAP durchsucht dabei die Webanwendung und scannt passiv jede gefundene Seite. Anschließend führt es einen aktiven Scan durch, und greift alle erkannten Seiten, Funktionen und Parameter an. Durch die Integration in die Pipeline werden Sie umgehend über die Verfügbarkeit von Sicherheitsupdates informiert und stellen sicher, dass Ihre App auf dem neuesten Stand ist. Mit dem Schnellstart-Scan können professionelle Sicherheitstests durchführt werden, ohne dass die normalerweise erforderlichen technischen und Methodenkenntnisse vorhanden sein müssen.

Scripting

ZAP verfügt über eine Skript-Engine, mit der die Funktionen von ZAP erweitert werden können. Dazu gibt es verschiedenste Arten von Skripten, die auf alle internen Datenstrukturen einschließlich Objekten und Methoden Zugriff haben. Es unterstützt alle
Skriptsprachen, die JSR 223 unterstützen, darunter ECMAScript / Javascript, Groovy, Python, Ruby. Es gibt u.a. folgende Typen von Skripten:

STANDALONE – Diese Skripte können nur manuell, über den Run-Button gestartet werden.

TARGETED – Diese Skripte ähneln Standalone-Skripten, können jedoch auf einer bestimmten Gruppe von URLs in der Site-Struktur ausgeführt werden. Diese Scripts werden nur auf dem angegebenen Ziel ausgeführt.

PROXY – Diese Skripte, werden für jeden Request & Response ausgeführt, der über den Proxy geht. Diese Skripte ersetzen einen Teil vom Request & Response, während die Nachricht gesendet wird.

AUTHENTIFIZIERUNGSSKRIPTE – Mithilfe dieser Skripte kann der Authentifizierungsprozess automatisiert werden.

SEQUENZSKRIPTE – Diese werden verwendet, um eine geordnete Reihenfolge von Aktionen zu simulieren. Dies kann darin bestehen, auf bestimmte Seiten in einer bestimmten Reihenfolge zuzugreifen und bestimmte Aktionen auf den Seiten auszuführen.

SKRIPTEINGABEVEKTOREN – Mit diesen Skripten können benutzerdefinierte Eingabevektoren angegeben werden, die für Angriffe während aktiver Scans verwendet werden können.

Download & Install

ZAP Core ist via https://github.com/zaproxy/zaproxy/wiki/Downloads verfügbar und enthält ein Minimalset an Funktionen, welches durch zusätzliche Features über den ZAP Marketplace erweitert werden kann.

Auf MAC OSX wird ZAP wie folgt installiert:
brew cask install owasp-zap

Alternativ kann ZAP auch als Docker Image verwendet werden:
docker pull owasp/zap2dockerstable

Quickstart Scan

ZAP bietet verschiedene Möglichkeiten, einen Scan durchzuführen. Am einfachsten ist es, den SchnellstartBegrüßungsbildschirm (Abb.1) zu verwenden, der standardmäßig beim
Starten von ZAP angezeigt wird.

Geben Sie zunächst die URL, die Sie scannen möchten, in das Feld „URL to attack“ ein und klicken Sie dann auf die Schaltfläche „Attack“. Dies startet einen zweistufigen Prozess:

Zuerst wird ein Spider zum Crawlen der Website verwendet: ZAP verwendet die angegebene URL als Ausgangspunkt, um die Website zu durchsuchen und alle darin enthaltenen Hyperlinks zu ermitteln (Links, die auf eine andere Domain verweisen, werden ignoriert). Auf der Registerkarte „Spider“ im unteren Bereich des ZAP-Fensters werden die gefundenen Links angezeigt. Währenddessen scannt ZAP die Links gleichzeitig passiv.

Sobald der passive Scan abgeschlossen ist, wird der aktive Scan gestartet. ZAP startet dazu eine Vielzahl von Angriffsszenarien unter den auf der Registerkarte Spider aufgelisteten URLs. Der Fortschritt wird auf der Registerkarte „Active Scan“ angezeigt. Wenn der aktive Scan abgeschlossen ist, werden die Ergebnisse auf der Registerkarte „Alerts“ angezeigt. Diese enthält alle Sicherheitsprobleme, die sowohl beim Spider- als auch beim Active Scan aufgetreten sind. Sie werden entsprechend ihrem Risiko gekennzeichnet: Rot für hohe Priorität sowie Gelb und Grün für mittlere bis niedrige Priorität.

Results & Report

Über den Menüpunkt „Report“ können Berichte (Abb. 2) im HTML.-, XML.- oder JSON-Format exportiert werden.

OWAS ZAP SQ Magazin
Abb. 2: Ergebnisse und Report OWASP ZAP

FAZIT
Mit OWASP ZAP ist es ein Leichtes, kontinuierliche Sicherheitstests durchzuführen. Binden Sie OWASP ZAP in Ihre Pipeline ein und Sie haben den ersten Schritt in die Richtung DevSecOps gemacht. Den ersten Schritt auf einem langen Weg. Aber wie sagt ein Sprichwort so schön: Auch die größte Weltreise fängt mit dem ersten Schritt an. Sie müssen ihn nur machen. Jetzt liegt es bei Ihnen.

 

OWASP

Das Open Web Application Security Project (OWASP) ist eine gemeinnützige Organisation, die sich auf die
Verbesserung der Sicherheit von Software konzentriert. Das Ziel von OWASP
ist es, Software-Sicherheit sichtbar zu
machen, damit Anwender fundierte Entscheidungen treffen können. OWASP ist
in der einzigartigen Lage weltweit unparteiische, praktische Informationen über
Anwendungs-Sicherheit zur Verfügung
zu stellen. OWASP ist eine Community von gleichgesinnten Fachleuten, die
Software-Tools und wissensbasierte Dokumentation zur Anwendungssicherheit
herausgibt. Die Tools und Materialien von
OWASP sind unter einer freien und offenen Softwarelizenz erhältlich. OWASP
empfiehlt keine kommerziellen Produkte
oder Dienstleistungen, sodass die Community Hersteller-neutral bleiben kann.

Artikel teilen
Redaktion
Redaktion
Die SQ-Magazin Redaktion ist Ihr Ansprechpartner für alle Fragen, Anregungen und Ideen rund um das SQ-Magazin. Kontaktieren Sie uns gern unter redaktion@sq-magazin.de Wir freuen uns auf Ihre Nachricht!
- Advertisement -Certified DevOps Portfolio
Neueste Artikel
Weitere interessante Artikel
- Advertisement -spot_img
[js-disqus]