
semgrep v1.171.0
Analisi statica leggera per molti linguaggi. Trova varianti di bug con pattern che assomigliano a codice sorgente.
Analisi del codice a velocità folle.
Semgrep è uno strumento di analisi statica veloce, open-source, che cerca codice, trova bug e impone guardrail di sicurezza e standard di codifica. Semgrep supporta oltre 30 linguaggi e può essere eseguito in un IDE, come controllo pre-commit e come parte dei flussi di lavoro CI/CD.
Semgrep è un grep semantico per il codice. Mentre eseguire grep "2" corrisponderebbe solo alla stringa esatta 2, Semgrep corrisponderebbe a x = 1; y = x + 1 quando cerca 2. Le regole di Semgrep assomigliano al codice che già scrivi; niente alberi sintattici astratti, lotte con le regex o DSL dolorosi.
Tieni presente che nei contesti di sicurezza, Semgrep Community Edition perderà molti veri positivi poiché può analizzare il codice solo all'interno dei confini di una singola funzione o file. Se desideri utilizzare Semgrep per scopi di sicurezza (SAST, SCA o scansione dei segreti), la piattaforma Semgrep AppSec Platform è fortemente consigliata poiché aggiunge le seguenti capacità critiche:
- Capacità di analisi core migliorate (cross-file, cross-funzione, raggiungibilità del flusso dati) che riducono notevolmente i falsi positivi del 25% e aumentano i veri positivi rilevati del 250%
- Post-elaborazione contestuale dei risultati con Semgrep Assistant (AI) per ridurre ulteriormente il rumore di ~20%. Inoltre, Assistant arricchisce i risultati con una guida alla risoluzione personalizzata e passo-passo che gli umani trovano attuabile >80% delle volte.
- Politiche personalizzabili e integrazione senza soluzione di continuità nei flussi di lavoro degli sviluppatori, offrendo ai team di sicurezza un controllo granulare su dove, quando e come i diversi risultati vengono presentati agli sviluppatori (IDE, commento PR, ecc.)
La piattaforma Semgrep AppSec Platform funziona out-of-the-box con oltre 20.000 regole proprietarie in SAST, SCA e segreti. Le regole Pro sono scritte e mantenute dal team di ricerca sulla sicurezza di Semgrep e sono altamente accurate, il che significa che i team AppSec possono sentirsi sicuri di portare i risultati direttamente agli sviluppatori senza rallentarli.
Semgrep analizza il codice localmente sul tuo computer o nel tuo ambiente di build: per impostazione predefinita, il codice non viene mai caricato. Inizia subito →.
Supporto linguistico
Semgrep Code supporta oltre 30 linguaggi, tra cui:
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 · Generic (ERB, Jinja, etc.)
Semgrep Supply Chain supporta 12 linguaggi su 15 gestori di pacchetti, tra cui:
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)
Per maggiori informazioni, consulta Linguaggi supportati.
Per iniziare 🚀
Per i nuovi utenti, consigliamo di iniziare con la piattaforma Semgrep AppSec Platform perché fornisce un'interfaccia visiva, un progetto demo, flussi di lavoro per il triage e l'esplorazione dei risultati e rende la configurazione in CI/CD veloce. Le scansioni sono ancora locali e il codice non viene caricato. In alternativa, puoi anche iniziare con la CLI e navigare nell'output del terminale per eseguire ricerche una tantum.
Opzione 1: Iniziare dalla piattaforma Semgrep AppSec Platform (Consigliato)
-
Registrati su semgrep.dev
-
Esplora i risultati demo per imparare come funziona Semgrep
-
Scansiona il tuo progetto navigando su
Projects > Scan New Project > Run scan in CI -
Seleziona il tuo sistema di controllo versione e segui i passaggi di onboarding per aggiungere il tuo progetto. Dopo questa configurazione, Semgrep scansionerà il tuo progetto dopo ogni pull request.
-
[Opzionale] Se desideri eseguire Semgrep localmente, segui i passaggi nella sezione CLI.
Note:
In caso di problemi, chiedi aiuto nello Slack di Semgrep.
Opzione 2: Iniziare dalla CLI
-
Installa la CLI di Semgrep
# Per macOS $ brew install semgrep # Per Ubuntu/WSL/Linux/macOS $ python3 -m pip install semgrep # Per provare Semgrep senza installazione, esegui tramite 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