Nos 2.740 casos do benchmark, o Conviso AST encontrou 1.118 vulnerabilidades reais e gerou só 33 alertas falsos. São 94% menos falsos positivos que o Semgrep OSS, que encontrou as mesmas vulnerabilidades.
Menos ruído, sem perder detecção
O Conviso AST combina um scanner de código com uma análise de falsos positivos baseada em IA. A IA lê o arquivo onde o alerta apareceu e verifica se o dado controlado pelo atacante chega de fato ao ponto vulnerável. Só os alertas confirmados chegam à Conviso Platform.
| Suite de Benchmark | Conviso AST |
|---|---|
| Vulnerabilidades reais no benchmark | 1.415 |
| Vulnerabilidades reais identificadas | 1.118 |
| Casos não vulneráveis no benchmark | 1.325 |
| Alertas falsos (falsos positivos) | 33 |
| Precisão | 97,1% |
| Recall | 79,0% |
| F1 | 87,1% |
| Taxa de falsos positivos | 2,5% |
Em 2.258 alertas avaliados pela IA, nenhuma vulnerabilidade real foi descartada, e 94,3% dos alertas falsos foram removidos.
A precisão de 97,1% significa que, de cada 100 alertas do Conviso AST, 97 são vulnerabilidades reais. Para quem faz a triagem, isso reduz a revisão de alertas falsos de 552 para 33 nos mesmos 2.740 casos.
Aceitando CWEs equivalentes à da categoria (por exemplo, CWE-326 em casos de criptografia fraca), o recall sobe para 88,2% e o F1 para 92,6%. A pontuação principal usa a regra estrita do OWASP Benchmark.
Comparação com outras ferramentas
O Semgrep OSS foi executado por nós nos mesmos casos e nas mesmas condições. A Cycode publicou resultado no OWASP Benchmark e aparece com o número divulgado. Abaixo, os números que Corgea, DeepSource, Snyk, Checkmarx, Endor Labs, Aikido e Wiz publicaram em conjuntos de teste próprios.
| Ferramenta | Precisão | Recall | F1 | Taxa de FP | Origem dos números |
|---|---|---|---|---|---|
| Conviso AST | 97,1% | 79,0% | 87,1% | 2,5% | medido · 2.740 casos |
| Semgrep OSS | 66,9% | 79,0% | 72,5% | 41,7% | medido · 2.740 casos |
| Cycode | – | – | – | 2,1% | publicado · versão não informada [11] |
| Outros conjuntos de teste · não comparáveis diretamente | |||||
| Corgea | 82,4% | 89,4% | 85,7% | – | publicado · 1 repositório, 47 vulnerabilidades [6] [7] |
| DeepSource | 100% | 73,2% | 84,5% | – | publicado · OpenSSF CVE Benchmark (JS/TS), 165 casos [8] |
| Snyk | 78,8% | 55,3% | 65,0% | – | publicado · 1 repositório, 47 vulnerabilidades [7] |
| Checkmarx | – | – | 64,0% | – | publicado · 7 aplicações, 747 findings [5] |
| Endor Labs | – | 43,5% | 46,5% | – | publicado · 8 repositórios, gabarito próprio [1] |
| Aikido | 86,7% | 27,7% | 41,9% | – | publicado · 1 repositório, 47 vulnerabilidades [6] |
| Wiz (Atlas) | – | – | – | – | publicado · CyberGym, 1.507 vulnerabilidades: 90,9% de sucesso [14] |
A Cycode publicou só a taxa de falsos positivos, sem recall. Corgea, DeepSource, Snyk, Checkmarx, Endor Labs e Aikido publicaram resultados em conjuntos próprios, fora do OWASP Benchmark, e nem todos divulgaram as três métricas. A Wiz publicou só a taxa de sucesso do Atlas no CyberGym, que mede outra tarefa (reprodução de vulnerabilidades conhecidas). Por isso esses números servem de referência e não foram reexecutados.
Identificação por categoria
Sete das onze categorias do benchmark passam de 90% de identificação, incluindo SQL injection, command injection e path traversal.
| Categoria | CWE | Vulnerabilidades reais | Identificadas | % identificação | Alertas falsos |
|---|---|---|---|---|---|
| SQL injection | 89 | 272 | 253 | 93,0% | 7 |
| Weak randomness | 330 | 218 | 218 | 100,0% | 0 |
| Cross-site scripting | 79 | 246 | 202 | 82,1% | 0 |
| Path traversal | 22 | 133 | 120 | 90,2% | 7 |
| Command injection | 78 | 126 | 117 | 92,9% | 14 |
| Weak cryptography | 327 | 130 | 130* | 100,0%* | 0 |
| Weak hashing | 328 | 129 | 89 | 69,0% | 0 |
| Trust boundary violation | 501 | 83 | 43 | 51,8% | 0 |
| Insecure cookie | 614 | 36 | 36 | 100,0% | 0 |
| LDAP injection | 90 | 27 | 26 | 96,3% | 5 |
| XPath injection | 643 | 15 | 14 | 93,3% | 0 |
| Total | 1.415 | 1.118 (1.248*) | 79,0% (88,2%*) | 33 |
* O Conviso AST identifica os 130 casos de criptografia fraca, mas os reporta com a CWE-326 (força de criptografia insuficiente), e a regra estrita do OWASP Benchmark só aceita a CWE-327. Por isso esses casos ficam fora do total estrito de 1.118 (79,0%). Contando-os, o total é 1.248 (88,2%).
Como a análise de IA decide
Cada alerta descartado vem com a justificativa da IA. No caso abaixo, o scanner viu um parâmetro HTTP chegar a Runtime.exec(). A IA seguiu o fluxo no arquivo e mostrou que o parâmetro nunca chega lá.
"The cookie value (param) is never assigned to bar. The condition (7*42)-86 > 200 is always true (208 > 200), so bar is always the hardcoded constant 'This_should_always_happen'. cmd comes only from a hardcoded 'echo' helper or is empty. No user-controlled input reaches Runtime.exec(), so command injection is not possible."
Tradução: o valor do cookie (param) nunca é atribuído a bar. A condição (7*42)-86 > 200 é sempre verdadeira (208 > 200), então bar é sempre a constante fixa. O comando vem apenas de um helper fixo com 'echo' ou fica vazio. Nenhuma entrada controlada pelo usuário chega a Runtime.exec(), então não há command injection.
O que outros fornecedores publicaram
Em 2026, vários fornecedores divulgaram benchmarks de SAST com IA. Cada um usou um conjunto de código e um critério próprios, então os números abaixo mostram o patamar do mercado e não formam um ranking com o Conviso AST.
| Ferramenta | Conjunto avaliado | Precisão | Recall | F1 | Fonte |
|---|---|---|---|---|---|
| Conviso AST | OWASP Benchmarks, 2.740 casos | 97,1% | 79,0% | 87,1% | este estudo |
| Corgea | 1 repositório, 47 vulnerabilidades | 82,4% | 89,4% | 85,7% | [6] [7] |
| DeepSource | OpenSSF CVE Benchmark (JS/TS), 165 casos | 100% | 73,2% | 84,5% | [8] |
| Snyk | 1 repositório, 47 vulnerabilidades | 78,8% | 55,3% | 65,0% | [7] |
| Checkmarx | 7 aplicações, 747 findings | – | – | 64,0% | [5] |
| Semgrep Multimodal | corpus privado de repositórios | 69,4% | 43,5% | 53,5% | [2] |
| Endor Labs | 8 repositórios, gabarito próprio | – | 43,5% | 46,5% | [1] |
| Aikido | 1 repositório, 47 vulnerabilidades | 86,7% | 27,7% | 41,9% | [6] |
| Claude Security | 4 repositórios, 144 IDORs | 80,0% | 13,9% | 23,7% | [3] |
| Cycode | OWASP Benchmark, versão não informada | – | – | – | [11] taxa de FP 2,1% |
| Wiz (Atlas) | CyberGym, 1.507 vulnerabilidades | – | – | – | [14] taxa de sucesso 90,9% |
Números copiados das publicações originais em 14/10/2026. Os conjuntos diferem em linguagem, tamanho e critério de acerto; comparações diretas só valem dentro do mesmo conjunto.
Metodologia
- Conjunto de teste
- OWASP Benchmarks v1.2, projeto aberto da OWASP usado como referência por fornecedores de SAST. São 2.740 casos de teste, cada um um servlet Java executável: 1.415 com uma vulnerabilidade real e 1.325 que parecem vulneráveis mas não são exploráveis. Os casos cobrem 11 categorias, cada uma ligada a uma CWE.
- Gabarito
- O arquivo de resultados esperados publicado pela OWASP (
expectedresults-1.2.csv), que diz para cada caso se ele é vulnerável e qual a CWE. Ninguém da Conviso rotulou casos. - Preparação
- Removemos dos casos comentários, nomes de classe e rotas que revelam a resposta (por exemplo,
/sqli-00/…), sem alterar nenhuma linha de código, para que a análise de IA não se apoiasse em pistas do benchmark. - Conviso AST
- Scanner
conviso-ast4.0.7, com 1.154 regras, e análise de falsos positivos com IA (Claude Opus 5.5), que recebe o arquivo completo de cada alerta. - Semgrep OSS
- Versão 1.146.0 com o conjunto de regras
p/default, executado nos mesmos casos. - Pontuação
- Critério do OWASP BenchmarkUtils: um caso conta como identificado quando a ferramenta reporta, no arquivo do caso, a CWE da categoria. Realizamos 5 rodadas de execução, em outubro de 2026.
As métricas, em linguagem simples
Cada caso do benchmark tem uma resposta conhecida. Comparando o que a ferramenta reportou com essa resposta, cada caso cai em um de quatro grupos.
| A ferramenta reportou | A ferramenta não reportou | |
|---|---|---|
| Caso vulnerável | Verdadeiro positivo (VP): 1.118 | Falso negativo (FN): 297 |
| Caso não vulnerável | Falso positivo (FP): 33 | Verdadeiro negativo (VN): 1.292 |
Fontes
- Endor Labs. AI SAST benchmark, 30/06/2026.
- Semgrep. 3.5x more true positives, 12/06/2026.
- Semgrep. Mythos IDOR benchmark, 25/08/2026.
- Checkmarx Zero. Proof, not promises, 11/06/2026.
- Checkmarx. Your scanner's accuracy claims are only half the story, 16/06/2026.
- Corgea. Corgea vs Aikido, 02/07/2026.
- Corgea. Corgea vs Snyk, 02/07/2026.
- DeepSource. Benchmarks.
- Tal et al. Snyk VulnBench JS 1.0, arXiv:2606.15762, 2026.
- Aikido. Aikido vs Claude Security (Mythos), 24/08/2026.
- Cycode. Next-generation SAST, 2025, atualizado em 2026.
- Block Engineering. benchmrk, 20/04/2026.
- OWASP. OWASP Benchmarks.
- Wiz. Atlas: Wiz's AI vulnerability researcher, 27/07/2026.
Veja o Conviso AST no seu código
Traga um repositório: mostramos os alertas confirmados e a justificativa da IA para cada descarte.
Agendar 30 minutos

.png)