Americas

Asia

Oceania

von Stanislav Sivak

Dynamic Application Security Testing: Was ist DAST?

Analyse
23 November 20236 Minuten

Dynamic Application Security Testing (DAST) prüft laufende Webanwendungen auf Schwachstellen wie SQL-Injection und Cross-Site Scripting. Das sollten Sie darüber wissen.

Oft befinden sich Schwachstellen von Web-Applikationen nicht direkt im Quellcode, sondern entstehen erst mit der Bereitstellung für die Produktion. Genau das macht DAST zu einem wichtigen Bestandteil der Application Security.

Oft befinden sich Schwachstellen von Web-Applikationen nicht direkt im Quellcode, sondern entstehen erst mit der Bereitstellung für die Produktion. Genau das macht DAST zu einem wichtigen Bestandteil der Application Security.

Foto: shaneinsweden – shutterstock.com

Laut dem Forrester-Bericht “The State of Application Security, 2023” sind Anwendungen der am häufigsten genutzte Angriffsvektor. Web-Application-Exploits nehmen in dieser Liste Rang drei ein. Unternehmen sollten ihre laufenden Webanwendungen also zwingend auf die gleiche Weise testen und analysieren, wie das ein Angreifer tun würde. Hier kommt Dynamic Application Security Testing (DAST) ins Spiel. Das ist ein Verfahren, um die Sicherheit von Web-Applikationen zu überprüfen.

Wie funktioniert DAST?

Eine laufende Anwendung bezeichnet man als dynamisch. Schwachstellen, die in Produktivanwendungen am häufigsten ausgenutzt werden, finden sich oft nicht direkt in dem Quellcode der Anwendung. Sie entstehen erst mit der Bereitstellung für die Produktion. Das macht DAST zu einem wichtigen Bestandteil, um die Anwendungssicherheit zu testen.

Der Testprozess selbst läuft über HTTP-Anfragen und -Antworten. Der Prüfer hat jedoch keinerlei Einblick in das Innenleben der Anwendung. Man bezeichnet diese Testmethode deshalb auch oft als “Black Box”-Testing, aufgrund der Art von Informationen, die dem Prüfer zur Verfügung stehen.

Im Vorfeld gibt es vielfältige Methoden, mit denen man die Sicherheit und die Qualität eines Anwendungcordes analysieren kann. Dynamic Application Security Testing hingegen greift, wenn die Anwendung bereits in Produktion gegangen ist. Zu diesem Zeitpunkt ist DAST in der Lage, potenzielle Software-Risiken einzuschätzen, die bislang noch nicht identifiziert und/oder behoben wurden. Dabei geht es um Risiken, die auch im laufenden Betrieb der Anwendung zu einer Bedrohung werden können.

DAST stellt Testoptionen bereit, die zum spätmöglichsten Zeitpunkt innerhalb des Lebenszyklus einer Anwendung durchgeführt werden können. Hier ist der Gesamtumfang der Anwendung bereits definiert und bereitgestellt.

Vorteile von DAST

Die Funktionsfähigkeiten von DAST machen diese Form der Anwendungstests zu einem schlagkräftigen Verbündeten der Produktteams, um Anwendung zu warten. Wenn man DAST-Tests richtig durchführt, bieten sie zwei Vorzüge: Zum einen ermöglichen sie in vielen Fällen eine fehlerhafte Konfiguration schnell zu entdecken, zum anderen reduzieren sie den sogenannten “Technical Debt”.

Technische Schulden bezeichnen im Allgemeinen mögliche Konsequenzen technisch schlecht umgesetzter Software oder veraltete Systeme, die Zeit und Ressourcen bei Management und Wartung fressen. Ein Beispiel: Beim Aufspüren von miteinander korrelierenden Schwachstellen innerhalb der gesamten Anwendung, mögen diese Schwachstellen auf den ersten Blick vielfältig erscheinen. DAST-Tests lenken die Aufmerksamkeit von Entwicklungs- und Sicherheitsteams jedoch auf einige wenige Codezeilen, mit denen sich alle Schwachstellen beheben lassen.

Das Ziel von DAST kann man vereinfacht gesprochen mit dem einer Rechtschreibprüfung vergleichen. Im Laufe der Zeit entwickeln die Teams aber auch ein Verständnis dafür, was funktioniert und was nicht. Damit sind die Entwickler selbst in der Lage, sichere Entwicklungs- und Bereitstellungspraktiken zu favorisieren.

Es gibt etliche Wege, Software zu schreiben und zu härten. Mit kontinuierlichen DAST-Tests verbessert sich dieser Härtungsprozess über die Zeit, weil sich Muster erkennen lassen. Nehmen wir an, Sie haben mit dem Ihrer Anwendung zugrunde liegenden Code ein Problem, das die böswillige Ausführung von Javascript erlaubt. Oberflächlich betrachtet mag nicht offensichtlich sein, wo oder wie genau dieses Problem auftritt. Mithilfe von DAST-Scanning lässt es sich in großem Maßstab und schnell erkennen und die Ursache identifizieren.

Diese Skalierbarkeit schaufelt Ressourcen frei, die Unternehmen anderweitig investieren können. Das wiederum wirkt sich positiv auf die Produktivität aus, die sich mithilfe von DAST sukzessive steigern lässt.

CISOs sollten DAST als probates Mittel betrachten, um die Produktsicherheit weiter zu verbessern. Ist die von einem Unternehmen erstellte Software sicher für den Einsatz in der Produktion? Sind über den gesamten Entwicklungsprozess Software-Test-Tools eingesetzt worden? DAST ist innerhalb dieses Prozesses ein unverzichtbares und komplementäres Element.

DAST vs. Pentesting

Im Gegensatz dazu stehen Bug Bounty-Programme und Penetrationstests. Sie sollten sich eigentlich auf komplexere Schwachstellen wie zum Beispiel die Business-Logik fokussieren, statt auch noch Fehlkonfigurationen zu finden.

DAST ist hingegen eine Testmethode, die kontinuierlich und automatisiert eingesetzt wird. Sie arbeitet im Hintergrund und legt relevante Probleme offen, sobald sie als solche identifiziert werden. Währenddessen können die betreffenden Teams weiterhin Anwendungen erstellen und pflegen.

Was unterscheidet DAST von SAST und SCA?

Gelegentlich kommt es zu Verwirrung, wenn die Begriffe Static Application Security Testing (SAST) und Software Composition Analysis (SCA) verwendet werden. Insbesondere, wenn es darum geht, warum und wo DAST zusätzlich nötig ist.

SAST und SCA unterziehen den Anwendungscode, externe Komponenten und die Build-relevanten Daten einem statischen Test. Aufgrund der Unterschiede zum DAST-Ansatz decken sie anders gelagerte Schwachstellen auf. Deshalb verwenden die meisten Unternehmen inzwischen alle drei Techniken an unterschiedlichen Stellen im Entwicklungsprozesses.

SAST befasst sich mit proprietärem Code in einem frühen Stadium des Softwareentwicklungszyklus. Es greift zu dem Zeitpunkt, an dem ein Entwickler Code schreibt.

SCA umfasst Tests der Software, der Qualität und hinsichtlich der Lizenzkonformität innerhalb von Open Source Code. Zusätzlich erkennt SCA Sicherheitsrisiken und mögliche operative Engpässe.

Im Gegensatz dazu deckt DAST die Informationen innerhalb einer Anwendung ab, die über HTTP-Anfragen und -Antworten übertragen werden. Es handelt sich um eine sehr zielgerichtete Testmethodik. Sie ist nicht dafür gedacht, die gesamte Bedrohungslandschaft einer Anwendung zu erfassen und abzudecken. Tooling-Lösungen in den unterschiedlichen Phasen der Softwareentwicklung einzusetzen, ist der Schlüssel, die Sicherheitslage insgesamt zu stärken.

Fazit

Im Internet existieren inzwischen über 2 Milliarden Websites. Angesichts dieser schwindelerregenden und ständig wachsenden Zahl ist die Skalierbarkeit von DAST entscheidend für seine Weiterentwicklung. Als wertvoller Partner der Entwicklungsteams stellt DAST kritische Testfähigkeiten bereit, welche die Entwicklungsgeschwindigkeit nicht beeinträchtigen. DAST arbeitet also mit und nicht gegen Entwicklungsteams.

Ziel ist es, die Sicherheit und Qualität des produzierten Codes zu verbessern. Darüber hinaus ist DAST ein Bestandteil der Best Practices rund um die Entwicklung von sicherer Software, die von Frameworks wie SSDF, BSIMM oder OpenSAMM empfohlen werden. (jm)

Lesetipp: Die besten DAST- & SAST-Tools