Torna agli aggiornamenti
New releaseJul 24, 2026

semgrep v1.171.0

Analisi statica leggera per molti linguaggi. Trova varianti di bug con pattern che assomigliano a codice sorgente.

Condividi

Semgrep logo

Analisi del codice a velocità folle.

Homebrew PyPI Documentazione Unisciti alla community Slack di Semgrep Issue benvenute! Metti una stella a Semgrep su GitHub Download Docker Download Docker (Vecchio) Segui @semgrep su Twitter


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:

  1. 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%
  2. 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.
  3. 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 →.

Immagine CLI di Semgrep

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 🚀

  1. Dalla piattaforma Semgrep AppSec Platform
  2. Dalla CLI

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)

Immagine della piattaforma Semgrep

  1. Registrati su semgrep.dev

  2. Esplora i risultati demo per imparare come funziona Semgrep

  3. Scansiona il tuo progetto navigando su Projects > Scan New Project > Run scan in CI

  4. 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.

  5. [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

  1. 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
    
  2. Esegui semgrep login per creare il tuo account e accedere a Semgrep. Questo passaggio è opzionale, ma accedere a Semgrep ti dà accesso a:

    • Semgrep Supply Chain: Uno scanner di dipendenze che rileva vulnerabilità raggiungibili in librerie di terze parti
    • Regole Pro di Semgrep Code: Oltre 600 regole ad alta confidenza scritte dal team di ricerca sulla sicurezza di Semgrep
    • Motore Pro di Semgrep Code: Un motore di analisi del codice avanzato, progettato per rilevare vulnerabilità complesse e ridurre i falsi positivi
  3. Vai alla directory principale della tua app ed esegui semgrep ci. Questo scansionerà il tuo progetto per verificare la presenza di vulnerabilità nel codice sorgente e nelle sue dipendenze.

  4. Prova a scrivere la tua query in modo interattivo con -e. Ad esempio, un controllo per Python == dove i lati sinistro e destro sono uguali (potenzialmente un bug): $ semgrep -e '$X == $X' --lang=py path/to/src

Ecosistema Semgrep

L'ecosistema Semgrep include quanto segue:

  • Semgrep Community Edition - Il motore di analisi dei programmi open-source al centro di tutto. Adatto a casi d'uso ad hoc con un'elevata tolleranza per i falsi positivi: pensa a consulenti, revisori della sicurezza o pentester.

  • Semgrep AppSec Platform - Orchestra e scala facilmente SAST, SCA e scansione dei segreti in un'organizzazione, senza il rischio di sovraccaricare gli sviluppatori. Personalizza quali risultati vedono gli sviluppatori, dove li vedono e integrato con provider CI come GitHub, GitLab, CircleCI e altro. Include sia livelli gratuiti che a pagamento.

    • Semgrep Code (SAST) - Fai veri progressi sul tuo arretrato di vulnerabilità con SAST che minimizza il rumore e consente agli sviluppatori di risolvere rapidamente i problemi da soli, anche senza conoscenze di sicurezza. Facile da implementare guardrail di sicurezza e una guida alla risoluzione personalizzata e passo-passo significa che gli sviluppatori risolvono effettivamente i problemi poiché non si sentono rallentati.

    • Semgrep Supply Chain (SSC) - Uno scanner di dipendenze ad alto segnale che rileva vulnerabilità raggiungibili in librerie e funzioni open-source di terze parti.

    • Semgrep Secrets (Scansione dei segreti) - Rilevamento di segreti che utilizza analisi semantica, analisi dell'entropia migliorata e validazione per far emergere con precisione credenziali sensibili nel flusso di lavoro dello sviluppatore.

    • Semgrep Assistant (AI) - Assistant è un ingegnere AppSec basato sull'AI che aiuta sia gli sviluppatori che i team AppSec a prioritizzare, triage e risolvere i risultati di Semgrep su larga scala. Gli umani concordano con le decisioni di auto-triage di Assistant il 97% delle volte e valutano la guida alla risoluzione generata come utile l'80% delle volte. Per una panoramica su come funziona Assistant, leggi questa panoramica.

  • Semgrep MCP Server - Un server Model Context Protocol (MCP) che consente agli assistenti di codifica AI di eseguire scansioni Semgrep direttamente. Si integra con Cursor, VS Code, Windsurf, Claude Desktop e altro. Esegui semgrep mcp per avviarlo localmente.

    • Hooks - Attiva automaticamente le scansioni Semgrep mentre scrivi codice.
    • Skills / Prompts - Prompt MCP integrati come write_custom_semgrep_rule aiutano gli assistenti AI a scrivere regole Semgrep accurate.
    • Plugin Claude Code - Disponibile sul marketplace ufficiale e tramite il repository semgrep/mcp-marketplace: /plugin marketplace add semgrep/mcp-marketplace
    • Plugin Cursor - Disponibile sul marketplace ufficiale e tramite il repository semgrep/cursor-plugin.

Risorse aggiuntive:

  • Semgrep Playground - Uno strumento interattivo online per scrivere e condividere regole.
  • Semgrep Registry - Oltre 2.000 regole guidate dalla comunità che coprono vulnerabilità di sicurezza, correttezza e dipendenze.

Unisciti a centinaia di migliaia di altri sviluppatori e ingegneri della sicurezza che già utilizzano Semgrep in aziende come GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake e Trail of Bits.

Semgrep è sviluppato e supportato commercialmente da Semgrep, Inc., una società di sicurezza software.

Regole Semgrep

Le regole Semgrep assomigliano al codice che già scrivi; niente alberi sintattici astratti, lotte con le regex o DSL dolorosi. Ecco una regola rapida per trovare istruzioni print() in Python.

Eseguila online nel Playground di Semgrep cliccando qui.

Esempio di regola Semgrep per trovare istruzioni print() in Python

Esempi

Visita Documentazione > Esempi di regole per casi d'uso e idee.

Caso d'usoRegola Semgrep
Vietare API pericoloseImpedisci l'uso di exec
Cercare route e autenticazioneEstrai route Spring
Imporre l'uso di default sicuriImposta cookie Flask in modo sicuro
Dati contaminati che fluiscono in sinkFlusso dati ExpressJS in sandbox.run
Imporre buone pratiche di progettoUsa assertEqual per controlli ==, Controlla sempre le chiamate a subprocess
Codificare conoscenze specifiche del progettoVerifica le transazioni prima di effettuarle
Verificare i punti critici di sicurezzaTrovare XSS in Apache Airflow, Credenziali hardcoded
Verificare file di configurazioneTrova usi di ARN S3
Migrare da API deprecateDES è deprecato, API Flask deprecate, API Bokeh deprecate
Applicare correzioni automaticheUsa listenAndServeTLS

Estensioni

Visita Documentazione > Estensioni per sapere come utilizzare Semgrep nel tuo editor o pre-commit. Quando integrato in CI e configurato per scansionare le pull request, Semgrep segnalerà solo i problemi introdotti da quella pull request; questo ti consente di iniziare a usare Semgrep senza dover correggere o ignorare i problemi preesistenti!

Documentazione

Sfoglia la documentazione completa di Semgrep sul sito web. Se sei nuovo di Semgrep, dai un'occhiata a Documentazione > Per iniziare o al tutorial interattivo.

Metriche

L'uso di configurazioni remote dal Registry (come --config=p/ci) segnala metriche di regole pseudonime a semgrep.dev.

Quando si utilizzano configurazioni da file locali (come --config=xyz.yml), le metriche vengono inviate solo quando l'utente ha effettuato l'accesso.

Per disabilitare le metriche delle regole del Registry, utilizza --metrics=off.

La politica sulla privacy di Semgrep descrive i principi che guidano le decisioni sulla raccolta dei dati e la suddivisione dei dati che vengono e non vengono raccolti quando le metriche sono abilitate.

Altro

AggiornamentoPer aggiornare, esegui il comando qui sotto associato a come hai installato Semgrep:```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

Categorie