What is Dynamic Code Analysis?

Organisationen wenden verschiedene Methoden an, um potenziell ausnutzbare Schwachstellen in ihrer Software zu identifizieren. Beispielsweise ist die statische Codeanalyse eine Form des White-Box-Tests, mit deren Hilfe Sicherheitsprobleme im Quellcode identifiziert werden können. Andererseits ist die dynamische Code-Analyse eine Form des Black-Box- Schwachstellen-Scannens , die es Softwareteams ermöglicht, laufende Anwendungen zu scannen und Schwachstellen zu identifizieren.

Bei richtiger Implementierung kann die dynamische Codeanalyse die mittlere Identifikationszeit (MTTI) für Produktionsvorfälle verkürzen, die Sichtbarkeit von Anwendungsproblemen verbessern und die allgemeine Sicherheitslage eines Projekts erhöhen. Hier werfen wir einen genaueren Blick auf die dynamische Codeanalyse.

CloudGuard AppSec Kostenlose Testversion

What is Dynamic Code Analysis?

What is Dynamic Code Analysis?

Die dynamische Codeanalyse – auch Dynamic Application Security Testing (DAST) genannt – dient dazu, eine laufende Anwendung auf potenziell ausnutzbare Schwachstellen zu testen. DAST-Tools zur Identifizierung von Schwachstellen sowohl zur Kompilierungszeit als auch zur Laufzeit, wie z. B. Konfigurationsfehler, die nur innerhalb einer realistischen Ausführungsumgebung auftreten.

 

Ein DAST-Tool verwendet ein Wörterbuch bekannter Schwachstellen und böswilliger Eingaben, um eine Anwendung zu „verwirren“. Beispiele für diese potenziell böswilligen Eingaben sind:

 

  • SQL-Abfragen (zur Identifizierung von SQL-Injection-Schwachstellen)
  • Lange Eingabezeichenfolgen (um Pufferüberlauf-Schwachstelle auszunutzen)
  • Negative und große positive Zahlen (zur Erkennung von ganzzahligen Überlauf- und Unterlauf-Schwachstellen)
  • Unerwartete Eingabedaten (um ungültige Annahmen der Entwickler auszunutzen)

 

Während die Anwendung ausgeführt wird, wird sie mit diesen potenziell schädlichen Eingaben bombardiert und das DAST-Tool analysiert die Antworten der Anwendung. Wenn die Anwendung auf eine Eingabe negativ reagiert (z. B. Absturz, Rückgabe einer ungültigen Antwort usw.), zeichnet das DAST-Tool die identifizierte Schwachstelle auf.

 

Da DAST-Tools auf einer laufenden Anwendung ausgeführt werden, können sie eine Vielzahl potenzieller Schwachstellen erkennen. Dazu gehören Schwachstellen, die im Quellcode nur schwer oder gar nicht zu erkennen sind, wie zum Beispiel Probleme bei der Speicherbelegung.

DAST und der Secure Software Development Lifecycle

Der Software Development Lifecycle (SDLC) bildet die Phasen des Softwareentwicklungsprozesses ab. Dies umfasst alles von der anfänglichen Planung und Anforderungsermittlung für eine Anwendung bis hin zur langfristigen Wartung und dem eventuellen Ende ihrer Lebensdauer.

 

DAST kommt normalerweise in der Testphase des SDLC ins Spiel. Dies liegt daran, dass DAST die Fähigkeit erfordert, die Anwendung auszuführen und mithilfe simulierter böswilliger Eingaben zu testen. Sobald der Code der Anwendung erstellt und in einer Test- oder Staging-Umgebung bereitgestellt werden kann, können Sie DAST verwenden. Bei Workflows für kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) kann dies bedeuten, dass DAST-Scans mehrmals täglich ausgeführt werden, wenn iterative Builds stattfinden.

 

In vielen Sicherheitsprogrammen für Unternehmenssoftware erfolgt DAST nach Penetrationstests, für die keine interne Sicherheitsexpertise erforderlich ist. Beispielsweise kann ein Sicherheitsteam nach einem Pentest zur Erfüllung der PCI DSS-Anforderungen (Payment Card Industry Data Security Standard) ein DAST-Tool verwenden, um automatisierte Sicherheitsscans durchzuführen.

Unterschiede zwischen statischer und dynamischer Codeanalyse

Statische und dynamische Codeanalyse sind zwei der häufigsten Formen der Anwendungssicherheitsprüfung. Sie verfolgen unterschiedliche Ansätze zur Identifizierung von Schwachstellen und ergänzen sich häufig.

 

Im Gegensatz zur dynamischen Codeanalyse erfordert die statische Codeanalyse – auch Static Anwendung Security Testing (SAST) genannt – keinen Zugriff auf eine vollständige ausführbare Datei. Stattdessen verfolgt es einen White-Box-Ansatz und untersucht den Quellcode der Anwendung auf Schwachstellen. Durch die Erstellung eines Modells des Ausführungsflusses der Anwendung und die Anwendung von Regeln auf dieses Modell kann SAST Injektionen, Pufferüberläufe und ähnliche Schwachstellen erkennen.

 

Da DAST und SAST unterschiedliche Testmethoden anwenden und auf unterschiedliche Dateitypen (kompilierte ausführbare Dateien vs. Quellcode) angewendet werden, erkennen sie unterschiedliche Arten von Schwachstellen und werden in unterschiedlichen Phasen des Entwicklungsprozesses angewendet. SAST kann früher im SDLC (während der Entwicklungsphase) angewendet werden als DAST, da es nicht erfordert, dass die Anwendung abgeschlossen wird, um Schwachstellen zu identifizieren.

Warum dynamische Codeanalyse von entscheidender Bedeutung ist

Die dynamische Codeanalyse kommt dann zum Einsatz, wenn eine Anwendung weitgehend vollständig ist und ausführbar ist. Es nutzt böswillige Eingaben, um realistische Angriffe auf die Anwendung zu simulieren und deren Reaktionen zu beobachten.

 

Einer der Hauptvorteile von DAST-Tests besteht darin, dass damit das Verhalten einer Anwendung in einer realistischen Bereitstellungsumgebung simuliert werden kann. Dadurch kann der Tester Konfigurationsprobleme und andere Schwachstellen identifizieren, die möglicherweise nur sichtbar sind, wenn der Code aktiv ist. Darüber hinaus ermöglicht der Einsatz simulierter realer Angriffe, die Auswirkungen eines potenziellen Exploits auf den Zustand der Anwendung zu erkennen. Das DAST-Tool kann auch Schwachstellen in Abhängigkeiten und Bibliotheken von Drittanbietern erkennen, die die Sicherheit der Anwendung beeinträchtigen, von SAST und ähnlichen quellcodeorientierten Tools jedoch möglicherweise übersehen werden.

 

Check Point CloudGuard bietet Schwachstelle-Scanning für Cloud-basierte serverlose und containerisierte Anwendungen. Dazu gehört die Unterstützung des DAST- und SAST-Schwachstellen-Scans, um die Identifizierung und Behebung von Schwachstellen während des Entwicklungsprozesses zu erleichtern. Vereinbaren Sie eine Demo , um die Möglichkeiten der CloudGuard-Lösungen für serverlose Anwendungen in Aktion zu sehen. Sie können auch gerne eine kostenlose Testversion anfordern, um zu sehen, wie es in den Entwicklungsworkflow Ihres Unternehmens integriert werden kann.

×
  Feedback
Diese Website verwendet Cookies für ihre Funktionalität sowie für Analyse- und Marketingzwecke. Durch die weitere Nutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Für weitere Informationen lesen Sie bitte unseren Hinweis zu Cookies.
OK