O juiz é código: como matamos o falso-positivo antes do report
Como um firewall determinístico — 10 gates, AutoReject e confiança recomputada — mata o falso-positivo antes do report, com o juiz sendo código e não a IA.
O scanner acha tudo — e te deixa a conta
Ferramenta de scan é otimizada para recall: dispara assinatura atrás de assinatura e marca qualquer coisa que cheire a vulnerabilidade. O reflexo de um parâmetro na resposta vira "XSS". Um 200 num ID incrementado vira "IDOR". Um Access-Control-Allow-Origin permissivo vira "CORS High". O resultado é um balde de candidatos onde o trabalho de verdade — separar bug de ruído — sobra pra você. O falso-positivo não foi morto; foi terceirizado.
O Omni Pentest inverte isso. Antes de qualquer coisa virar report, o candidato passa por um firewall determinístico — e o juiz é código, não o modelo.
10 gates + AutoReject: o funil que a IA não controla
A IA caça, modela o alvo e propõe findings. Mas ela não decide o que é report. Cada candidato atravessa dez gates sequenciais mais uma camada de AutoReject. Cada gate faz uma pergunta binária sobre a evidência, não sobre a narrativa:
- O reflexo de XSS executou de fato, ou só apareceu encodado no HTML?
- O 200 do "IDOR" trouxe o objeto de outro tenant, com dado real alcançado — ou o mesmo recurso do próprio usuário?
- O CORS permissivo vazou um dado, ou é uma primitiva que chega mas não colhe nada?
Se qualquer gate falha, o candidato morre ali. Determinístico significa: mesma evidência, mesmo veredito, toda vez — sem "acho que dá report".
A confiança é recomputada, não declarada
O número de confiança que o modelo escreve não vale nada por si. O firewall recomputa a confiança a partir da evidência que está de fato anexada, e só passa o finding cuja confiança recalculada bate no teto. Se a prova não sustenta a alegação, o placar cai sozinho — e o candidato não avança. Você não "convence" o firewall com prosa; ou o artefato existe, ou não existe.
Na dúvida, descarta
O default do firewall é KILL. Não "sinalizar para revisão", não "deixar passar com ressalva" — matar. Na dúvida, mata. Isso é deliberado: um report recusado por falso-positivo custa reputação com o programa e queima o tempo do triador. É mais barato descartar dez candidatos fracos do que mandar um furado. A régua premia precisão, não volume.
Há uma exceção que não é matar: quando o candidato prova uma primitiva mas ainda não demonstrou consequência (chega no CORS mas não colheu dado; injeta mas se autocontém), ele não vira report nem é descartado — volta pra caça atrás do impacto que falta. Morto é só o que a evidência refuta.
Severidade sai da evidência, não do adjetivo
Sobrevivendo ao firewall, a criticidade também não é escolhida — é derivada. Um vetor CVSS 4.0 é montado a partir dos artefatos: impacto alto de integridade ou confidencialidade só entra com prova estruturada, nunca porque o texto disse "crítico". Leitura de dado, sem manipular/editar/apagar, tem teto em High. A âncora do programa só rebaixa, nunca infla.
O último gate é humano
O firewall não submete nada. Ele entrega ao operador um finding que já sobreviveu aos dez gates, com confiança recomputada e severidade derivada — mais o PoC em vídeo. A decisão de mandar é sua, sempre.
É essa a diferença entre um balde de alertas e uma fila curta de bugs que você assina com confiança. O firewall roda no seu VPS, junto com o resto do Omni Pentest — self-hosted, sua chave, seu escopo. Vale entender como ele decide antes de rodar a primeira caça.