Voltar às atualizações
New releaseAug 13, 2026

semgrep v1.173.0

Análise estática leve para muitas linguagens. Encontre variantes de bugs com padrões que se parecem com código fonte.

Compartilhar

Logotipo do Semgrep

Análise de código em velocidade estonteante.

Homebrew PyPI Documentação Participe do Slack da comunidade Semgrep Problemas bem-vindos! Estrela Semgrep no GitHub Downloads Docker Downloads Docker (Antigo) Siga @semgrep no Twitter


O Semgrep é uma ferramenta de análise estática rápida, open-source, que procura código, encontra bugs e impõe guardrails seguras e padrões de codificação. O Semgrep suporta mais de 30 linguagens e pode ser executado em uma IDE, como verificação pré-commit e como parte de fluxos de CI/CD.

O Semgrep é um grep semântico para código. Enquanto executar grep "2" corresponderia apenas à string exata 2, o Semgrep corresponderia a x = 1; y = x + 1 ao pesquisar por 2. As regras do Semgrep se parecem com o código que você já escreve; sem árvores de sintaxe abstrata, lutas com regex ou DSLs dolorosas.

Observe que, em contextos de segurança, a Semgrep Community Edition perderá muitos verdadeiros positivos, pois só pode analisar código dentro dos limites de uma única função ou arquivo. Se você deseja usar o Semgrep para fins de segurança (SAST, SCA ou secrets scanning), a Plataforma Semgrep AppSec é fortemente recomendada, pois adiciona as seguintes capacidades críticas:

  1. Capacidades de análise principais melhoradas (entre arquivos, entre funções, alcançabilidade de fluxo de dados) que reduzem bastante os falsos positivos em 25% e aumentam os verdadeiros positivos detectados em 250%
  2. Pós-processamento contextual das descobertas com o Semgrep Assistant (IA) para reduzir ainda mais o ruído em ~20%. Além disso, o Assistant enriquece as descobertas com orientação de remediação personalizada e passo a passo, que os humanos consideram acionável >80% das vezes.
  3. Políticas personalizáveis e integração contínua nos fluxos de trabalho dos desenvolvedores, dando às equipes de segurança controle granular sobre onde, quando e como diferentes descobertas são apresentadas aos desenvolvedores (IDE, comentário em PR, etc.)

A Plataforma Semgrep AppSec funciona imediatamente com mais de 20.000 regras proprietárias em SAST, SCA e secrets. As regras Pro são escritas e mantidas pela equipe de pesquisa de segurança do Semgrep e são altamente precisas, o que significa que as equipes AppSec podem se sentir confiantes ao levar as descobertas diretamente aos desenvolvedores sem atrasá-los.

O Semgrep analisa o código localmente no seu computador ou no seu ambiente de build: por padrão, o código nunca é enviado. Comece agora →.

Imagem da CLI do Semgrep

Suporte a linguagens

Semgrep Code suporta mais de 30 linguagens, incluindo:

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 · Genérico (ERB, Jinja, etc.)

Semgrep Supply Chain suporta 12 linguagens em 15 gerenciadores de pacotes, incluindo:

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)

Para mais informações, consulte Linguagens suportadas.

Primeiros passos 🚀

  1. A partir da Plataforma Semgrep AppSec
  2. A partir da CLI

Para novos usuários, recomendamos começar com a Plataforma Semgrep AppSec porque ela fornece uma interface visual, um projeto de demonstração, workflows de triagem e exploração de resultados, e facilita a configuração em CI/CD. As varreduras ainda são locais e o código não é enviado. Alternativamente, você também pode começar com a CLI e navegar pela saída do terminal para executar buscas avulsas.

Opção 1: Primeiros passos a partir da Plataforma Semgrep Appsec (Recomendado)

Imagem da plataforma Semgrep

  1. Cadastre-se em semgrep.dev

  2. Explore os resultados de demonstração para aprender como o Semgrep funciona

  3. Escaneie seu projeto navegando até Projects > Scan New Project > Run scan in CI

  4. Selecione seu sistema de controle de versão e siga as etapas de integração para adicionar seu projeto. Após esta configuração, o Semgrep escaneará seu projeto após cada pull request.

  5. [Opcional] Se quiser executar o Semgrep localmente, siga os passos na seção da CLI.

Notas:

Se houver algum problema, peça ajuda no Slack do Semgrep.

Opção 2: Primeiros passos a partir da CLI

  1. Instale a CLI do Semgrep

    # Para macOS
    $ brew install semgrep
    
    # Para Ubuntu/WSL/Linux/macOS
    $ python3 -m pip install semgrep
    
    # Para experimentar o Semgrep sem instalação, execute 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
    
  2. Execute semgrep login para criar sua conta e fazer login no Semgrep. Este passo é opcional, mas fazer login no Semgrep lhe dá acesso a:

    • Semgrep Supply Chain: Um scanner de dependências que detecta vulnerabilidades alcançáveis em bibliotecas de terceiros
    • Regras Pro do Semgrep Code: Mais de 600 regras de alta confiança escritas pela equipe de pesquisa de segurança do Semgrep
    • Mecanismo Pro do Semgrep Code: Um mecanismo avançado de análise de código, projetado para detectar vulnerabilidades complexas e reduzir falsos positivos
  3. Vá para o diretório raiz do seu aplicativo e execute semgrep ci. Isso escaneará seu projeto para verificar vulnerabilidades no código fonte e suas dependências.

  4. Tente escrever sua própria consulta interativamente com -e. Por exemplo, uma verificação para Python == onde os lados esquerdo e direito são iguais (potencialmente um bug): $ semgrep -e '$X == $X' --lang=py path/to/src

Ecossistema Semgrep

O ecossistema Semgrep inclui o seguinte:

  • Semgrep Community Edition - O mecanismo de análise de programas open-source no centro de tudo. Adequado para casos de uso ad-hoc com alta tolerância a falsos positivos - pense em consultores, auditores de segurança ou pentesters.

  • Plataforma Semgrep AppSec - Orquestre e escale facilmente SAST, SCA e varredura de Secrets em uma organização, sem risco de sobrecarregar os desenvolvedores. Personalize quais descobertas os desenvolvedores veem, onde as veem e integre com provedores de CI como GitHub, GitLab, CircleCI e muito mais. Inclui níveis gratuitos e pagos.

    • Semgrep Code (SAST) - Faça progresso real no seu backlog de vulnerabilidades com SAST que minimiza o ruído e capacita os desenvolvedores a corrigir problemas rapidamente por conta própria, mesmo sem conhecimento de segurança. Guardrails seguras fáceis de implantar e orientação de remediação personalizada e passo a passo significam que os desenvolvedores realmente corrigem problemas porque não se sentem atrasados.

    • Semgrep Supply Chain (SSC) - Um scanner de dependências de alto sinal que detecta vulnerabilidades alcançáveis em bibliotecas e funções open-source de terceiros.

    • Semgrep Secrets (varredura de Secrets) - Detecção de segredos que usa análise semântica, análise de entropia melhorada e validação para revelar com precisão credenciais sensíveis no fluxo de trabalho do desenvolvedor.

    • Semgrep Assistant (IA) - O Assistant é um engenheiro de AppSec com inteligência artificial que ajuda tanto desenvolvedores quanto equipes de AppSec a priorizar, triar e remediar descobertas do Semgrep em escala. Humanos concordam com as decisões de autotriagem do Assistant 97% das vezes e consideram a orientação de remediação gerada útil 80% das vezes. Para uma visão geral de como o Assistant funciona, leia esta visão geral.

  • Servidor MCP do Semgrep - Um servidor do Protocolo de Contexto de Modelo (MCP) que permite que assistentes de codificação com IA executem varreduras do Semgrep diretamente. Integra-se com Cursor, VS Code, Windsurf, Claude Desktop e muito mais. Execute semgrep mcp para iniciá-lo localmente.

    • Hooks - Acione automaticamente varreduras do Semgrep enquanto você codifica.
    • Habilidades / Prompts - Prompts MCP integrados como write_custom_semgrep_rule ajudam assistentes de IA a escrever regras Semgrep precisas.
    • Plugin Claude Code - Disponível no marketplace oficial e via repositório semgrep/mcp-marketplace: /plugin marketplace add semgrep/mcp-marketplace
    • Plugin Cursor - Disponível no marketplace oficial e via repositório semgrep/cursor-plugin.

Recursos adicionais:

  • Semgrep Playground - Uma ferramenta interativa online para escrever e compartilhar regras.
  • Semgrep Registry - Mais de 2.000 regras orientadas pela comunidade cobrindo segurança, correção e vulnerabilidades de dependências.

Junte-se a centenas de milhares de outros desenvolvedores e engenheiros de segurança que já usam o Semgrep em empresas como GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake e Trail of Bits.

O Semgrep é desenvolvido e comercialmente suportado pela Semgrep, Inc., uma empresa de segurança de software.

Regras Semgrep

As regras Semgrep se parecem com o código que você já escreve; sem árvores de sintaxe abstrata, lutas com regex ou DSLs dolorosas. Aqui está uma regra rápida para encontrar instruções Python print().

Execute-a online no Playground do Semgrep clicando aqui.

Exemplo de regra Semgrep para encontrar instruções Python print()

Exemplos

Visite Docs > Exemplos de regras para casos de uso e ideias.

Caso de usoRegra Semgrep
Proibir APIs perigosasPrevenir uso de exec
Pesquisar rotas e autenticaçãoExtrair rotas Spring
Aplicar o uso de padrões segurosConfigurar cookies Flask de forma segura
Dados contaminados fluindo para sinksFluxo de dados ExpressJS para sandbox.run
Aplicar melhores práticas do projetoUsar assertEqual para verificações ==, Sempre verificar chamadas subprocess
Codificar conhecimento específico do projetoVerificar transações antes de realizá-las
Auditar pontos críticos de segurançaEncontrar XSS no Apache Airflow, Credenciais codificadas
Auditar arquivos de configuraçãoEncontrar usos de S3 ARN
Migrar de APIs obsoletasDES está obsoleto, APIs Flask obsoletas, APIs Bokeh obsoletas
Aplicar correções automáticasUsar listenAndServeTLS

Extensões

Visite Docs > Extensões para aprender sobre o uso do Semgrep no seu editor ou pré-commit. Quando integrado ao CI e configurado para escanear pull requests, o Semgrep relatará apenas problemas introduzidos por esse pull request; isso permite que você comece a usar o Semgrep sem corrigir ou ignorar problemas pré-existentes!

Documentação

Navegue pela documentação completa do Semgrep no site. Se você é novo no Semgrep, confira Docs > Primeiros passos ou o tutorial interativo.

Métricas

O uso de configuração remota do Registry (como --config=p/ci) relata métricas de regras pseudônimas para semgrep.dev.

Ao usar configurações de arquivos locais (como --config=xyz.yml), as métricas são enviadas apenas quando o usuário está logado.

Para desabilitar as métricas de regras do Registry, use --metrics=off.

A política de privacidade do Semgrep descreve os princípios que orientam as decisões de coleta de dados e a discriminação dos dados que são e não são coletados quando as métricas estão ativadas.

Mais

UpgradingPara atualizar, execute o comando abaixo associado a como você instalou o 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

Categorias