Guia
Ferramentas SAST comparadas: o que encontram e o que deixam passar
O que fazem as ferramentas SAST, como oito das mais usadas diferem em abordagem, linguagens e licença, e o que a análise estática não pega em código gerado por IA.
· 9 min de leitura · Pela equipe do vetkit


O que é uma ferramenta SAST
Uma ferramenta SAST (static application security testing, ou teste estático de segurança de aplicações) lê o seu código-fonte sem executá-lo e reporta código que parece vulnerável: dados da requisição que chegam a uma query SQL, um comando de shell montado a partir de entrada do usuário, uma verificação de certificado desativada, um hash fraco usado para senhas. Como ela só precisa do código-fonte, pode rodar a cada commit, muito antes de a aplicação ir para produção.
O SAST é um entre vários tipos de teste de segurança. O SCA (software composition analysis, ou análise de composição de software) verifica as suas dependências em busca de vulnerabilidades conhecidas, o secret scanning procura credenciais commitadas e o DAST (teste dinâmico) sonda uma aplicação em execução. Uma ferramenta SAST não faz nenhuma dessas coisas, por isso a maioria das equipes a combina pelo menos com scan de dependências e de segredos.
Como as ferramentas SAST diferem
Quatro diferenças explicam a maior parte do que você vai notar ao testar duas ferramentas no mesmo código.
- A profundidade da análise. O pattern matching encontra código parecido com um formato ruim conhecido. A análise de taint ou de fluxo de dados acompanha um valor desde onde ele entra (uma requisição) até onde é usado (uma query). Acompanhar valores entre funções e arquivos encontra mais problemas reais, e geralmente é aí que as edições comerciais se diferenciam das gratuitas.
- Uma linguagem ou várias. Ferramentas de uma única linguagem conhecem bem o próprio ecossistema. Ferramentas multilinguagem dão um único relatório para uma base de código mista.
- Onde ela roda. Algumas são um comando que você executa localmente ou no CI. Outras são plataformas hospedadas que se conectam ao seu controle de versão e adicionam dashboards, comentários em pull requests e políticas.
- Se você pode escrever as suas próprias regras. Formatos de regra legíveis tornam viável codificar as convenções da sua equipe.
Oito ferramentas SAST lado a lado
Estas são ferramentas amplamente usadas, listadas em ordem alfabética dentro de cada grupo. A tabela registra o que a própria documentação de cada projeto diz; não é um ranking e não fizemos benchmarks entre elas.
| Ferramenta | Abordagem, segundo a documentação | Linguagens | Licença | Saída em SARIF |
|---|---|---|---|---|
| CodeQL (GitHub code scanning) | Constrói um banco de dados a partir do código e executa queries semânticas sobre ele | C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust, Swift e workflows do GitHub Actions | CLI de uso gratuito em repositórios públicos; repositórios privados exigem uma licença do GitHub Code Security | Sim |
| Checkmarx One SAST | Constrói um grafo de elementos de código e fluxos de dados e executa queries; suporta queries personalizadas | Multilinguagem, incluindo Java, C#, C/C++, PHP, JavaScript/TypeScript, Python e Go | Comercial | Sim |
| Opengrep | Regras de padrão com análise de taint; compatível com regras do Semgrep | Mais de 30 linguagens | Open source, LGPL 2.1 | Sim |
| Semgrep | Regras de padrão que se parecem com o código que encontram. A Community Edition analisa dentro de uma única função ou arquivo; o Semgrep Code comercial adiciona análise entre arquivos e funções | Mais de 30 linguagens | Engine open source, LGPL 2.1; a AppSec Platform é proprietária | Sim |
| Snyk Code | Engine de análise semântica com análise de fluxo de dados e de taint | Multilinguagem, incluindo Java/Kotlin, JavaScript/TypeScript, Python, Go, C#, PHP, Ruby e Swift | Serviço hospedado comercial com plano gratuito | Sim |
| SonarQube | Regras de qualidade de código e de segurança; a análise de taint para regras de injeção está disponível no SonarQube Server e no Cloud | Mais de 40 linguagens e frameworks, considerando todas as edições | O Community Build é open source, LGPL 3.0; Server e Cloud são comerciais | Importa SARIF de outras ferramentas |
| Bandit | Constrói uma árvore sintática para cada arquivo e executa plugins sobre ela | Somente Python | Open source, Apache 2.0 | Sim, com um extra opcional |
| gosec | Regras sobre a árvore sintática, analisadores baseados em SSA e análise de taint | Somente Go | Open source, Apache 2.0 | Sim |
O Brakeman é outra ferramenta conhecida focada em um único framework, o Ruby on Rails. O repositório dele o descreve como gratuito para uso não comercial sob uma licença de uso público própria, então confira os termos antes de incorporá-lo a um serviço comercial.
Várias delas agora oferecem correções ou triagem assistidas por IA com nomes próprios, por exemplo o Copilot Autofix para alertas do CodeQL, o Semgrep Multimodal, o Snyk Agent Fix e o SonarQube AI CodeFix. Nomes, edições e preços nessa área mudam com frequência, então leia a página atual de cada fornecedor antes de decidir.
Como escolher
- Uma linguagem, equipe pequena. Comece com a ferramenta específica da sua stack (Bandit para Python, gosec para Go). Elas são gratuitas, rápidas de rodar e fáceis de adicionar ao CI.
- Base de código mista e preferência por open source. Uma engine multilinguagem baseada em regras, como o Opengrep ou o Semgrep Community Edition, cobre muitas linguagens com regras que você consegue ler e estender.
- Tudo está no GitHub. O CodeQL via GitHub code scanning coloca os alertas nos pull requests sem nenhum serviço extra. Veja GitHub Advanced Security vs vetkit.
- Você precisa de análise mais profunda entre arquivos, dashboards e políticas. É isso que as plataformas comerciais vendem. Compare-as no seu próprio código, não em listas de recursos. Veja Semgrep vs vetkit e Snyk vs vetkit.
Seja qual for a escolha, prefira uma ferramenta que gere SARIF. É o formato comum que permite enviar os achados para o GitHub code scanning ou para outro dashboard, e trocar de ferramenta depois. O guia de SARIF explica como.
O que o SAST deixa passar
O SAST encontra padrões de código inseguro. Muito do que dá errado em software, especialmente em software escrito às pressas com um assistente de IA, não é um padrão em um único arquivo.
| Problema | Por que o SAST sozinho não pega | O que pega |
|---|---|---|
| Um pacote que não existe ou foi registrado na semana passada | A instrução de import é código válido | Verificação de dependências nos registries públicos |
| Credenciais commitadas | A maioria das regras de SAST olha o comportamento do código, não formatos de segredos | Secret scanning |
| Vulnerabilidades conhecidas em dependências | O código vulnerável não está no seu repositório | Análise de composição de software (SCA) |
| Autorização ausente entre usuários | O código está sintaticamente correto; a regra que falta está no design do seu produto | Revisão e um teste com duas contas |
| Implementações inacabadas ou placeholder | Não é um padrão de segurança | Verificações de qualidade de código e de risco de IA, e revisão |
| Sem timeouts, queries dentro de loops, sem relatório de erros | Problemas de confiabilidade, fora da maioria dos conjuntos de regras de segurança | Verificações de prontidão para produção |
| Permissões de hospedagem ou de banco de dados mal configuradas | A configuração está em um console, não no código-fonte | Verificar o ambiente implantado |
É por isso que um relatório de SAST limpo não é o mesmo que código pronto para publicar. O guia sobre o que dá errado com vibe coding e o guia de pacotes inventados percorrem os casos que mais importam para código assistido por IA.
Onde o vetkit entra
O vetkit não é uma engine de SAST própria. É uma auditoria de repositório que executa análise estática como uma parte de um relatório mais amplo. Para segurança de código, ele usa o Opengrep com 663 regras próprias, listadas no catálogo de verificações público, e adiciona o Bandit para Python e o gosec para Go quando essas verificações são selecionadas. Em volta disso, ele executa secret scanning, verificações de vulnerabilidades em dependências e de existência de pacotes, verificações de qualidade de código, de risco de código de IA e de prontidão para produção, e transforma os achados em trabalho rastreado. Os achados podem ser exportados como SARIF.
Se você já usa uma das ferramentas acima e está satisfeito com ela, continue usando. O vetkit é útil para as linhas da segunda tabela e está em acesso antecipado, com um Security Quick Scan gratuito que cobre segredos, vulnerabilidades conhecidas em dependências e a postura básica.
Fontes
Lemos as afirmações sobre outras ferramentas na própria documentação ou nos repositórios delas em . Os produtos mudam rápido, então considere as páginas de cada projeto como a palavra final:
- Sobre o code scanning com CodeQL e Sobre a CLI do CodeQL
- Scanner SAST do Checkmarx One
- Repositório do Opengrep
- Semgrep Community Edition e AppSec Platform
- Documentação do Snyk Code
- O que é o SonarQube e Repositório do SonarQube Community Build
- Documentação do Bandit
- Repositório do gosec
- Repositório do Brakeman
Os nomes de produtos são marcas registradas de seus respectivos proprietários. O vetkit não é afiliado, endossado nem patrocinado por eles; os nomes são usados apenas para identificar as ferramentas. Encontrou algo desatualizado? Escreva para contact@vetkit.dev e vamos corrigir.