Dynamic & Static Application Security Testing

Die besten DAST- & SAST-Tools

Tools für Dynamic und Static Application Security Testing unterstützen Entwickler dabei, Code-Fehler und Sicherheitslücken schneller zu erkennen.
Von  und
CSO | 07. September 2022 06:04 Uhr
Tools für Dynamic und Static Application Security Testing helfen Entwicklern, ihren Quellcode zu härten. Wir zeigen Ihnen die besten Tools zu diesem Zweck.
Tools für Dynamic und Static Application Security Testing helfen Entwicklern, ihren Quellcode zu härten. Wir zeigen Ihnen die besten Tools zu diesem Zweck.
Foto: Chim - shutterstock.com

Die Softwarelieferkette - respektive ihre Schwachstellen - haben in den vergangenen Monaten für viel Wirbel gesorgt. Bestes Beispiel ist der Angriff auf den IT-Dienstleister SolarWinds, bei dem mehr als 18.000 Kundenunternehmen betroffen waren. Zwar war die Attacke beileibe nicht die einzige auf Softwarelieferketten - sie führte jedoch zu einer Neubewertung der Frage, wer für die Sicherheit verantwortlich zeichnet.

Eine Reaktion auf den SolarWinds-Angriff war beispielsweise US-Präsident Bidens "Executive Order on Improving the Nation's Cybersecurity". Der Erlaß hebt nicht nur hervor, wie bedeutsam die Absicherung der Lieferketten ist, sondern stellt auch ausdrücklich die Verantwortung der Entwickler heraus, wenn es darum geht, sichere Software zu liefern. Zwar gilt die Anordnung ausschließlich für US-Regierungsbehörden und deren Geschäftspartner. Sie steht jedoch stellvertretend dafür, dass alle beteiligten Organisationen ihre Softwareanbieter überprüfen müssen, um sicheren Code bereitzustellen - unabhängig davon, ob ein Unternehmen nur Programme und Anwendungen für sich selbst entwickelt oder Teil der Softwarelieferkette Dritter ist.

Das größte Problem dabei: Softwareentwickler wurden viele Jahre lang nahezu ausschließlich danach beurteilt, wie schnell sie programmieren können. Security war dabei entweder ein nachgelagerter Gedanke oder der Verantwortungsbereich Anderer. Zwar bilden sich viele Entwickler inzwischen in Sachen Cybersecurity fort, sie brauchen jedoch Hilfe, um sicherzustellen, dass ihr Code frei von Sicherheitslücken ist. Dazu können Tools für Dynamic Application Security Testing (DAST) und Static Application Security Testing (SAST) einen wertvollen Beitrag leisten.

DAST- & SAST-Tools - was ist das?

Es ist nicht überraschend, dass sowohl SAST- als auch DAST-Tools in Zusammenhang mit der Absicherung von Softwarelieferketten wieder an Bedeutung gewinnen. Schließlich geben sie den Entwicklern die Werkzeuge an die Hand, um sicheren Code bereitzustellen - entweder als Teil eines offiziellen DevSecOps-Programms oder um die Verantwortung für die Security näher an den Ort der Anwendungsentwicklung zu verlagern. Sowohl SAST- als auch DAST-Tools haben das Ziel, den Code sicherer zu machen. Im Idealfall geschieht das lange bevor eine Anwendung in eine Produktionsumgebung gelangt und Teil der Softwarelieferkette wird. Dabei verfolgen die Tools dasselbe Ziel, gehen das Problem aber aus unterschiedlichen Blickwinkeln an:

  • SAST-Tools analysieren den Quellcode von Programmen und Anwendungen, die sich noch in der Entwicklung befinden. Sie lassen sich in eine CI/CD-Pipeline integrieren oder so konfigurieren, dass sie automatisch aktiv werden, wenn ein Entwickler eine Pull-Anfrage stellt. So können Tools für Static Application Security Testing sicherstellen, dass mit neuen Änderungen an einer Anwendung nicht unbeabsichtigt Schwachstellen hinzugefügt werden oder anderweitige Fehler entstehen. Einige SAST-Tools können auch Teil integrierter Entwicklungsumgebungen (IDE) werden. In diesem Fall warnt die Plattform die Entwickler während der Programmierarbeit vor Fehlern - ähnlich wie eine moderne Textverarbeitung mit Rechtschreibprüfung.

  • DAST-Tools werden im Gegensatz dazu eingesetzt, nachdem eine Applikation kompiliert ist. Ein Tool für Dynamic Application Security Testing ist weniger dazu gedacht, Schwachstellen im Code aufzudecken (die ein SAST Tool im Idealfall bereits beseitigt hat), sondern fungiert als externer Tester, der versucht, ein Programm beispielsweise über offene http- oder HTML-Schnittstellen zu hacken. Einige DAST-Tools können auch konfiguriert werden, um nach Schwachstellen für gängige Angriffe in bestimmten Branchen wie dem Finanzwesen oder dem Einzelhandel zu suchen.

Wegen der genannten Unterschiede müssen SAST-Tools die von Ihnen gewählte Programmiersprache unterstützen. Das Gros der DAST-Tools erfordert das nicht, obwohl diese Tools unter Umständen auch mit Quellcode arbeiten können, um Probleme zu lokalisieren. Während einige Unternehmen entweder ausschließlich ein DAST- oder ein SAST-Tool verwenden, empfiehlt es sich, eine Kombination aus beiden einzusetzen oder mit einem Tool zu arbeiten, das beide Komponenten enthält. Unternehmen, die das tun, sind in der Lage, ihre Applikationen besser zu schützen, was der Sicherheit der Softwarelieferkette insgesamt zuträglich ist.

Dynamic Application Security Testing Tools: Top 4

Im Folgenden finden Sie einige der wichtigsten DAST- und SAST-Tools, die heute zum Einsatz kommen.

1. Acunetix DAST

Die Acunetix DAST-Plattform nutzt DAST und IAST (Interactive Application Security Testing), um nach über 7.000 Schwachstellen in fertigem Code, Website-Designs oder Anwendungen zu suchen. Bei IAST wird der Scan- und Testcode in ein kompiliertes Programm eingebettet, ähnlich wie bei Debug-Symbolen. Somit kann Acunetix seine Scans starten, während ein Programm aktiv ausgeführt wird. auf diese Weise werden potenziell mehr Schwachstellen aufgedeckt als bei der Untersuchung einer Anwendung im Ruhezustand. IAST sollte auch die Zahl der Fehlalarme (im Vergleich zu SAST) verringern.

Der Code für die Plattform ist aus Speed-Gründen in C++ geschrieben. Dabei exportiert die Plattform bis zu 90 Prozent ihrer Ergebnisse bereits, während der Scan noch nicht einmal zur Hälfte abgeschlossen ist. Die Benutzer können die Acunetix-Plattform so konfigurieren, dass sie einmalig ausgeführt wird oder Zeitpläne für wiederholte Tests im Laufe der Zeit einrichten. Und weil die Plattform so schlank ist, kann sie sogar mehrere Umgebungen gleichzeitig scannen, ohne dabei an Geschwindigkeit einzubüßen.

2. Micro Focus Fortify WebInspect

Die Fortify-WebInspect-Plattform von Micro Focus ist als On-Premises-Installation, als Service oder als Kombination aus beidem innerhalb einer hybriden Umgebung verfügbar. Obwohl es als isoliertes DAST-Tool arbeitet, lässt es sich in CI/CD-Pipelines integrieren und kann auch von Entwicklern genutzt werden, die normalerweise nur SAST-Tools verwenden.

Das Micro-Focus-Tool kann auch nur nach besonders kritischen Schwachstellen suchen und die Entwickler so vor schwerwiegenden Fehlern warnen, damit diese schon lange vor Bereitstellung behoben werden. Darüber hinaus ist dieses DAST-Tool auch in der Lage zu prüfen, ob der Code im Einklang mit staatlichen Regularien steht (NIST 800-53, PCI DSS, OWASP, HIPAA, etc.). Wird eine Schwachstelle entdeckt, visualisiert die Plattform das Problem mit einer grafischen Oberfläche und unterbreitet iterative Lösungsvorschläge.

3. Synopsys Managed DAST

Wie der Name nahelegt, ist die DAST-Plattform von Synopsis als Managed Service verfügbar. Dadurch entfällt nicht nur interne Wartung und Management - Synopsis steht bei Bedarf auch mit Rat und Tat zur Seite, beispielsweise wenn der DAST-Scan ein Problem aufwirft, mit dem das Entwicklungsteam überfordert ist,

Das Synopsys Tool deckt nicht nur alle gängigen Schwachstellen auf, die viele Programme plagen (etwa SQL-Injection oder Cross-Site-Scripting), sondern verfügt auch über einen manuellen Scan-Modus, mit dem Sie auch komplexeren Problemen gezielt auf dioe Spur kommen. Auch Sicherheitslücken in Zusammenhang mit Authentifizierungs-, Zugriffskontroll- und Session-Management-Fehlern, die bei herkömmlichen Scans nicht auftauchen, findet das DAST -Tool.

4. Tenable.io Web App Scanning

Tenable ist unter den Sicherheitsanbietern eine Art Urgestein und ist in erster Linie für seine robuste, Cloud-basierte Vulnerability-Management-Plattform bekannt. Web App Scanning ist ein Teil dieser Plattform und fungiert als leistungsfähiges DAST-Tool.

Die Tenable-App arbeitet nur mit Webanwendungen, führt aber einen tiefgehenden Scan durch, der sowohl HTML5 als auch Standard-HTML und AJAX abdeckt. Die App verfügt über eine simple Benutzeroberfläche, die auch für Teams zugänglich ist, die ohne Application-Security-Spezialisten auskommen müssen. Automatisierungen sind einfach einzurichten und die Benutzer können genau konfigurieren, welche Abschnitte des Programmcodes gescannt werden sollen. Davon abgesehen lässt sich der Web App Scanner auch als Standalone-Lösung verwenden - oder in eine andere Cybersecurity-Lösung von Tenable integrieren.

Static Application Security Testing Tools: Top 5

1. Checkmarx SAST

Das SAST-Programm von Checkmarx kombiniert fortschrittliche Funktionen mit einer der besten webbasierten Benutzeroberflächen für SAST-Tools. Die Benutzeroberfläche ermöglicht es auch Security-Unkundigen, sich zurechtzufinden. Checkmarx identifiziert nicht nur Schwachstellen, sondern erklärt auch, warum eine entdeckte Schwachstelle besonders riskant ist. Zudem erhalten Entwickler Tipps, wie die gefundenen Probleme am einfachsten und effektivsten beseitigt werden können.

Standardmäßig unterstützt das Checkmarx-Tool über 25 Programmiersprachen. Zudem lässt sich die Anwendung so konfigurieren, dass sie automatisch als Teil einer CI/CD-Pipeline ausgeführt wird. Natürlich dürfen Sie auch benutzerdefinierte Abfragen einrichten und nach Bedarf ausführen und das Tool in alle gängigen IDE- oder Quellcode-Management-Plattformen integrieren.

2. CyberRes Fortify

Sowohl SAST- als auch DAST-Elemente kombiniert die Fortify-Plattform von CyberRes. Als SAST-Produkt verwendet es eine übersichtliche, visuelle Schnittstelle, um Entwicklern die spezifischen Schwachstellen im Code (und Statistiken über die Art der regelmäßig aufgedeckten Schwachstellen) aufzuzeigen, die in 810 verschiedene Schwachstellenkategorien unterteilt sind. Anschließend werden die Entwickler zu einer Schulungsoberfläche weitergeleitet, die laut Anbieter interessante und unterhaltsame Lektionen über Security und sicheren Code bereithalten soll.

Die Plattform unterstützt 27 Programmiersprachen und Frameworks und kann On-Premises oder als Service eingesetzt werden. Zudem lässt sie sich in die meisten gängigen IDEs wie Eclipse und Visual Studio integrieren.

3. Perforce Klocwork SAST

Das SAST-Tool Klocwork setzt den Fokus auf Geschwindigkeit - selbst in den größten Umgebungen. Es funktioniert mit Anwendungen, die in C, C++, Java, JavaScript und Python kodiert sind - sogar innerhalb von Docker-Containern - und kann in jede größere IDE wie Visual Studio Code, IntelliJ und viele andere integriert werden. Laut Anbieter wurde Klocwork entwickelt, um ein SAST-Tool für komplexe Umgebungen zu realisieren.

Mit Klocwork können Anwender riesige Codebasen scannen, die Millionen von Zeilen beinhalten. Um die Scan-Dauer zu verkürzen, werden beispielsweise nur die geänderten Codebereiche gescannt und nicht jedes Mal das gesamte Programm. Darüber hinaus hilft das SAST-Tool dabei, Entwickler in Sachen Security zu schulen: Es ist vollständig in die Schulungsplattform Secure Code Warrior integriert, die sich auf Sicherheits- und Awareness-Schulungen konzentriert.

4. Spectral SpectralOps-Plattform

Check Point hat vor kurzem Spectral übernommen, aber das neue Unternehmen unterstützt weiterhin aktiv die SpectralOps-Plattform, wahrscheinlich auch wegen ihrer einzigartigen SAST-Funktionen. SpectralOps findet sensible Informationen wie API-Schlüssel, Anmeldeinformationen und Token, die Entwickler bei der Entwicklung von Programmen oft fest einkodieren. Die Idee dahinter: Fehlkonfigurationen aufzudecken, die den Zugriff auf geheime Informationen ermöglichen könnten, während sich ein Programm noch in der Entwicklung befindet.

SpectralOps scannt kontinuierlich jeden Schritt im Lebenszyklus der Softwareentwicklung und nutzt Künstliche Intelligenz, um über 2.000 Erkennungs-Engines im Auge zu behalten. Um Fehlalarme in Zaum zu halten, finden auch nachgelagerte Tests statt. Im Anschluss kann das Tool seine Ergebnisse an Slack melden, ein Jira-Ticket ausstellen oder Entwickler über fast jede beliebige Kommunikationsplattform alarmieren.

5. Veracode Static Analysis SAST

Die SAST-Plattform von Veracode ist ein Cloud Service - die komplexe Wartung einer SAST-Anwendung in Ihrer Umgebung entfällt damit. Sicherheitsanbieter Veracode arbeitet nach dem Prinzip des Just-in-Time-Learnings. Das bedeutet, anfälliger Code kann bereits bei der Programmierarbeit erkannt werden. Ist der Code korrigiert, erstellt die Veracode-Plattform ein Reporting, so dass Unternehmen sicherheitsbewusste Entwickler fördern und ermutigen können.

Neben der Integration in eine IDE liegt der Schwerpunkt von Veracode auf Geschwindigkeit: Jeder Build eines Programms oder einer Anwendung kann automatisch gescannt werden, wobei die durchschnittliche Scan-Zeit bei lediglich 90 Sekunden liegt. Dabei wird durchgängig jede Aktion erfasst, was wiederum Audits erleichtert.

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.

John Breeden II ist Journalist mit mehr als 20 Jahren Erfahrung im Technologieumfeld und CEO von Tech Writers Bureau.
Florian Maier beschäftigt sich mit vielen Themen rund um Technologie und Management. Daneben betätigt er sich auch in sozialen Netzen.