SAST – Static Application Security Testing

Von Boris Sander27. Oktober 2025
SAST – Static Application Security Testing

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, password123 zä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

ToolSprachenPreisSarkasmus-Level
SonarQubeMultiFree/Enterprise"Quality Gate failed" – der Klassiker
SemgrepMultiFree/ProSchnell, modern, weniger Drama
CheckmarxMultiEnterpriseTeuer, aber dein CISO liebt es
FortifyMultiEnterpriseDer Mercedes unter den SAST-Tools
BanditPythonFreeFür Python-Puristen
BrakemanRubyFreeRails-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

  1. Tuning ist Pflicht – Nimm dir Zeit, False Positives auszusortieren
  2. Inkrementelle Scans – Scanne nur geänderte Dateien für schnellere Feedback-Loops
  3. Quality Gates definieren – Keine kritischen Findings = kein Merge
  4. Entwickler einbinden – SAST ist ein Werkzeug, kein Ersatz für Security-Bewusstsein
  5. 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: