
semgrep v1.171.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: