Tools/Sicherheit & Compliance
Semgrep: statische Analyse, die in einen Pull Request passt
Semgrep parst über 30 Sprachen und gleicht YAML-Muster in Sekunden ab, die Engine steht unter LGPL-2.1. Cross-file-Analyse, Regelsätze und KI-Triage liegen hinter den bezahlten Stufen.
- Art
- Static analysis with AI rules
- Preis
- Free · from $30 per seat
Balázs Csorba··10 Min. Lesezeit
- SAST
- Static analysis
- CI security
- Rule authoring
- AppSec

Das Wichtigste in Kürze
- Die Semgrep-Engine steht unter LGPL-2.1 und analysiert über 30 Sprachen offline; Cross-file-Analyse braucht eine proprietäre Binary und ein Konto.
- Die kostenlose Stufe umfasst 10 Mitwirkende und 10 private Repositories und zählt Mitwirkende über einen rollierenden 90-Tage-Zeitraum im git log.
- Seit dem 13. Dezember 2024 tragen die von Semgrep gepflegten Regeln die Semgrep Rules License v1.0, die Weitergabe und Dienstnutzung verbietet; OpenGrep ist der LGPL-Fork, der darauf antwortet.
- Die Cross-file-Analyse fällt nach 5 GB Speicher oder drei Stunden still auf Einzeldatei-Analyse zurück, ein großes Repository verliert Tiefe, ohne zu fallen.
- KI-Autofix kostet 20 Credits pro Finding bei 20 monatlichen Credits pro Teams-Mitwirkendem, damit ist Autofix die teuerste Aktion des Tarifs.
Semgrep ist ein statischer Analysierer, der auf Mustererkennung aufbaut: Er parst Quellcode in einen Syntaxbaum und meldet jede Stelle, an der das Muster einer YAML-Regel auf diesen Baum trifft. Die Engine steht unter LGPL-2.1, läuft ohne Netzwerkverbindung auf einem Laptop und ist bei einem typischen Repository in Sekunden fertig. Die Position hier ist: das günstigste glaubwürdige erste SAST-Tool, das ein kleines Team in CI stellen kann, und die kostenlose Stufe ist ein gut gebauter Aufweg statt ein fertiges Produkt, denn die Analyse, die den meisten Lärm beseitigt, die mitgelieferten Regelsätze und die KI-Triage liegen allesamt hinter einem Login.
Es steht zwischen den Lintern, die ein Team ohnehin fährt, und den schweren Scannern, die einen Security-Ingenieur brauchen. In der Praxis konkurriert es mit CodeQL um Tiefe, mit SonarQube um das Pull-Request-Gate und mit Snyk Code um Ergonomie; der Open-Source-Fork OpenGrep konkurriert um die Lizenz. Ersetzt wird meistens ein Ordner halb gepflegter Grep-Muster.
Was es ist
Ein Kommandozeilen-Scanner plus eine gehostete Plattform. Die Kommandozeilen-Version leistet die Arbeit: Zielverzeichnis und einen oder mehrere Regelsätze angeben, zurück kommen Findings mit Regel-Id, Schweregrad, Meldung und dem gefundenen Bereich. Die Plattform, Semgrep AppSec Platform genannt, ergänzt Dashboard, Policy, Pull-Request-Kommentare, Supply Chain, Secret-Erkennung und die KI-Funktionen. Alles unterhalb der Plattform ist die Community Edition.
- Engine-Lizenz LGPL-2.1; neueste Version 1.179.0, veröffentlicht am 1. Oktober 2026
- Über 30 Sprachen in der Community Edition, über 35 für Semgrep Code
- Über 3.000 Community-Regeln, dazu Regelsätze nach Präfix wie
p/python - Kostenlose Stufe: 10 Mitwirkende, 10 private Repositories, 60 KI-Credits pro Monat
- Teams ab 30 Dollar pro Mitwirkendem und Monat, Secrets kostet 15 Dollar
- Mitwirkende werden über einen rollierenden 90-Tage-Zeitraum aus dem git log gezählt
- Cross-file-Analyse braucht eine proprietäre Binary von
semgrep install-semgrep-pro
Wie es funktioniert
Für jede Sprache gibt es einen Parser, überwiegend auf tree-sitter-Basis, der die Datei in einen Syntaxbaum übersetzt. Eine Regel ist ein Muster über diesen Baum, geschrieben mit Metavariablen wie $X und $F, dazu Bedingungen in patterns, pattern-not, metavariable-regex und im taint mode. Gematcht wird strukturell statt textuell: Leerraum, umbenannte Variablen und umgeschriebene Anweisungen verbergen keinen Treffer, deshalb bleibt die Falsch-Positiv-Rate niedrig genug für ein Pull-Request-Gate.
Findings tragen Regel-Id, Schweregrad und Meldung und lassen sich zeilenweise mit einem nosemgrep-Kommentar oder regelweise über einen Ignore-Eintrag unterdrücken. Die Ausgabe geht ins Terminal, nach JSON oder SARIF, und das ist es, was die meisten Dashboards einlesen.
Die entscheidende Grenze ist der Umfang. Die Analyse der Community Edition ist intraprozedural: Sie denkt innerhalb einer einzelnen Funktion. Analyse über Funktionen und über Dateien hinweg läuft auf der Pro-Engine, einer eigenen Binary, die erst nach semgrep login und semgrep install-semgrep-pro aktiv wird.
Erste Schritte
Die CLI lässt sich mit pip, pipx, uv oder brew installieren; für Scans mit Community-Regeln braucht es kein Konto. Eine Regeldatei ist klein genug, um neben dem Code zu liegen, den sie schützt.
# rules/no-pickle.yaml
rules:
- id: avoid-pickle-load
languages: [python]
severity: WARNING
message: |
pickle.load executes whatever is in the stream. Only feed it
bytes that never left this machine; use json.loads otherwise.
pattern: pickle.load($STREAM)Dann semgrep scan --config rules/no-pickle.yaml src/ für einen Regelsatz, semgrep scan --config p/python src/ für ein Registry-Präfix oder semgrep --config auto, damit das Werkzeug Regelsätze zu den erkannten Sprachen lädt. Dazu --json oder --sarif für maschinenlesbare Ausgabe und semgrep ci, sobald ein Repository mit einem Deployment verbunden ist.
Preis und Regellizenz
Die Engine ist kostenlos, das interessante Geld liegt drumherum. Die Preisseite listet Stand Oktober 2026 drei Stufen, und die kostenlose ist so gedeckelt, dass man die Grenze erst beim elften Mitwirkenden sieht.
| Tarif | Preis | Grenzen | Was es freischaltet |
|---|---|---|---|
| Free | $0 | 10 Mitwirkende, 10 private Repositories | Code und Supply Chain, 60 KI-Credits pro Monat |
| Teams | Ab 30 Dollar pro Mitwirkendem und Monat | 500 private Repositories | SSO, rollenbasieter Zugriff, Secrets für 15 Dollar, je 20 KI-Credits |
| Enterprise | Individuell | Keine Grenze bei Repositories oder Mitwirkenden | On-prem-Quellverwaltung, eigene CI, 50 KI-Credits, Ansprechpartner |
Die Lizenz ist eine andere Frage als der Preis. Die Engine bleibt LGPL-2.1, seit dem 13. Dezember 2024 werden die von Semgrep gepflegten Regeln unter der Semgrep Rules License v1.0 ausgeliefert: interne, nicht wettbewerbswidrige Nutzung ist erlaubt, Weitergabe und das Anbieten der Regeln als Dienst sind es nicht. Berater und Unternehmen, die die Regeln intern nutzen, liegen darin; ein Anbieter, der daraus ein konkurrierendes SAST-Produkt baut, nicht. Diese Änderung ist der Grund für OpenGrep, einen LGPL-2.1-Fork, den ein Konsortium aus Aikido, Endor Labs, Jit und Orca Security pflegt.
KI-Funktionen werden separat in Credits abgerechnet, und die Kosten stehen öffentlich. Kommentare auf einem Pull Request kosten nichts, Triage kostet einen Credit pro Finding, und Autofix, der einen behebenden Pull Request öffnet, kostet zwanzig.
| KI-Aktion | Credits | Was sie tut |
|---|---|---|
| KI-Kommentare auf einem Pull Request | 0 | Hinweise, die auf dem PR erscheinen |
| KI-Analyse eines Findings | 1 pro Finding | Triage, Behebungshinweise, Zuordnung der Komponente |
| KI-Autofix | 20 pro Finding | Öffnet einen Pull Request, der das Finding behebt |
| KI-gestützter Detection-Scan | Variabel | Hängt von Größe und Komplexität des Scans ab |
| Agentic-Workflows-Lauf | Variabel | Mehrschrittige Analyse, mehr Tokens als ein Detection-Scan |
Im CI betrieben
Semgrep ist ungewöhnlich schnell, und das ändert, worauf sich ein Gate lohnt. Die Fehlerfälle in großen Repositories drehen sich um Tiefe und Speicher, nicht um den Scan selbst.
- Diff-aware Scans analysieren nur die Stellen, die ein Pull Request berührt hat; die Cross-file-Analyse läuft bei vollen Scans und nie auf Pull-Request-Scans.
- Die Cross-file-Analyse fällt auf Einzeldatei-Analyse zurück, sobald ein Scan 5 GB Speicher oder drei Stunden überschreitet, ein großes Repository verliert also leise an Tiefe, statt zu fallen.
- Monorepo-Unterstützung teilt ein Repository auf jedem Tarif in Teile; verteilte Scans über mehrere Maschinen beginnen bei Teams.
- Join mode, die einzige Einrichtung der offenen Engine zum Verknüpfen von Treffern über Regeln hinweg, ist laut Dokumentation experimentell und wird nicht aktiv gepflegt.
- Regeln lassen sich über die Registry teilen; private Regeln, die sensible Regellogik in der Organisation behalten, brauchen mindestens Teams.
Wo es quietscht
Die Decke kommt früher, als die Preisseite nahelegt. Die Community Edition denkt nur innerhalb einer Funktion, ein kontaminierter Wert, der eine Hilfsfunktion überquert, bleibt unsichtbar, bis jemand für die Pro-Engine bezahlt, und Typhinferenz sowie Konstantenpropagation sind dieselbe Geschichte. Die zweite Grenze ist die Regelqualität: generische Muster ohne Metavariablen-Bedingung erzeugen genug Lärm, bis ein Team das Werkzeug ignoriert, und enge Regeln zu schreiben, ist eine Fähigkeit, die ein Team erst erwerben muss. Die dritte ist Rechnung: 30 Dollar pro Mitwirkendem und Monat auf einem rollierenden 90-Tage-Zähler aus dem git log, gezählt wird jede Person, die in diesem Fenster einen privaten Commit hatte, ob sie noch am Projekt ist oder nicht.
| Werkzeug | Analysentiefe | Regeln schreiben | Was es kostet |
|---|---|---|---|
| Semgrep CE | Intraprozedural, eine Funktion nach der anderen | YAML-Muster, die ein Prüfer lesen kann | Kostenlose Engine, Semgrep-Regeln nur für interne Nutzung |
| CodeQL | Datenfluss über die ganze Datenbank | QL, eine Abfragesprache mit echter Einarbeitung | Für öffentliche Repositories frei, sonst GitHub Code Security |
| SonarQube | Qualität plus Basis-Security, taint erst in bezahlten Stufen | Eigene Regeln brauchen ein Java-Plugin | Community Build kostenlos, bezahlte Stufen je Instanz |
| Snyk Code | Datenfluss in einer gehosteten Engine | Vom Anbieter gepflegte Regeln, wenig Eigenes | Käuflich, pro Entwickler abgerechnet |
Die pointierte Variante: für ein Team von acht zählt Tiefe weniger als Gelesenwerden. Ein Regelsatz, den eine Entwicklerin versteht und in YAML erweitern kann, wird umgesetzt; eine Abfragesprache über die ganze Datenbank, für die niemand Zeit hat, nicht. Sobald Datenfluss über eine Servicegrenze hinweg das eigentliche Bedrohungsmodell ist, kann Semgrep CE die Frage nicht beantworten, und die 30-Dollar-Stufe ist im Vergleich zum Umzug der Regeln nach QL die günstige Option.
Fazit
Als Standard-Scanner nehmen, mit offenen Augen dafür, wo die bezahlte Decke sitzt.
- Die kostenlose Community Edition nehmen, wenn das Ziel eine funktionierende Security-Gate in CI innerhalb einer Woche ist und niemand im Team Abfragesprachen schreibt.
- Für Teams bezahlen, wenn Analyse auf einer Funktion Findings erzeugt, über die Entwickler streiten, und wenn SSO, Dashboard und private Regeln zu Anforderungen statt Wünschen geworden sind.
- Nicht 30 Dollar als Preis behandeln: Es sind 30 Dollar pro Mitwirkendem und Monat auf einem rollierenden 90-Tage-Zähler, und unbegrenzte Repositories, on-prem-Quellverwaltung und eigene CI-Integrationen liegen in Enterprise.
- Stattdessen CodeQL wählen, wenn die Frage ist, wie Daten über einen kompilierten Codeblock einen Sink erreichen, und SonarQube, wenn das Gate genauso um Wartbarkeit geht wie um Sicherheit.
- Wenn die Regeln weitergegeben oder als Dienst angeboten werden müssen, ist nur die Engine ohne die von Semgrep gepflegten Regelsätze oder OpenGrep eine Lösung, die kein Gespräch mit dem Anbieter braucht.
Quellen
Häufige Fragen
Ist Semgrep in Produktion kostenlos nutzbar?
Die Engine steht unter LGPL-2.1 und die CLI läuft ohne Konto. Die gehostete kostenlose Stufe umfasst bis zu 10 Mitwirkende und 10 private Repositories, darüber beginnt Teams bei 30 Dollar pro Mitwirkendem und Monat. Die von Semgrep gepflegten Regeln sind nur für interne, nicht wettbewerbswidrige Nutzung kostenlos.
Was unterscheidet Community Edition und Pro-Engine?
Die Analyse der Community Edition ist intraprozedural, sie denkt also innerhalb einer einzelnen Funktion. Die Pro-Engine ergänzt die Analyse über Funktionen, die Semgrep Code standardmäßig nutzt, und die optionale Analyse über Dateien hinweg. Es ist eine eigene Binary, die nach semgrep login mit semgrep install-semgrep-pro installiert wird.
Wie genau ist Semgrep?
Es gibt keine veröffentlichte Präzisionszahl, deshalb ist die ehrliche Antwort strukturell: Gematcht wird gegen einen Syntaxbaum, ein Finding ist also entweder ein exakter Mustertrreff oder eine zu lasch geschriebene Regel. Der meiste Lärm in der Praxis kommt aus Regeln ohne Metavariablen-Bedingungen, nicht aus der Engine.
Sendet Semgrep meinen Quellcode in die Cloud?
Lokal oder vollständig in der eigenen CI ausgeführt bleibt der Quellcode liegen; an den Dienst gehen nur Scan-Metadaten. KI-Funktionen übergeben die Datei mit dem Finding an ein Modell, und Managed Scans klonen das Repository für den Scan und vernichten den Klon danach.