Julian Totzek-Hallhuber

ist Solution Architect bei Veracode

SicherheitSicherheitsmanagement

Statische vs. dynamische Analysen

0 0 Keine Kommentare

Schwachstellen in Web-Anwendungen und Anwendungscodes sind Einfallstore für Cyber-Kriminelle. Mittlerweile gibt es viele verschiedene Testmethoden auf dem Markt, die solche Sicherheitslecks aufdecken sollen – doch welches Verfahren findet Fehler am besten? fragt sich Julian Totzek-Hallhuber von Veracode.

Ein Cyber-Krimineller hat generell drei Wege zur Auswahl, um an die digitalen Daten eines Unternehmens zu gelangen: Netzwerk, Hardware oder Software. Obwohl die Hälfte aller Hackerangriffe über die Software stattfinden, das heißt über die Unternehmensanwendungen, testen nur zehn Prozent der Unternehmen die Sicherheit der von ihnen eingesetzten Apps. Dabei existieren heutzutage eine Vielzahl von Testverfahren, um die Anwendungssicherheit zu überprüfen. Ganz oben auf der Liste stehen statische und dynamische Analysemethoden.

Das Binary-Static-Analysis-Verfahren (White Box Testing) kann ohne Zugang zum Quellcode Anwendungen auf Sicherheitsschwachstellen analysieren. Als Basis für eine sichere Anwendungsentwicklung bildet sie oft den ersten Schritt in der Test-Infrastruktur. Die statische Binäranalyse liefert ein umfassendes Testergebnis über die Sicherheit von Anwendungen. Die daraus gewonnenen Informationen helfen den Entwicklern nicht nur bei der Behebung von Problemen, sondern schulen sie auch gleichzeitig in der sicheren Software-Entwicklung.

Im Gegensatz zur statischen Analyse identifiziert das Dynamic-Application-Security-Testing (Black Box Testing) Schwachstellen in der Architektur der Web-Anwendungen – und das, bevor Cyber-Kriminelle diese entdecken und ausnutzen können. Bei der dynamischen Analyse versetzt sich der Tester in die Rolle eines Angreifers, der auf der Suche nach möglichen Angriffszielen ist. Dazu führt er automatisiert Attacken auf kritische Webanwendungen wie Formulare oder Online-Shops durch. Die Schwachstellen, die er damit aufdeckt, liegen außerhalb des Anwendungscode-Kontextes. Dennoch haben sie einen starken Einfluss auf die Betriebslaufzeit einer Anwendung. Das kann dazu führen, dass private Web-Anwendungsressourcen, wie beispielsweise Konfigurationsdateien, leaken oder auf den Betrieb über einen unsicheren Kanal herunterstufen.

Aufgrund der unterschiedlichen Ansatzpunkte eignet sich nicht jedes Analyseverfahren für jede Art von Schwachstelle. Beide Technologien weisen deshalb unterschiedliche Schwachstellenhäufigkeiten (Prävalenzen) sowie Vor- und Nachteile für Unternehmen auf. Dynamische Analyseverfahren suchen die Angriffsfläche einer Anwendung ab und analysieren sie. Sie sind dabei in der Lage, Schwachstellen in der Deployment und Server-Konfiguration aufzuspüren. Um eine hohe Code-Abdeckung zu gewährleisten, benötigen die Tests allerdings genügend Zeit. Diese kürzen Unternehmen beispielsweise oft aus Kostengründen, sodass die entdeckten Schwachstellen die wirkliche Situation nicht komplett abbilden.

Statische Analysen bieten Informationen zur Qualität eines Anwendungscodes. Eine niedrige Codequalität sowie Schwachstellen in den Codes, wie beispielsweise Carriage-Return-Line-Feed-Injektionen (CRLF) oder Time-and-State-Fehler, sind dabei meist einfach zu beheben. Daher weisen statische Analysen eine höhere Fixrate (64 Prozent) auf als dynamische Analysen (50 Prozent), denn Entwickler reparieren mehr statische als dynamische Leaks. Beide Analyseverfahren stoßen jedoch bei nicht-automatisierten, firmeneigenen Workflows an ihre Grenzen. Schließlich benötigen solche Testmethoden Zugriff auf Datenbanken und Dateisysteme, um verwertbare Ergebnisse liefern zu können.

Trotz der zu 28 Prozent höheren Fixrate sollten sich Unternehmen beim Thema Anwendungssicherheit nicht alleine auf statische Analysen verlassen. Die Frage sollte also nicht lauten, welche der beiden Analyseverfahren besser Fehler findet. Sie sollte vielmehr in die Richtung gehen, inwiefern sich statische und dynamische Analysen ergänzen können. Die Wahl des richtigen Analyse-Tools hängt letztendlich vom Anwendungsgebiet und der Entwicklungsphase ab. Um Schwachstellen in einer schon bestehenden Anwendung zu finden, können Unternehmen eine dynamische Analyse durchführen. Für Anwendungen, die sich noch in der Entwicklung befinden, empfiehlt sich eine statische Analyse. Bei all diesen Testverfahren dürfen Unternehmen allerdings eines nicht vergessen: Mit den Tools können sie zwar Schwachstellen identifizieren, das Reparieren ist jedoch ein weiterer Schritt, um sichere Anwendungen zu garantieren. Weitere Details bietet der Statusbericht zur Softwareentwicklung: Anwendungsentwicklungsumfeld von Veracode.

Veracode stellt die am häufigsten verwendete cloud-basierte Plattform zur Verfügung, um Web- und Mobilanwendungen sowie Applikationen von Drittanbietern zu schützen. Damit will Veracode Unternehmen weltweit helfen, Innovationen schneller auf den Markt zu bringen, ohne dabei auf Sicherheit verzichten zu müssen.