
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.
Análise de código em velocidade estonteante.
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:
- 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%
- 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.
- 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 →.
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 🚀
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)
-
Cadastre-se em semgrep.dev
-
Explore os resultados de demonstração para aprender como o Semgrep funciona
-
Escaneie seu projeto navegando até
Projects > Scan New Project > Run scan in CI -
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.
-
[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
-
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 -
Execute
semgrep loginpara 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
-
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. -
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 mcppara iniciá-lo localmente.- Hooks - Acione automaticamente varreduras do Semgrep enquanto você codifica.
- Habilidades / Prompts - Prompts MCP integrados como
write_custom_semgrep_ruleajudam 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.
Exemplos
Visite Docs > Exemplos de regras para casos de uso e ideias.
| Caso de uso | Regra Semgrep |
|---|---|
| Proibir APIs perigosas | Prevenir uso de exec |
| Pesquisar rotas e autenticação | Extrair rotas Spring |
| Aplicar o uso de padrões seguros | Configurar cookies Flask de forma segura |
| Dados contaminados fluindo para sinks | Fluxo de dados ExpressJS para sandbox.run |
| Aplicar melhores práticas do projeto | Usar assertEqual para verificações ==, Sempre verificar chamadas subprocess |
| Codificar conhecimento específico do projeto | Verificar transações antes de realizá-las |
| Auditar pontos críticos de segurança | Encontrar XSS no Apache Airflow, Credenciais codificadas |
| Auditar arquivos de configuração | Encontrar usos de S3 ARN |
| Migrar de APIs obsoletas | DES está obsoleto, APIs Flask obsoletas, APIs Bokeh obsoletas |
| Aplicar correções automáticas | Usar 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
- Perguntas frequentes (FAQs)
- Contribuindo
- Instruções de compilação para desenvolvedores
- Faça perguntas no Slack da comunidade Semgrep
- Referência da CLI e códigos de saída
- Canal do Semgrep no YouTube
- Licença (LGPL-2.1)
- Licenciamento Semgrep
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
