
semgrep v1.171.0
Leichtgewichtige statische Analyse für viele Programmiersprachen. Finde Fehlervarianten mit Mustern, die wie Quellcode aussehen.
Code-Scanning mit wahnsinniger Geschwindigkeit.
Semgrep ist ein schnelles, quelloffenes, statisches Analysetool, das Code durchsucht, Fehler findet und sichere Leitplanken und Codierungsstandards durchsetzt. Semgrep unterstützt 30+ Sprachen und kann in einer IDE, als Pre-Commit-Prüfung und als Teil von CI/CD-Workflows ausgeführt werden.
Semgrep ist semantisches Grep für Code. Während grep "2" nur die exakte Zeichenfolge 2 finden würde, würde Semgrep x = 1; y = x + 1 finden, wenn nach 2 gesucht wird. Semgrep-Regeln sehen aus wie der Code, den Sie bereits schreiben; keine abstrakten Syntaxbäume, Regex-Gerangel oder schmerzhafte DSLs.
Beachten Sie, dass in Sicherheitskontexten die Semgrep Community Edition viele echte Positivbefunde übersehen wird, da sie Code nur innerhalb der Grenzen einer einzelnen Funktion oder Datei analysieren kann. Wenn Sie Semgrep zu Sicherheitszwecken (SAST, SCA oder Secret-Scanning) verwenden möchten, wird die Semgrep AppSec Platform dringend empfohlen, da sie die folgenden kritischen Fähigkeiten hinzufügt:
- Verbesserte Kernanalysefähigkeiten (dateiübergreifend, funktionsübergreifend, Datenfluss-Erreichbarkeit), die Fehlalarme um 25 % reduzieren und erkannte echte Positivbefunde um 250 % erhöhen
- Kontextbezogene Nachbearbeitung der Ergebnisse mit Semgrep Assistant (KI), um das Rauschen weiter um ~20% zu reduzieren. Darüber hinaus reichert Assistant die Ergebnisse mit maßgeschneiderten, schrittweisen Sanierungsanleitungen an, die Menschen in über 80 % der Fälle als umsetzbar empfinden.
- Anpassbare Richtlinien und nahtlose Integration in Entwickler-Workflows, die Sicherheitsteams eine granulare Kontrolle darüber geben, wo, wann und wie verschiedene Ergebnisse den Entwicklern präsentiert werden (IDE, PR-Kommentar usw.)
Die Semgrep AppSec Platform funktioniert sofort mit über 20.000 proprietären Regeln in den Bereichen SAST, SCA und Secrets. Pro-Regeln werden vom Semgrep-Sicherheitsforschungsteam geschrieben und gewartet und sind hochpräzise, sodass AppSec-Teams zuversichtlich Ergebnisse direkt an Entwickler weitergeben können, ohne sie auszubremsen.
Semgrep analysiert Code lokal auf Ihrem Computer oder in Ihrer Build-Umgebung: Standardmäßig wird Code niemals hochgeladen. Erste Schritte →
Language support
Semgrep Code unterstützt 30+ Sprachen, darunter:
Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generisch (ERB, Jinja usw.)
Semgrep Supply Chain unterstützt 12 Sprachen in 15 Paketmanagern, darunter:
C# (NuGet) · Dart (Pub) · Go (Go modules, go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)
Weitere Informationen finden Sie unter Unterstützte Sprachen.
Getting started 🚀
Für neue Benutzer empfehlen wir den Einstieg mit der Semgrep AppSec Platform, da sie eine visuelle Oberfläche, ein Demoprojekt, Workflows zur Ergebnis-Triage und -Erkundung bietet und die Einrichtung in CI/CD schnell macht. Scans sind weiterhin lokal und Code wird nicht hochgeladen. Alternativ können Sie auch mit der CLI beginnen und die Terminalausgabe durchsuchen, um einmalige Suchen durchzuführen.
Option 1: Erste Schritte mit der Semgrep AppSec Platform (Empfohlen)
-
Registrieren Sie sich auf semgrep.dev
-
Erkunden Sie die Demo-Ergebnisse, um zu erfahren, wie Semgrep funktioniert
-
Scannen Sie Ihr Projekt, indem Sie zu
Projects > Scan New Project > Run scan in CInavigieren -
Wählen Sie Ihr Versionskontrollsystem aus und folgen Sie den Onboarding-Schritten, um Ihr Projekt hinzuzufügen. Nach dieser Einrichtung scannt Semgrep Ihr Projekt nach jedem Pull-Request.
-
[Optional] Wenn Sie Semgrep lokal ausführen möchten, folgen Sie den Schritten im CLI-Abschnitt.
Notes:
Wenn es Probleme gibt, bitten Sie im Semgrep-Slack um Hilfe.
Option 2: Erste Schritte mit der CLI
-
Installieren Sie die Semgrep CLI
# For macOS $ brew install semgrep # For Ubuntu/WSL/Linux/macOS $ python3 -m pip install semgrep # To try Semgrep without installation run via Docker $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login $ docker run -e SEMGREP_APP_TOKEN=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci -
Führen Sie
semgrep loginaus, um Ihr Konto zu erstellen und sich bei Semgrep anzumelden. Dieser Schritt ist optional, aber die Anmeldung bei Semgrep gibt Ihnen Zugriff auf:- Semgrep Supply Chain: Ein Abhängigkeitsscanner, der erreichbare Schwachstellen in Bibliotheken von Drittanbietern erkennt
- Semgrep Code's Pro rules: Über 600 hochsichere Regeln, die vom Semgrep-Sicherheitsforschungsteam geschrieben wurden
- Semgrep Code's Pro engine: Eine erweiterte Code-Analyse-Engine, die darauf ausgelegt ist, komplexe Schwachstellen zu erkennen und Fehlalarme zu reduzieren
-
Gehen Sie zum Stammverzeichnis Ihrer App und führen Sie
semgrep ciaus. Dadurch wird Ihr Projekt auf Schwachstellen im Quellcode und seinen Abhängigkeiten überprüft. -
Versuchen Sie, Ihre eigene Abfrage interaktiv mit
-ezu schreiben. Zum Beispiel ein Check für Python ==, bei dem die linke und rechte Seite identisch sind (möglicherweise ein Fehler):$ semgrep -e '$X == $X' --lang=py path/to/src
Semgrep Ecosystem
Das Semgrep-Ökosystem umfasst Folgendes:
-
Semgrep Community Edition - Die quelloffene Programmanalyse-Engine im Herzen von allem. Geeignet für Ad-hoc-Anwendungsfälle mit hoher Toleranz gegenüber Fehlalarmen – denken Sie an Berater, Sicherheitsauditoren oder Pentester.
-
Semgrep AppSec Platform - Orchestrieren und skalieren Sie SAST, SCA und Secrets-Scanning problemlos in einem Unternehmen, ohne Entwickler zu überfordern. Passen Sie an, welche Ergebnisse Entwickler sehen, wo sie sie sehen, und integrieren Sie CI-Anbieter wie GitHub, GitLab, CircleCI und mehr. Bietet sowohl kostenlose als auch kostenpflichtige Stufen.
-
Semgrep Code (SAST) - Machen Sie echte Fortschritte bei Ihrem Schwachstellen-Backlog mit SAST, das Rauschen minimiert und Entwickler befähigt, Probleme schnell selbst zu beheben, auch ohne Sicherheitskenntnisse. Einfach bereitzustellende sichere Leitplanken und maßgeschneiderte, schrittweise Sanierungsanleitungen bedeuten, dass Entwickler Probleme tatsächlich beheben, da sie sich nicht ausgebremst fühlen.
-
Semgrep Supply Chain (SSC) - Ein hochsignaler Abhängigkeitsscanner, der erreichbare Schwachstellen in Open-Source-Bibliotheken und -Funktionen von Drittanbietern erkennt.
-
Semgrep Secrets (Secrets scanning) - Erkennung von Geheimnissen, die semantische Analyse, verbesserte Entropieanalyse und Validierung verwendet, um sensible Anmeldeinformationen im Entwickler-Workflow genau zu identifizieren.
-
Semgrep Assistant (AI) - Assistant ist ein KI-gestützter AppSec-Ingenieur, der sowohl Entwicklern als auch AppSec-Teams hilft, Semgrep-Ergebnisse zu priorisieren, zu triagieren und zu sanieren. Menschen stimmen mit den automatischen Triage-Entscheidungen von Assistant in 97 % der Fälle überein und bewerten die generierten Sanierungsanleitungen in 80 % der Fälle als hilfreich. Eine Übersicht über die Funktionsweise von Assistant finden Sie in diesem Überblick.
-
-
Semgrep MCP Server - Ein Model Context Protocol (MCP)-Server, der KI-Code-Assistenten die direkte Ausführung von Semgrep-Scans ermöglicht. Integriert sich in Cursor, VS Code, Windsurf, Claude Desktop und mehr. Führen Sie
semgrep mcpaus, um es lokal zu starten.- Hooks - Semgrep-Scans automatisch beim Programmieren auslösen.
- Skills / Prompts - Integrierte MCP-Prompts wie
write_custom_semgrep_rulehelfen KI-Assistenten, präzise Semgrep-Regeln zu schreiben. - Claude Code Plugin - Verfügbar im offiziellen Marketplace und über das Repository semgrep/mcp-marketplace:
/plugin marketplace add semgrep/mcp-marketplace - Cursor Plugin - Verfügbar im offiziellen Marketplace und über das Repository semgrep/cursor-plugin.
Weitere Ressourcen:
- Semgrep Playground - Ein interaktives Online-Tool zum Schreiben und Teilen von Regeln.
- Semgrep Registry - Über 2.000 Community-Regeln zu Sicherheit, Korrektheit und Abhängigkeits-Schwachstellen.
Schließen Sie sich Hunderttausenden anderen Entwicklern und Sicherheitsingenieuren an, die Semgrep bereits bei Unternehmen wie GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake und Trail of Bits verwenden.
Semgrep wird von der Semgrep, Inc., einem Software-Sicherheitsunternehmen, entwickelt und kommerziell unterstützt.
Semgrep Rules
Semgrep-Regeln sehen aus wie der Code, den Sie bereits schreiben; keine abstrakten Syntaxbäume, Regex-Gerangel oder schmerzhafte DSLs. Hier ist eine kurze Regel zum Auffinden von Python print()-Anweisungen.
Führen Sie es online im Semgrep Playground aus, indem Sie hier klicken.
Beispiele
Besuchen Sie Dokumentation > Regelbeispiele für Anwendungsfälle und Ideen.
| Anwendungsfall | Semgrep-Regel |
|---|---|
| Gefährliche APIs verbinden | Nutzung von exec verhindern |
| Routen und Authentifizierung durchsuchen | Spring-Routen extrahieren |
| Verwendung sicherer Standardeinstellungen erzwingen | Flask-Cookies sicher setzen |
| Verunreinigte Daten, die in Senken fließen | ExpressJS-Datenfluss in sandbox.run |
| Projekt-Best Practices durchsetzen | assertEqual für ==-Prüfungen verwenden, Subprocess-Aufrufe immer überprüfen |
| Projektspezifisches Wissen kodifizieren | Transaktionen vor dem Ausführen verifizieren |
| Sicherheits-Hotspots auditieren | XSS in Apache Airflow finden, Hartcodierte Anmeldeinformationen |
| Konfigurationsdateien auditieren | S3-ARN-Verwendungen finden |
| Von veralteten APIs migrieren | DES ist veraltet, Veraltete Flask-APIs, Veraltete Bokeh-APIs |
| Automatische Korrekturen anwenden | listenAndServeTLS verwenden |
Extensions
Besuchen Sie Dokumentation > Erweiterungen, um zu erfahren, wie Sie Semgrep in Ihrem Editor oder Pre-Commit verwenden. Wenn es in CI integriert und so konfiguriert ist, dass Pull-Requests gescannt werden, meldet Semgrep nur Probleme, die durch diesen Pull-Request eingeführt wurden. Dadurch können Sie Semgrep verwenden, ohne vorhandene Probleme zu beheben oder zu ignorieren!
Dokumentation
Durchsuchen Sie die vollständige Semgrep-Dokumentation auf der Website. Wenn Sie neu bei Semgrep sind, schauen Sie sich Dokumentation > Erste Schritte oder das interaktive Tutorial an.
Metriken
Die Verwendung von Remote-Konfigurationen aus dem Registry (wie --config=p/ci) meldet pseudonyme Regelmetriken an semgrep.dev.
Bei Verwendung von Konfigurationen aus lokalen Dateien (wie --config=xyz.yml) werden Metriken nur gesendet, wenn der Benutzer angemeldet ist.
Um Regelmetriken des Registry zu deaktivieren, verwenden Sie --metrics=off.
Die Semgrep-Datenschutzerklärung beschreibt die Prinzipien, die Datenerfassungsentscheidungen leiten, sowie die Aufschlüsselung der Daten, die erfasst werden und nicht erfasst werden, wenn die Metriken aktiviert sind.
Mehr
- Häufig gestellte Fragen (FAQs)
- Mitwirken
- Build-Anleitung für Entwickler
- Fragen im Semgrep-Community-Slack stellen
- CLI-Referenz und Exit-Codes
- Semgrep-YouTube-Kanal
- Lizenz (LGPL-2.1)
- Lizenzierung von Semgrep
UpgradingUm Semgrep zu aktualisieren, führen Sie den untenstehenden Befehl entsprechend Ihrer Installationsart aus:```sh
Using Homebrew
$ brew upgrade semgrep
Using pipx
$ pipx upgrade semgrep
Using uv tool command
$ uv tool upgrade semgrep
Using Docker
$ docker pull semgrep/semgrep:latest
