Leitfaden
SAST-Tools im Vergleich: was sie finden und was sie übersehen
Was SAST-Tools leisten, wie sich acht verbreitete Tools in Ansatz, Sprachen und Lizenz unterscheiden und was statische Analyse in KI-generiertem Code übersieht.
· 9 Min. Lesezeit · Vom vetkit-Team


Was ein SAST-Tool ist
Ein SAST-Tool (Static Application Security Testing) liest Ihren Quellcode, ohne ihn auszuführen, und meldet Code, der verwundbar aussieht: Request-Daten, die in eine SQL-Abfrage gelangen, ein aus Nutzereingaben zusammengesetzter Shell-Befehl, eine deaktivierte Zertifikatsprüfung, ein schwacher Hash für Passwörter. Weil es nur den Quellcode braucht, kann es bei jedem Commit laufen, lange bevor die Anwendung deployt wird.
SAST ist eine von mehreren Arten von Sicherheitstests. SCA (Software Composition Analysis) prüft Ihre Abhängigkeiten auf bekannte Schwachstellen, Secret Scanning sucht nach committeten Zugangsdaten, und DAST (dynamisches Testen) prüft eine laufende Anwendung. Ein SAST-Tool tut nichts davon, deshalb kombinieren es die meisten Teams zumindest mit Abhängigkeits- und Secret-Scanning.
Wie sich SAST-Tools unterscheiden
Vier Unterschiede erklären das meiste von dem, was Ihnen auffällt, wenn Sie zwei Tools auf denselben Code ansetzen.
- Wie tief die Analyse geht. Pattern Matching findet Code, der einer bekannten schlechten Form ähnelt. Taint- oder Datenflussanalyse verfolgt einen Wert von seinem Eintrittspunkt (einem Request) bis zu seiner Verwendung (einer Abfrage). Werte über Funktionen und Dateien hinweg zu verfolgen, findet mehr echte Probleme, und meist unterscheiden sich genau hier kommerzielle von kostenlosen Editionen.
- Eine Sprache oder viele. Tools für eine Sprache kennen ihr Ökosystem gut. Mehrsprachige Tools liefern einen einzigen Bericht für eine gemischte Codebasis.
- Wo es läuft. Manche sind ein Befehl, den Sie lokal oder in der CI ausführen. Andere sind gehostete Plattformen, die sich mit Ihrer Versionsverwaltung verbinden und Dashboards, Kommentare in Pull Requests und Richtlinien hinzufügen.
- Ob Sie eigene Regeln schreiben können. Gut lesbare Regelformate machen es praktikabel, die eigenen Konventionen Ihres Teams abzubilden.
Acht SAST-Tools im direkten Vergleich
Das sind verbreitete Tools, innerhalb jeder Gruppe alphabetisch sortiert. Die Tabelle gibt wieder, was die eigene Dokumentation des jeweiligen Projekts sagt; sie ist kein Ranking, und wir haben keine Benchmarks zwischen ihnen durchgeführt.
| Tool | Ansatz laut Dokumentation | Sprachen | Lizenz | SARIF-Ausgabe |
|---|---|---|---|---|
| CodeQL (GitHub Code Scanning) | Erstellt aus dem Code eine Datenbank und führt semantische Abfragen darauf aus | C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust, Swift und GitHub-Actions-Workflows | CLI für öffentliche Repositorys kostenlos nutzbar; private Repositorys benötigen eine Lizenz für GitHub Code Security | Ja |
| Checkmarx One SAST | Erstellt einen Graphen aus Code-Elementen und Datenflüssen und führt Abfragen aus; eigene Abfragen werden unterstützt | Mehrsprachig, darunter Java, C#, C/C++, PHP, JavaScript/TypeScript, Python und Go | Kommerziell | Ja |
| Opengrep | Musterregeln mit Taint-Analyse; kompatibel mit Semgrep-Regeln | Über 30 Sprachen | Open Source, LGPL 2.1 | Ja |
| Semgrep | Musterregeln, die wie der Code aussehen, auf den sie passen. Die Community Edition analysiert innerhalb einer einzelnen Funktion oder Datei; das kommerzielle Semgrep Code ergänzt Analysen über Dateien und Funktionen hinweg | Über 30 Sprachen | Engine Open Source, LGPL 2.1; die AppSec Platform ist proprietär | Ja |
| Snyk Code | Semantische Analyse-Engine mit Datenfluss- und Taint-Analyse | Mehrsprachig, darunter Java/Kotlin, JavaScript/TypeScript, Python, Go, C#, PHP, Ruby und Swift | Kommerzieller gehosteter Dienst mit kostenlosem Tarif | Ja |
| SonarQube | Regeln für Codequalität und Sicherheit; Taint-Analyse für Injection-Regeln ist in SonarQube Server und Cloud verfügbar | Über 40 Sprachen und Frameworks, verteilt auf die Editionen | Community Build ist Open Source, LGPL 3.0; Server und Cloud sind kommerziell | Importiert SARIF aus anderen Tools |
| Bandit | Erstellt für jede Datei einen Syntaxbaum und führt Plugins darauf aus | Nur Python | Open Source, Apache 2.0 | Ja, mit einem optionalen Extra |
| gosec | Regeln auf dem Syntaxbaum, SSA-basierte Analyzer und Taint-Analyse | Nur Go | Open Source, Apache 2.0 | Ja |
Brakeman ist ein weiteres bekanntes Tool für ein einzelnes Framework, Ruby on Rails. Sein Repository beschreibt es als kostenlos für die nicht kommerzielle Nutzung unter einer eigenen Public-Use-Lizenz, prüfen Sie also die Bedingungen, bevor Sie es in einen kommerziellen Dienst einbauen.
Mehrere dieser Tools bieten inzwischen KI-gestützte Fixes oder Triage unter eigenen Namen an, zum Beispiel Copilot Autofix für CodeQL-Warnungen, Semgrep Multimodal, Snyk Agent Fix und SonarQube AI CodeFix. Namen, Editionen und Preise ändern sich in diesem Bereich häufig, lesen Sie also die aktuelle Seite jedes Herstellers, bevor Sie sich entscheiden.
Wie Sie wählen
- Eine Sprache, kleines Team. Beginnen Sie mit dem Tool für Ihren Stack (Bandit für Python, gosec für Go). Sie sind kostenlos, laufen schnell und lassen sich leicht in die CI einbinden.
- Gemischte Codebasis, Open Source gewünscht. Eine regelbasierte mehrsprachige Engine wie Opengrep oder die Semgrep Community Edition deckt viele Sprachen mit Regeln ab, die Sie lesen und erweitern können.
- Alles liegt auf GitHub. CodeQL über GitHub Code Scanning bringt Warnungen ohne zusätzlichen Dienst in Pull Requests. Siehe GitHub Advanced Security vs. vetkit.
- Sie brauchen tiefere dateiübergreifende Analyse, Dashboards und Richtlinien. Genau das verkaufen die kommerziellen Plattformen. Vergleichen Sie sie an Ihrem eigenen Code, nicht anhand von Funktionslisten. Siehe Semgrep vs. vetkit und Snyk vs. vetkit.
Egal wofür Sie sich entscheiden: Bevorzugen Sie ein Tool, das SARIF schreibt. Das ist das gemeinsame Format, mit dem Sie Befunde an GitHub Code Scanning oder ein anderes Dashboard senden und später das Tool wechseln können. Der SARIF-Leitfaden erklärt, wie das geht.
Was SAST übersieht
SAST findet unsichere Codemuster. Vieles, was in Software schiefgeht, besonders in Software, die schnell mit einem KI-Assistenten geschrieben wurde, ist kein Muster in einer einzelnen Datei.
| Problem | Warum SAST allein es nicht erkennt | Was hilft |
|---|---|---|
| Ein Paket, das nicht existiert oder letzte Woche registriert wurde | Die Import-Anweisung ist gültiger Code | Abhängigkeitsprüfungen gegen die öffentlichen Registrys |
| Committete Zugangsdaten | Die meisten SAST-Regeln betrachten das Verhalten des Codes, nicht Secret-Formate | Secret Scanning |
| Bekannte Schwachstellen in Abhängigkeiten | Der verwundbare Code liegt nicht in Ihrem Repository | Software Composition Analysis |
| Fehlende Autorisierung zwischen Nutzern | Der Code ist syntaktisch in Ordnung; die fehlende Regel steckt im Design Ihres Produkts | Review und ein Test mit zwei Konten |
| Unfertige Implementierungen oder Platzhalter | Kein Sicherheitsmuster | Checks für Codequalität und KI-Risiken sowie Review |
| Keine Timeouts, Abfragen in Schleifen, keine Fehlerberichte | Zuverlässigkeitsprobleme, außerhalb der meisten Sicherheitsregelsätze | Checks auf Produktionsreife |
| Falsch konfiguriertes Hosting oder falsche Datenbankberechtigungen | Die Einstellung steckt in einer Konsole, nicht im Quellcode | Prüfen der deployten Umgebung |
Deshalb ist ein sauberer SAST-Bericht nicht dasselbe wie Code, der bereit zur Auslieferung ist. Der Leitfaden dazu, was beim Vibe Coding schiefgeht und der Leitfaden zu erfundenen Paketen gehen die Fälle durch, die für KI-gestützten Code am wichtigsten sind.
Wo vetkit ins Spiel kommt
vetkit ist keine eigene SAST-Engine. Es ist ein Repository-Audit, das statische Analyse als einen Teil eines umfassenderen Berichts ausführt. Für Codesicherheit nutzt es Opengrep mit 663 eigenen Regeln, die im öffentlichen Check-Katalog aufgeführt sind, und ergänzt Bandit für Python und gosec für Go, wenn diese Checks ausgewählt sind. Drumherum führt es Secret Scanning, Prüfungen auf Schwachstellen in Abhängigkeiten und auf die Existenz von Paketen sowie Checks für Codequalität, KI-Code-Risiken und Produktionsreife aus und macht aus den Befunden nachverfolgbare Aufgaben. Befunde lassen sich als SARIF exportieren.
Wenn Sie bereits eines der oben genannten Tools nutzen und zufrieden sind, behalten Sie es. vetkit ist für die Zeilen der zweiten Tabelle nützlich und im Early Access mit einem kostenlosen Security Quick Scan verfügbar, der Secrets, bekannte Schwachstellen in Abhängigkeiten und grundlegende Sicherheitskonfiguration abdeckt.
Quellen
Die Aussagen zu anderen Tools haben wir am aus deren eigener Dokumentation oder deren Repositorys entnommen. Produkte ändern sich schnell, maßgeblich sind daher die eigenen Seiten des jeweiligen Projekts:
- Code Scanning mit CodeQL und Die CodeQL-CLI
- Checkmarx One SAST-Scanner
- Opengrep-Repository
- Semgrep Community Edition und AppSec Platform
- Dokumentation zu Snyk Code
- Was ist SonarQube und Repository von SonarQube Community Build
- Dokumentation zu Bandit
- gosec-Repository
- Brakeman-Repository
Produktnamen sind Marken ihrer jeweiligen Inhaber. vetkit ist mit ihnen weder verbunden noch wird es von ihnen unterstützt oder gesponsert; die Namen dienen nur zur Kennzeichnung der Tools. Etwas veraltet? Schreiben Sie an contact@vetkit.dev, und wir korrigieren es.