SAST (Static Application Security Testing)
Was bedeutet SAST?
SAST (Static Application Security Testing) ist ein Prüfverfahren, das den Quellcode oder kompilierten Code einer Anwendung auf Sicherheitslücken untersucht, ohne das Programm auszuführen. Ein SAST-Tool erkennt bekannte Fehlermuster wie SQL-Injection oder Pufferüberläufe und nennt Datei, Zeile und betroffenen Code. Weil keine laufende Anwendung nötig ist, läuft SAST früh in der CI/CD-Pipeline, meist bei jedem Pull Request, solange der Entwickler den Code noch im Kopf hat.
Auch bekannt als: SAST · Static Application Security Testing · Statische Anwendungssicherheitstests · SAST-Scan
Ist SAST (Static Application Security Testing) bei Ihnen gerade ein Thema?
Wir fragen kurz, wie dringend das Thema bei Ihnen gerade ist. Je nach Antwort zeigen wir Ihnen direkt den passenden nächsten Schritt — ganz ohne Formular.
Wie funktioniert ein SAST-Scan?
Ein SAST-Scan übersetzt den Code zuerst in ein Modell, meist einen Syntaxbaum mit den Datenflüssen zwischen Funktionen. Gegen dieses Modell laufen Regeln. Eine verbreitete Regelart verfolgt Werte aus unsicheren Quellen, etwa einem HTTP-Parameter, bis zu einer gefährlichen Stelle wie einer Datenbankabfrage. Kommt der Wert dort ungeprüft an, meldet das Tool eine mögliche Injection. Andere Regeln suchen nach bekannten Mustern wie Pufferüberläufen in C-Code. Manche Werkzeuge brauchen dafür Code, der sich bauen lässt, samt Bibliotheken und Build-Anweisungen, und OWASP nennt genau das als häufige Hürde. Am Ende steht eine Liste von Befunden mit Regel, Schweregrad und Fundstelle, die die Pipeline als Report zum Build ablegt.
Was ist der Unterschied zwischen SAST und DAST?
SAST prüft den Code von innen, DAST (Dynamic Application Security Testing) die laufende Anwendung von außen. DAST schickt präparierte Anfragen an eine installierte Version, meist in Staging, und findet dabei, was im Quelltext nicht steht, etwa eine fehlerhafte Server-Konfiguration oder eine Anmeldung, die sich umgehen lässt. Die Fundstelle im Code kennt DAST dafür nicht. Das Secure Software Development Framework (SSDF) des US-Instituts NIST (National Institute of Standards and Technology) trennt beides ebenso, als Praktik PW.7 für die Analyse lesbaren Codes und PW.8 für Tests ausführbaren Codes. Eine dritte Prüfart ist SCA (Software Composition Analysis). Sie gleicht die eingebundenen Bibliotheken gegen bekannte Schwachstellen ab und lässt den eigenen Code aus. In einer DevSecOps-Pipeline laufen SAST und SCA im Build, DAST nach dem Deployment in Staging.
Die Schwäche von SAST sind Fehlalarme. OWASP nennt neben vielen False Positives, dass sich Prüfungen zu Authentifizierung und Zugriffsrechten schwer automatisieren lassen und Konfigurationsfehler oft unentdeckt bleiben, weil sie nicht im Code stehen. Ein Entwickler, der dreimal hintereinander einen Fehlalarm wegklicken muss, liest den vierten Befund nicht mehr. Das SSDF beschreibt statische Analyse deshalb zusammen mit einem Menschen, der die gemeldeten Befunde sichtet und behebt. In Deutschland empfiehlt das BSI in der Technischen Richtlinie TR-03185 zum sicheren Software-Lebenszyklus von 2024 eine automatische statische Codeanalyse als Teil der entwicklungsbegleitenden Tests und verweist dabei auf die IEC 62443-4-1, die Norm für die sichere Entwicklung industrieller Komponenten.
Für Steuerungscode nach IEC 61131-3 gibt es eigene statische Prüfwerkzeuge. CODESYS Static Analysis prüft in Version 5.2 vom April 2026 mehr als 100 Regeln, darunter die mögliche Nutzung einer nicht initialisierten Referenz. Welche Regeln für die Sicherheit einer Steuerung zählen, sammelt die Liste Top 20 Secure PLC Coding Practices von 2021, etwa Eingaben vom Bedienpanel in der Steuerung selbst zu prüfen und Speicherbereiche gegen Pufferüberläufe abzugrenzen. In der CI/CD-Pipeline gehört SAST in den Build, parallel zu Dependency- und Container-Scan. Ein Quality Gate blockiert neue Befunde ab einem festgelegten Schweregrad, den Altbestand arbeitet das Team im Backlog ab. So bleibt der Scan eingeschaltet, auch in einem Repository mit zehn Jahren Geschichte.
Der zusammengesetzte SQL-String im Pull Request
Ein Entwickler erweitert das Auswertungstool der Qualitätssicherung um eine Suche nach Seriennummern und baut die Eingabe direkt in den SQL-String ein. Der SAST-Schritt im Pull Request meldet eine mögliche SQL-Injection mit Datei und Zeile, wenige Minuten nach dem Push. Der Entwickler stellt auf eine parametrisierte Abfrage um, der Scan läuft grün, und der Reviewer sieht nur noch die korrigierte Fassung. Bis ins Produktivsystem ist die Lücke nie gekommen.
Ein Fehlalarm mit Begründung
Der Scanner meldet in einem Konfigurationsdienst eine mögliche Path-Traversal-Lücke, über die ein Angreifer Dateien außerhalb des vorgesehenen Verzeichnisses lesen könnte, weil ein Dateiname aus einer Anfrage in einen Pfad wandert. Die Reviewerin sieht, dass der Dienst den Wert vorher gegen eine feste Liste von drei Dateinamen prüft. Sie markiert den Befund im Code als Fehlalarm und schreibt die Begründung dazu. Fragt der Prüfer im nächsten Audit nach unterdrückten Befunden, steht die Antwort im Repository, mit Autorin, Datum und Begründung.
Die nicht initialisierte Referenz im Funktionsbaustein
In einem CODESYS-Projekt für eine Verpackungsmaschine greift ein neuer Funktionsbaustein über eine Referenz auf Rezeptdaten zu. Der Compiler übersetzt ihn ohne Meldung. Die statische Analyse meldet, dass die Referenz in einem Zweig ungesetzt bleiben kann, wenn noch kein Rezept geladen ist. Der Entwickler ergänzt die Prüfung auf eine gültige Referenz, bevor das Projekt auf den Teststand geht. An der Maschine wäre der Fehler erst beim ersten Rezeptwechsel in der Nachtschicht aufgefallen.
- Welche SAST-Tools gibt es?
- Verbreitete Werkzeuge mit kostenloser Variante sind Semgrep, SonarQube und CodeQL. Die Semgrep Community Edition steht unter LGPL-2.1 und analysiert laut Projekt nur innerhalb einer Funktion oder Datei, der SonarQube Community Build unter LGPL-3.0. CodeQL ist für öffentliche Repositories auf GitHub kostenlos, für private braucht es eine Lizenz für GitHub Code Security. Daneben gibt es kommerzielle Plattformen und spezielle Werkzeuge wie CODESYS Static Analysis für Steuerungscode. Wählen Sie nach den Sprachen in Ihrem Repository und danach, ob die Befunde dort ankommen, wo Ihre Entwickler arbeiten.
- Was hat SAST mit OWASP zu tun?
- OWASP, das Open Worldwide Application Security Project, ist eine gemeinnützige Stiftung für Software-Sicherheit, und ihre bekannteste Liste, die OWASP Top 10, sammelt die wichtigsten Risiken für Webanwendungen. In der Ausgabe 2025 steht Injection auf Platz 5, die Fehlerklasse, die SAST im Code direkt findet. Platz 3, Software Supply Chain Failures, betrifft die eingebundenen Komponenten und gehört eher zur SCA. Dazu pflegt OWASP eine Übersicht über Werkzeuge zur Quellcode-Analyse, ohne einzelne Anbieter zu empfehlen.
- Wann sollte SAST in der Pipeline laufen?
- Bei jedem Pull Request als schneller Scan der geänderten Dateien, dazu ein vollständiger Scan nachts oder vor jedem Release. So bekommt der Entwickler den Befund in Minuten, und der Vollscan findet, was erst im Zusammenspiel mehrerer Dateien sichtbar wird. Blockieren sollte das Gate anfangs nur neue Befunde ab einem festgelegten Schweregrad. Wer den Altbestand am ersten Tag zum Blocker macht, hat am zweiten Tag eine stehende Pipeline und ein Team, das nach dem Schalter zum Abschalten sucht.
- Ist SAST vorgeschrieben?
- Der Cyber Resilience Act nennt SAST nicht namentlich, verpflichtet Hersteller in Anhang I Teil II aber, die Sicherheit ihres Produkts regelmäßig und wirksam zu testen. Konkreter wird das BSI. Die TR-03185 empfiehlt eine automatische statische Codeanalyse als Teil der entwicklungsbegleitenden Tests, und das SSDF des NIST nennt Werkzeuge zur statischen Analyse als Beispiel für die Praktik PW.7. Im Audit ist der archivierte Scan-Report zu jedem Release der einfachste Beleg, dass der Code geprüft wurde.
Wo steht Ihr Team bei SAST (Static Application Security Testing)?
Uns interessiert, wo Ihr Team bei diesem Thema steht. Auf Basis Ihrer Antwort schlagen wir Ihnen den sinnvollsten nächsten Schritt vor — ganz ohne Formular.
Weiterführende Primärquellen zu SAST (Static Application Security Testing): Normtexte, Hersteller- und Projektdokumentation. Alle Ziele öffnen in einem neuen Tab.
- /01OWASPSource Code Analysis Tools(externe Seite, öffnet in neuem Tab)
Übersicht der OWASP über SAST-Werkzeuge mit ihren typischen Stärken und Schwächen und einer Liste freier und kommerzieller Tools.
- /02NISTSP 800-218, Secure Software Development Framework (SSDF) Version 1.1(externe Seite, öffnet in neuem Tab)
Rahmenwerk für sichere Softwareentwicklung, in dem die Praktiken PW.7 und PW.8 statische Code-Analyse und Tests ausführbaren Codes beschreiben.
- /03BSITR-03185 Sicherer Software-Lebenszyklus, Version 1.0(externe Seite, öffnet in neuem Tab)
Technische Richtlinie vom August 2024, die in der Anforderung PROD.DEV.F.2 eine automatische statische Codeanalyse empfiehlt.
- /04OWASPOWASP Top 10:2025(externe Seite, öffnet in neuem Tab)
Die aktuelle Liste der zehn wichtigsten Risikokategorien für Webanwendungen, mit Injection auf Platz 5.
- /05Top 20 Secure PLC Coding Practices ProjectSecure PLC Coding Practices: Top 20 List, Version 1.0(externe Seite, öffnet in neuem Tab)
Liste mit 20 Programmierregeln für sicheren SPS-Code vom Juni 2021, darunter Eingabevalidierung in der Steuerung und abgegrenzte Speicherbereiche.
Erstgespräch.
90 Tage zum Ergebnis.
Wir klären gemeinsam, wie Sie in 90 Tagen die ersten messbaren Industrial-DevOps-Erfolge erzielen.
Industrie · Automotive · Finance

