Definition

Dynamic Application Security Testing (DAST)

Was ist Dynamic Application Security Testing (DAST)?

Dynamic Application Security Testing (DAST) ist ein Verfahren, das von Entwicklern eingesetzt wird, um eine Webanwendung (Web App) während der Laufzeit zu analysieren und Sicherheitslücken oder Schwachstellen zu ermitteln. Mit DAST untersucht ein Tester eine Anwendung, während sie läuft, und versucht, sie wie ein Hacker anzugreifen. DAST-Tools liefern den Entwicklern nützliche Informationen darüber, wie sich die Anwendung verhält, so dass sie erkennen können, wo ein Hacker einen Angriff durchführen könnte, und die Bedrohung beseitigen können.

Wie funktioniert DAST?

Dynamic Application Security Testing  wird durchgeführt, sobald die Anwendung ihre früheren Lebensphasen hinter sich gelassen hat und in die Produktiv- oder Runtime-Phase übergegangen ist. Die meisten DAST-Tools testen nur die exponierten HTTP- und HTML-Schnittstellen webfähiger Anwendungen, aber einige sind speziell für Nicht-Web-Protokolle und Datenfehlfunktionen konzipiert - wie Remote Procedure Calls (RPC) und Session Initiation Protocols (SIP).

DAST ist ein Black-Box-Test, das heißt, er wird von außerhalb der Anwendung durchgeführt, ohne Einblick in den internen Quellcode oder die Anwendungsarchitektur zu haben. Daher werden bei dem Test Schwachstellen mit denselben Techniken aufgedeckt, die auch ein Hacker anwenden würde, um Angriffe auf die Software durchzuführen. Bei einem DAST wird eine Fault-Injection-Technik eingesetzt, beispielsweise die Einschleusung von Malware in die Software, um Bedrohungen wie Cross Site Scripting (XSS) oder SQL Injection (SQLi) aufzudecken.

DAST-Tools scannen Anwendungen kontinuierlich während und nach der Entwicklung. Die DAST-Scanner durchforsten eine Webanwendung, bevor sie sie scannen. Dieser erste Schritt ermöglicht es dem DAST-Tool, jede exponierte Eingabe auf den Seiten innerhalb der App zu finden und dann jede einzelne zu testen.

Die Tests, die nach der Ausführung der Anwendung durchgeführt werden, sind vollständig automatisiert. Es erlaubt es Unternehmen, Risiken sofort zu erkennen und zu beheben, bevor es zu ernsthaften Angriffen kommt. Sobald eine Schwachstelle entdeckt wird, sendet eine DAST-Lösung eine automatische Warnung an das zuständige Entwicklerteam, damit dieses die Schwachstelle beheben kann.

DAST kann auf drei Arten angewandt werden:

  • frühzeitiges und häufiges Testen während des Lebenszyklus der Softwareentwicklung (SDLC);
  • in Zusammenarbeit mit DevOps - DAST identifiziert das Problem und DevOps behebt es;
  • und in Verbindung mit anderen Tests als Teil eines umfassenden Ansatzes zur Websicherheit.

DAST funktioniert am besten als Teil eines umfassenden Ansatzes für Sicherheitstests von Webanwendungen. Dieser Ansatz verschafft den Sicherheitsteams einen rechtzeitigen Einblick in das Verhalten von Webanwendungen in der Produktion. Neben DAST werden häufig weitere Formen von Sicherheitstests ein, wie beispielsweise Application Penetration Testing und Static Application Security Testing (SAST).

Penetrationstests für Anwendungen bieten eine reale Darstellung, wie ein Angreifer in eine bestimmte Webanwendung eindringen könnte, und SAST ermöglicht es Entwicklern, Schwachstellen im Quellcode der Anwendung zu einem früheren Zeitpunkt im SDLC zu finden.

Vorteile von DAST

Der Hauptvorteil von DAST-Tools besteht darin, dass Unternehmen besser nachvollziehen können, wie sich ihre Webanwendungen verhalten. Somit können sie Bedrohungen in einem frühen Stadium des SDLC erkennen. Das erhöht die Sicherheit und spart Zeit wie Geld, indem sie Schwachstellen beseitigen und bösartige Angriffe stoppen, bevor sie stattfinden.

Wenn ein Hacker erfolgreich einen Angriff auf eine Webanwendung startet, kann er vom Sicherheitsteam für längere Zeit unentdeckt bleiben. Im Verborgenen kann der Angreifer so viel Schaden anrichten, wie er will, und gleichzeitig Zugang zu sensiblen Unternehmens- und Kundendaten erhalten. DAST macht es wahrscheinlicher, dass diese Hacker gefunden werden, indem es die Anwendung scannt, während sie läuft. DAST kann auch Probleme während der Laufzeit analysieren, die durch statische Analysen nicht identifiziert werden können. Dazu gehören Authentifizierungs- und Serverkonfigurationsprobleme sowie Schwachstellen, die nur sichtbar sind, wenn sich ein bekannter Benutzer anmeldet.

Darüber hinaus sind DAST-Werkzeuge technologieunabhängig und interagieren mit Anwendungen von außen, indem sie sich auf HTTP- und HTML-Schnittstellen stützen. Dadurch können DAST-Tools mit jeder Programmiersprache und jedem Framework arbeiten. Außerdem ist der DAST-Scanner dadurch in einer idealen Position, um potenzielle Konfigurationsprobleme innerhalb der Anwendung zu identifizieren.

DAST ist auch für die Einhaltung von Compliance-Vorschriften und Industriestandards von Vorteil. Es kann die Erfüllung von PCI-DSS-Vorgaben und andere Arten von Berichten über gesetzliche Vorschriften rationalisieren.

DAST-Schwachstellen

DAST-Werkzeuge eignen sich am besten für das Wasserfallmodell, können aber bei anderen, fortschrittlicheren Softwareentwicklungsmethoden aufgrund von Verarbeitungsbeschränkungen unzureichend sein.

DAST-Tools können falsch-positive Ergebnisse erzeugen. Ein falsches Positiv bezieht sich auf das Ergebnis eines Tests, der fälschlicherweise eine Schwachstelle anzeigt und die Bedrohung als Realität darstellt, obwohl sie es nicht ist. Das Tool meldet sie zwar zu Recht, da es sich in einigen Szenarien um eine echte Bedrohung handeln könnte, aber nur erfahrene Code-Analysten können erkennen, ob das Risiko auf ihre Situation zutrifft oder nicht. Falsch positive Meldungen können daher die Zuverlässigkeit und den Nutzen des DAST-Tools beeinträchtigen.

Eine weitere Einschränkung von DAST besteht darin, dass es nur Anfragen und Antworten analysiert, so dass andere verborgene Schwachstellen, wie beispielsweise Designprobleme, unentdeckt bleiben. DAST-Tools können auch nicht mit Quellcode oder nicht konformem Anwendungscode verwendet werden. Diese Einschränkung verzögert Sicherheitsmaßnahmen bis zu einem späteren Zeitpunkt im SDLC.

Die Identifizierung von Sicherheitsrisiken, nachdem eine Anwendung bereits in Betrieb ist, schafft auch für DAST Schwachstellen. In diesem Fall muss das für den Code verantwortliche Programmierteam wieder aktiviert werden und sich erneut mit dem Code vertraut machen, bevor es ihn beheben kann - ein zeitraubender Prozess.

DAST vs. SAST

Wie bereits erwähnt, wird DAST häufig zusammen mit SAST eingesetzt, da die beiden Tests verschiedene Bereiche umfassender Testmethoden abdecken und zusammen eine vollständigere Sicherheitsbewertung ermöglichen. DAST ist eine Black-Box-Sicherheitstestmethode und führt seine Analyse von außen durch, während SAST eine White-Box-Methode ist, die die Anwendung von innen untersucht.

SAST findet im Gegensatz zu DAST keine Laufzeitfehler, und DAST kann im Gegensatz zu SAST keine spezifischen Codierungsfehler bis hin zur Code-Zeilennummer aufzeigen. DAST umfasst operative Tests, während SAST den Quellcode untersucht und Vermutungen darüber anstellt, wo Sicherheitsrisiken bestehen könnten, oder Design- und Konstruktionsfehler entdeckt, die eine potenzielle Schwachstelle darstellen könnten.

SAST-Tools sind in der Lage, genau zu bestimmen, wo im Code eine Schwachstelle gefunden werden kann, was DAST-Tools nicht können. SAST ist zwar effizient, wenn es darum geht, einen Fehler in einer Codezeile zu finden, aber es kann nicht ohne weiteres Fehler im Datenfluss aufspüren. Außerdem ist die Wahrscheinlichkeit, dass SAST falsch-positive Ergebnisse liefert, größer, was es weniger zuverlässig macht als DAST-Tools.

Die Bedeutung von DAST

Mit der zunehmenden Nutzung von Anwendungen zur Optimierung von Websites steigt auch das Risiko von Cyberkriminalität. Die Sicherheit von Webanwendungen muss bereits in den frühen Phasen des SDLC eine Priorität werden. Unternehmen setzen DAST als Reaktion auf die wachsende Cyberkriminalität ein. Die von DAST-Tools durchgeführten Laufzeittests können Bedrohungen oder Schwachstellen aufspüren, die manchmal erst sichtbar werden, wenn eine Anwendung aktiv ist, und die Applikation erfolgreich gegen Angriffe von außen abschirmen.

Diese Definition wurde zuletzt im April 2024 aktualisiert

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit