Wissen von A bis Z

Static Application Security Testing (SAST)

SAST ist der Sicherheitsbeauftragte, der den Bauplan prüft, bevor der erste Stein gelegt wird.

Static Application Security Testing (SAST) bezeichnet die automatische Analyse von Quellcode, Bytecode oder kompilierten Binärdateien auf bekannte Sicherheitsmuster — ohne dass der Code ausgeführt wird. SAST-Werkzeuge bauen einen Abstract Syntax Tree, einen Datenfluss- und Kontrollflussgraphen sowie häufig ein Inter-Procedural Call Graph auf und durchsuchen ihn nach Mustern wie ungeschützter String-Konkatenation in SQL-Abfragen (Injection), ungeprüften Eingaben in HTTP-Antworten (XSS), unsicheren kryptografischen APIs, Hard-coded Credentials, fehlerhaften Berechtigungschecks oder unsicherer Deserialisierung.

Eingesetzt wird SAST typischerweise in CI-Pipelines: Bei jedem Push oder Pull Request läuft ein SAST-Scan und meldet potenzielle Schwachstellen direkt im Repository, häufig integriert in das Pull-Request-Review. Bekannte Werkzeuge sind SonarQube und SonarCloud, Semgrep, GitHub CodeQL, Checkmarx SAST, Veracode, Coverity, Fortify, Snyk Code, Bandit (Python), Brakeman (Ruby on Rails), gosec (Go) sowie sprachspezifische Roslyn-Analyzer im .NET-Stack. Modernes SAST integriert sich tief in IDEs und liefert "Just-in-Time"-Hinweise während des Codings.

Dynamische Tests (DAST) finden nur Probleme, die sich zur Laufzeit zeigen; sie übersehen tote Codepfade und seltene Trigger. SAST hingegen kann auch Pfade analysieren, die selten oder nie ausgelöst werden — und ist damit komplementär zu DAST. Gleichzeitig sind False Positives ein typisches SAST-Problem: Werkzeuge melden potentielle Probleme, die in der konkreten Anwendung nicht ausnutzbar sind. Reife Praxis kombiniert SAST mit Triage-Prozessen, Suppression-Regeln und kontextbezogener Bewertung.

Historisch reicht statische Codeanalyse bis in die 1970er-Jahre zurück (lint, 1979) und wurde mit dedizierten Sicherheits-Werkzeugen wie Fortify (2003) und Coverity (2002) zu einer eigenständigen Disziplin. CodeQL — ursprünglich Semmle, von GitHub 2019 übernommen — hat die Idee semantischer Code-Abfragen popularisiert und ist heute zentraler Bestandteil von GitHub Advanced Security. Mit dem Aufstieg von "Software Supply Chain Security" und Standards wie der NIST SSDF (SP 800-218) und der Executive Order 14028 ist SAST ab 2021 in vielen Organisationen verbindlich.

Geprägt wurde SAST von Forschungsgruppen wie SEI/CERT, Coverity (gegründet aus Stanford-Forschung von Dawson Engler), Fortify und Semmle.

Zurück