SAST – Static Application Security Testing
„Wir finden deine Bugs, bevor es die Hacker tun. Meistens."
Sinn & Zweck
SAST ist der paranoide Lektor deines Codes. Noch bevor eine einzige Zeile ausgeführt wird, durchkämmt SAST den Quellcode wie ein übermotivierter Deutschlehrer die Abituraufsätze – auf der Suche nach allem, was schiefgehen könnte.
Das Ziel: Sicherheitslücken finden, während der Code noch warm ist. Denn je früher man einen Bug findet, desto billiger ist er zu beheben. Und desto weniger muss man um 3 Uhr nachts einen Hotfix deployen.
Techniken
Pattern Matching
Der Klassiker. SAST-Tools suchen nach bekannten Anti-Patterns wie:
- SQL-Strings, die mit User-Input zusammengebaut werden
eval()mit dynamischen Parametern (aka "das Tor zur Hölle")- Hardcodierte Passwörter (ja,
password123zählt)
Datenflussanalyse (Taint Analysis)
Verfolgt den Weg von User-Eingaben durch den Code. Wenn unsanitierter Input in einer SQL-Query landet, schlägt das Tool Alarm – oder sollte es zumindest.
Kontrollflussanalyse
Untersucht alle möglichen Ausführungspfade. Findet Dead Code, unerreichbare Branches und diese eine Exception, die niemand fängt.
Semantische Analyse
Versteht (theoretisch) die Bedeutung des Codes. Erkennt komplexere Muster wie unsichere Kryptographie oder fehlerhafte Authentifizierungslogik.
Methoden & Implementierung
Integration in die CI/CD-Pipeline
# Beispiel: GitHub Actions mit SAST
- name: Run SAST
run: |
semgrep --config auto --error
# Wenn das fehlschlägt, geht kein Code in Production
Gängige Tools
| Tool | Sprachen | Preis | Sarkasmus-Level |
|---|---|---|---|
| SonarQube | Multi | Free/Enterprise | "Quality Gate failed" – der Klassiker |
| Semgrep | Multi | Free/Pro | Schnell, modern, weniger Drama |
| Checkmarx | Multi | Enterprise | Teuer, aber dein CISO liebt es |
| Fortify | Multi | Enterprise | Der Mercedes unter den SAST-Tools |
| Bandit | Python | Free | Für Python-Puristen |
| Brakeman | Ruby | Free | Rails-Entwickler schwören drauf |
Regelwerke & Standards
- OWASP Top 10 – Die Greatest Hits der Web-Vulnerabilities
- CWE (Common Weakness Enumeration) – Das Pokédex der Sicherheitslücken
- SANS Top 25 – Für die, denen 10 nicht genug sind
Risiken & Grenzen
False Positives – Der Junge, der "Wolf!" rief
SAST-Tools produzieren False Positives wie eine Kaffeemaschine Koffein. Nach dem 500. Fehlalarm ignorieren Entwickler die Warnungen – und übersehen den echten Bug.
False Negatives – Die unsichtbare Gefahr
Noch schlimmer: SAST findet nicht alles. Komplexe Business-Logik-Fehler, Race Conditions oder Konfigurationsprobleme? Fehlanzeige.
Kontextblindheit
SAST sieht nur Code, keine Runtime. Ein admin-Flag, das zur Laufzeit aus einer sicheren Quelle kommt? SAST weiß das nicht und warnt trotzdem.
Sprachunterstützung
Manche Tools unterstützen deine exotische Sprache nicht. "Oh, ihr nutzt Brainfuck? Viel Glück."
Performance-Killer
Bei großen Codebases kann ein vollständiger SAST-Scan Stunden dauern. Entwickler lieben es, auf ihre Pipeline zu warten.
Vorteile
Shift Left – Früh finden, früh fixen
Ein Bug in der Entwicklung zu fixen kostet 10€. In Production? 10.000€. Plus Reputation. Plus Schlaf.
Automatisierung
Einmal eingerichtet, läuft SAST bei jedem Commit. Kein Mensch muss sich den Code manuell ansehen – zumindest nicht für die offensichtlichen Probleme.
Konsistenz
SAST wendet Regeln konsistent an. Keine "Das habe ich übersehen"-Ausreden mehr. Der Code wird jedes Mal gleich geprüft.
Compliance-Dokumentation
Auditoren lieben Reports. SAST liefert Reports. Auditoren sind glücklich. Alle gewinnen.
Entwickler-Schulung
Jede SAST-Warnung ist eine Mini-Lektion. "Aha, deshalb soll ich prepared Statements benutzen."
Best Practices
- Tuning ist Pflicht – Nimm dir Zeit, False Positives auszusortieren
- Inkrementelle Scans – Scanne nur geänderte Dateien für schnellere Feedback-Loops
- Quality Gates definieren – Keine kritischen Findings = kein Merge
- Entwickler einbinden – SAST ist ein Werkzeug, kein Ersatz für Security-Bewusstsein
- Regelmäßig aktualisieren – Neue Vulnerabilities = neue Regeln nötig
Fazit
SAST ist wie ein Rauchmelder: Er piept oft grundlos, aber wenn's wirklich brennt, bist du froh, dass er da ist. Kein Allheilmittel, aber ein unverzichtbarer Baustein jeder Security-Strategie.
Und denk dran: Der beste Code ist der, den SAST nie sehen musste – weil er gar nicht erst geschrieben wurde.
Weiterführende Ressourcen: