Um scanner de vulnerabilidades open source é uma ferramenta gratuita que você mesmo roda para encontrar problemas de segurança no seu código, nas dependências, nos containers, no app web ou na rede. O porém é que "scanner de vulnerabilidades" cobre ferramentas muito diferentes. Um que lê código Python não tem nada a ver com um que testa portas abertas, e escolher a categoria errada é o erro mais comum.
Neste guia organizamos 13 scanners gratuitos conhecidos pelo que eles realmente escaneiam. Para cada um conferimos a licença no repositório oficial, porque "gratuito" e "open source" não são a mesma coisa, e algumas ferramentas populares têm condições que vale conhecer antes de colocar no CI.
Tabela resumo: scanners gratuitos por categoria
| Ferramenta | Categoria | Licença | O que escaneia |
|---|---|---|---|
| Semgrep CE | SAST | LGPL-2.1 (engine); regras do registry sob a Semgrep Rules License v1.0 | Código-fonte em muitas linguagens, baseado em padrões |
| CodeQL | SAST | Queries MIT; CLI sob os GitHub CodeQL Terms | Código-fonte, queries semânticas de data flow |
| Bandit | SAST | Apache-2.0 | Código Python |
| Brakeman | SAST | Brakeman Public Use License (source-available) | Aplicações Ruby on Rails |
| OSV-Scanner | SCA | Apache-2.0 | Lockfiles e dependências, com dados do osv.dev |
| Trivy | SCA, containers, IaC, segredos | Apache-2.0 | Containers, Kubernetes, repos, cloud; vulns, misconfigs, segredos, SBOM |
| Grype | SCA, containers | Apache-2.0 | Imagens de container e filesystems |
| Gitleaks | Segredos | MIT | Segredos em repos git e arquivos |
| TruffleHog | Segredos | AGPL-3.0 | Credenciais vazadas, com verificação |
| ZAP | DAST | Apache-2.0 | Apps web e APIs rodando |
| Nuclei | DAST, infra | MIT | Apps, APIs, redes, DNS e configs cloud via templates YAML |
| Nmap | Rede | Nmap Public Source License | Hosts, portas abertas, serviços (scripts NSE) |
| OpenVAS | Rede | GPL-2.0 (scanner), parte do Greenbone Community Edition | Hosts e serviços de rede com vulnerabilidades conhecidas |
Se você não sabe por qual camada começar, leia SAST e DAST. Em resumo: código e dependências em cada pull request; app rodando e rede, periodicamente.
1. SAST: scanners que leem seu código
A análise estática (SAST) olha o código sem executá-lo e aponta fluxos de dados que vão do input do usuário até sinks perigosos: queries SQL, comandos de shell, templates, caminhos de arquivo.
Semgrep Community Edition
O Semgrep CE é uma engine de análise estática leve para muitas linguagens. A grande vantagem é que as regras se parecem com o código que procuram, então escrever uma regra própria para o seu framework leva minutos. A engine tem licença LGPL-2.1. Atenção: as regras do Semgrep Registry são publicadas sob uma licença separada, a Semgrep Rules License v1.0, que não é a mesma da engine. O Opengrep é um fork comunitário da engine, também LGPL-2.1.
semgrep scan --config autoCodeQL
O CodeQL, do GitHub, trata o código como um banco de dados que você consulta. É muito poderoso para seguir data flow entre arquivos. A licença é o ponto que muita gente entende errado: o repositório de queries e bibliotecas é MIT, mas o CodeQL CLI é regido pelos GitHub CodeQL Terms. Esses termos permitem uso gratuito para pesquisa acadêmica e em codebases open source (com licença aprovada pela OSI). Para escanear código privado você precisa de uma licença paga do GitHub (Advanced Security ou Code Security).
Bandit
O Bandit, mantido pela PyCQA sob Apache-2.0, encontra problemas de segurança comuns em código Python: uso de eval, pickle, subprocess com shell=True, hashing fraco, senhas hardcoded e afins.
bandit -r src/Brakeman
O Brakeman é um scanner estático feito especificamente para Ruby on Rails, então entende as convenções do Rails: controllers, params, queries do ActiveRecord. Ele é distribuído sob a Brakeman Public Use License: o uso é gratuito, mas usos comerciais, conforme definidos na licença, exigem uma licença comercial, portanto é source-available e não open source segundo a OSI. Leia a licença antes de colocá-lo em um pipeline comercial.
2. SCA: dependências e containers
A maior parte do código que você publica foi escrita por outra pessoa. A análise de composição de software (SCA) cruza as versões dos seus lockfiles e imagens com bases de vulnerabilidades. É também a forma de gerar um SBOM.
OSV-Scanner
O OSV-Scanner é o scanner do Google, Apache-2.0, que lê lockfiles e manifests e compara com a base aberta osv.dev, que agrega advisories de vários ecossistemas.
osv-scanner scan source -r ./Trivy
O Trivy, da Aqua Security sob Apache-2.0, é o canivete suíço da lista. Ele encontra vulnerabilidades, misconfigurations e segredos, e gera SBOMs, em imagens de container, Kubernetes, repositórios de código e ambientes cloud. Se você vai instalar um único scanner para infraestrutura, é uma escolha muito comum.
trivy fs .
trivy image meuapp:latest
trivy config ./infraGrype
O Grype, da Anchore sob Apache-2.0, é um scanner de vulnerabilidades para imagens de container e filesystems. Combina bem com o Syft, o gerador de SBOM da Anchore, se você quiser separar inventário de matching.
grype dir:.
grype meuapp:latest3. Segredos: chaves e tokens no git
Um segredo commitado uma vez e apagado depois continua vivo no histórico do git. Scanners de segredos olham o histórico inteiro, não só os arquivos atuais. Comparamos as opções em detalhe em ferramentas de detecção de segredos.
Gitleaks
O Gitleaks (MIT) escaneia repos git, diretórios e arquivos procurando segredos com regras de regex e entropia. É rápido e fácil de rodar como pre-commit hook ou etapa de CI.
gitleaks git -vTruffleHog
O TruffleHog (AGPL-3.0) encontra, verifica e analisa credenciais vazadas. O diferencial é a verificação: ele consegue checar se uma chave detectada ainda está ativa, o que ajuda a priorizar. Lembre que a AGPL-3.0 traz obrigações se você modificar a ferramenta e oferecê-la como serviço de rede.
trufflehog git file://. --results=verified4. DAST: testando o app web rodando
Scanners dinâmicos não precisam do seu código. Eles enviam requests para a aplicação publicada e inspecionam as respostas, então pegam problemas de configuração e de runtime que o SAST não enxerga.
ZAP
O ZAP, que agora se chama "ZAP by Checkmarx" e tem licença Apache-2.0, é a ferramenta DAST gratuita mais conhecida. Ele faz crawling de apps web, roda scans passivos e ativos e pode ser automatizado no CI com os modos baseline e full scan. O scan autenticado funciona, mas configurar dá trabalho de verdade.
Nuclei
O Nuclei, da ProjectDiscovery sob MIT, executa templates YAML contra alvos. Cada template descreve um request e como é uma resposta vulnerável, e eles cobrem aplicações, APIs, redes, DNS e configurações cloud. É excelente para checar CVEs e exposições conhecidas em muitos hosts rapidamente.
nuclei -u https://staging.exemplo.com.br5. Rede e infraestrutura
Nmap
O Nmap descobre hosts, portas abertas e serviços, e seu motor de scripts (NSE) adiciona verificações por cima. Ele é distribuído sob a Nmap Public Source License (NPSL), baseada em termos open source mas com condições para empresas que o incorporam em produtos comerciais.
nmap -sV scanme.nmap.orgOpenVAS / Greenbone Community Edition
O OpenVAS é o componente scanner (GPL-2.0) do Greenbone Community Edition, um stack completo de gestão de vulnerabilidades de rede que também inclui o manager gvmd (AGPL-3.0) e um feed de testes de vulnerabilidades. Ele escaneia hosts e serviços procurando vulnerabilidades e misconfigurations conhecidas. Espere um setup mais pesado que o das outras ferramentas.
Como combinar tudo em um stack gratuito
- Em cada pull request: Semgrep CE (ou Bandit / Brakeman, conforme o stack), OSV-Scanner ou Trivy para dependências, Gitleaks para segredos novos.
- Em cada build de imagem: Trivy ou Grype contra a imagem, e Trivy config contra Dockerfiles, Terraform e manifests do Kubernetes.
- Uma vez, no histórico completo: TruffleHog ou Gitleaks em todos os commits, e rotacione o que ainda estiver ativo.
- Semanalmente contra staging: ZAP baseline e templates do Nuclei.
- Para infraestrutura própria: Nmap e OpenVAS nos seus ranges de IP públicos.
Para ferramentas além dos scanners, veja nosso panorama de ferramentas de penetration testing.
Os limites dos scanners gratuitos
Scanners open source são ótimos e todo time deveria rodar alguns. Mas é preciso ser honesto sobre o que eles não fazem:
- Ruído. Regras por padrão e matching de versões reportam muitos achados que não são alcançáveis nem exploráveis. Alguém precisa fazer a triagem, e os devs param de ler ferramentas que vivem dando alarme falso.
- Nada de lógica de negócio. Os bugs web mais graves costumam ser falhas de autorização como IDOR, parte do broken access control que lidera o OWASP Top 10. "O usuário A consegue ler a fatura do usuário B" não é um padrão que alguma regra case.
- Sem correção. A maioria diz o que está errado, não como mudar o código, e nenhuma abre um patch testado.
- Esforço de integração. Cinco ferramentas são cinco configs, cinco formatos de saída, cinco arquivos de ignore e ninguém dono da visão completa.
É aqui que a análise que raciocina ajuda. O AI SAST lê o código como um revisor faria, então consegue perceber que um handler valida ownership e o vizinho não. O Nurbak foi feito para isso: você conecta o GitHub e escaneia um repo, o próprio modelo de IA self-hosted analisa o código (a análise não envia seu código para a OpenAI nem para a Anthropic), e ele reporta vulnerabilidades exploráveis com arquivo e linha, CVEs de dependências, misconfigurations de GitHub Actions, Docker, Terraform e Kubernetes e segredos no histórico do git, tudo resumido em um score de 0 a 100 com explicações em linguagem simples. Ele também pode abrir um Pull Request com a correção e um teste de regressão de segurança (a correção usa Claude, com seu consentimento explícito). O scan gratuito mostra completos os 3 achados mais importantes. Dá para testar na página do scanner de vulnerabilidades.
Scanners vs auditorias vs pentests
Scanners, uma auditoria de segurança de código e um pentest respondem perguntas diferentes. Scanners respondem "temos padrões ou versões ruins conhecidas?" em cada commit. Um pentest white-box responde "alguém que lê nosso código consegue entrar?". Um pentest humano responde "o que um atacante criativo consegue encadear?". Se você vai contratar este último, nosso guia para escolher uma empresa de pentest mostra o que perguntar, e nosso modelo de relatório de pentest mostra como é uma boa entrega.
Conclusão
Comece pelas ferramentas gratuitas que combinam com seu stack: uma engine SAST, um scanner de dependências e containers, um scanner de segredos. Adicione ZAP ou Nuclei quando tiver um staging que valha testar, e Nmap ou OpenVAS se você mantém seus próprios servidores. Confira a licença de cada uma antes de colocar em um pipeline comercial, principalmente CodeQL, Brakeman e TruffleHog. Depois cubra a lacuna que as ferramentas por padrão deixam, autorização e lógica de negócio, com revisão que raciocine ou com um scanner de vulnerabilidades que entenda seu código.
