documentação — primeiros passos, como ler um achado e guia de scanners
← Fechar

Documentação

Como começar, como ler o que a plataforma encontra, e o que cada scanner faz — inclusive os impactos e pré-requisitos de cada ferramenta. Leia a seção de scanners antes de disparar um scan em ambientes de produção.

Nesta página
🚀 Primeiros passos

O caminho mais curto do cadastro até o primeiro achado lido:

  1. Cadastre um alvo. Em Alvos → Novo alvo, escolha o tipo (site/URL, repositório Git, ou host/rede) e informe o valor. Alguns tipos exigem verificação de posse antes do primeiro scan.
  2. Dispare uma varredura. Em Scans → Novo scan, escolha o alvo e um scanner compatível com o tipo dele (a tabela em Tabela resumo mostra qual scanner serve para qual tipo de alvo).
  3. Acompanhe o status. O job passa por queuedrunningsucceeded (ou failed, com o motivo). A maioria dos scanners termina em minutos — os de rede (OpenVAS) e os assíncronos (Dependency-Track) podem levar bem mais, ver tempo estimado de cada um.
  4. Leia os achados. Em Findings, cada achado vem com severidade, e — depois de processado pelo motor de priorização — um nível de prioridade e o motivo dele estar onde está. Ver Como interpretar um achado para o que cada campo significa.
  5. Confira o uso do seu plano. No menu da conta (canto inferior esquerdo) → Solicitar upgrade de plano, o modal mostra quantos alvos, scans do mês, usuários e sensores você já usa frente ao limite contratado — antes de esbarrar num bloqueio.
  6. (Opcional) Instale um sensor. Se o alvo está numa rede que a plataforma não alcança de fora (rede interna, atrás de NAT), ou se você não quer que código-fonte/hosts saiam do seu perímetro, veja Instalar sensores remotos.

🧭 Como interpretar um achado

Um achado (finding) chega da varredura com uma severidade atribuída pelo próprio scanner que o encontrou. A plataforma então calcula, em cima disso, um nível de prioridade — a pergunta que geralmente importa mais não é "quão grave é isto isoladamente", é "o que eu corrijo primeiro".

Severidade — o que o scanner disse

Uma de Critical, High, Medium, Low ou Info, atribuída pelo scanner conforme o critério dele (CVSS quando aplicável, heurística própria quando não). É o dado bruto — ainda não leva em conta se aquele CVE é explorado ativamente, se o ativo é crítico para o negócio, ou há quanto tempo o achado está aberto.

Nível de prioridade (tier) — o que a plataforma concluiu

Uma escala própria de cinco níveis, na mesma linguagem em toda a interface — nunca "baixo/médio/alto":

NívelSignifica
calmRisco baixo pela combinação de fatores — não precisa de ação imediata.
watchVale observar; não é prioridade de correção agora.
alertMerece entrar na fila de correção em prazo razoável.
severeRisco alto pela combinação de fatores — candidato a correção prioritária.
extremeNão é "mais grave que severe" — é uma categoria à parte: o CVE deste achado está no catálogo CISA KEV (exploração ativa confirmada, não hipotética). Sempre que isso acontece, o achado vai para extreme independente de qualquer outro cálculo.

O nível vem de um número de 0 a 100 (o "composto"), calculado a partir de cinco fatores: severidade, EPSS, criticidade do ativo afetado, tempo em aberto frente ao prazo esperado para a severidade, e confiabilidade do achado (se o scanner confirmou o achado, e se ele já reapareceu depois de corrigido). Quando um fator não se aplica — por exemplo, um achado de SAST não tem CVE, logo não tem EPSS — o peso dele é redistribuído entre os demais, em vez de contar como zero. Isso evita penalizar sistematicamente achados que nunca teriam aquele dado.

ℹ️ Todo achado priorizado vem com um motivo (priority_reason) — a frase que explica, em português, por que ele está no nível em que está. Se a explicação não fizer sentido pra você, é sinal de que vale reportar — o objetivo é que qualquer pessoa consiga ler o motivo e concordar (ou discordar, com argumento) com a prioridade.

EPSS e CISA KEV — as duas fontes externas

EPSS (Exploit Prediction Scoring System, mantido pela FIRST.org) é uma estimativa — não uma certeza — da probabilidade de um CVE ser explorado nos próximos 30 dias. CISA KEV (Known Exploited Vulnerabilities, mantido pela agência de cibersegurança dos EUA) é uma lista fechada: só entra um CVE com exploração já confirmada em ataques reais. É por isso que KEV vira extreme por override, e EPSS é só mais uma das cinco dimensões do composto — uma é fato observado, a outra é estimativa.

SLA de remediação — quanto tempo é "tempo demais"

SeveridadePrazo esperado
Critical7 dias
High30 dias
Medium90 dias
Low180 dias
Info365 dias

Achado aberto além do prazo da própria severidade pesa mais no composto — é a dimensão "idade vs. SLA".

Depois de ler: decidir e agir

Um achado pode receber uma decisão formal — corrigido, risco aceito (com responsável e prazo de reavaliação) ou falso positivo — que fica registrada com autor e data. Achados com decisão formal saem da lista de prioridades: já foram triados, não competem mais por atenção. Para o que ainda está em aberto, é possível abrir um plano de ação (responsável, prazo, evidência de correção) direto no achado. E o resumo executivo (Conta → Resumo) traduz tudo isso — quantos achados em cada nível, e por que o do topo é o do topo — em texto corrido, sem precisar entrar achado por achado.


🛰️ Instalar sensores remotos

Um sensor é um pequeno programa que roda numa máquina dentro da sua rede e faz as varreduras ali, do lado de dentro do firewall — em vez de a plataforma tentar alcançar seus sistemas de fora. Ele abre a conexão sempre de dentro para fora (só de saída), então nenhuma porta precisa ser aberta. Assim, código-fonte, hosts internos e pacotes de SO nunca saem do seu perímetro.

Tipos de sensor

TipoO que escaneiaPrecisa de
Aplicações webSites/sistemas web internos — ZAP, Nikto, testssl
RepositóriosCódigo: segredos e falhas — Gitleaks, Opengrep, ESLint. Também gera o SBOM do Dependency-Track localmente (com syft) e envia só a lista de componentes, nunca o código.Token do Git (repos privados)
Host / redeServidores e rede — OpenVAS + Vuls (via SSH)Chave SSH (Vuls)
CompletoOs três acima num só applianceO que cada um pede
Pentest com IA (Strix)Agente que explora e prova cada achadoChave de LLM própria + lista de alvos

Passo a passo

  1. Pré-requisitos: uma máquina Linux na rede a escanear, com Docker e Docker Compose instalados, e saída HTTPS para a plataforma.
  2. No painel, vá em Conta → Sensores Remotos → Novo sensor. Escolha o tipo, dê um identificador (ex.: matriz-sp) e clique em Gerar pacote. Para o Strix, preencha ali o modelo de IA, a chave e os alvos permitidos.
  3. Baixe o .zip — a credencial já vem dentro dele, e só é mostrada uma vez.
  4. Copie para a máquina e descompacte: unzip bscope-*.zip -d sensor, depois cd na pasta criada.
  5. Configuração por tipo (só a do seu pacote):
    • Host/rede — OpenVAS: troque a senha padrão em openvas/.env e no docker-compose.yml (têm que ser iguais). Primeiro boot demora ~30 min (baixa o feed).
    • Host/rede — Vuls: gere uma chave SSH em vuls-ssh/ e autorize nos servidores alvo.
    • Repositórios: cadastre o token Git no alvo (Targets → 🔑) ou preencha GIT_TOKEN em repo/.env — no segundo caso o token não sai da sua máquina. Havendo os dois, o do painel vence.
    • Strix: se não preencheu no painel, edite strix/.env com LLM_API_KEY e ALLOWED_TARGETS, e crie /var/tmp/breachscope-strix.
  6. Suba: docker compose up -d e acompanhe com docker compose logs -f.
  7. Confirme: em até 1 min o sensor aparece como Online em Conta → Sensores Remotos.

Usar o sensor num scan

Cadastre ou edite um alvo do tipo compatível e escolha o sensor no campo "Executar em". Vuls e Strix rodam por sensor — se disparar sem escolher um, o painel avisa.

Segurança. A conexão é sempre de saída (nenhuma porta aberta) e as credenciais (SSH, Git, chave de IA) ficam na máquina. Só os resultados sobem. Exceção do Strix: por usar IA, ele envia trechos do alvo ao provedor de LLM que você configurou (com a sua chave) — por isso ele exige autorização por escrito do alvo.
Tabela resumo
ScannerCategoriaAlvoImpactoTempo est.Precisa de acesso ao código?
ZAPDASTweb_url● ativo5–15 minNão
NiktoDASTweb_url● passivo2–5 minNão
testsslDASTweb_url● passivo1–3 minNão
GitleaksSASTgit_repo● passivo1–5 minSim (clone)
OpengrepSASTgit_repo● passivo2–8 minSim (clone)
ESLintSASTgit_repo● passivo1–4 minSim (clone)
GrypeSCAgit_repo● passivo1–3 minSim (clone)
Dependency-TrackSCAgit_repo● passivo5–20 minSim (clone) — ou via sensor de repositório, só o SBOM sai
OpenVASNetworkhost● agressivo30 min–4hNão
Google LighthousePerformanceweb_url● passivo30–60 segNão
JoernArquiteturagit_repo● passivo1–10 minSim (clone)
VulsNetworkhost● passivo3–15 minNão — lê pacotes via SSH
StrixDASTweb_url● agressivo30 min–4hNão — só por sensor
● passivo = só lê, não modifica  |  ● ativo = envia requisições de teste  |  ● agressivo = pode causar indisponibilidade

DAST
Análise dinâmica de aplicações web
Testa a aplicação em execução, de fora, como um atacante faria
OWASP ZAP
5–15 min
Scanner DAST completo. Faz spider da aplicação, descobre endpoints e executa testes ativos de injeção (SQL, XSS, path traversal, etc). É o scanner mais abrangente para aplicações web.
ativo XSSSQLiOWASP Top 10autenticação
Impacto no alvo: envia requisições de teste com payloads maliciosos. Pode criar registros no banco, disparar e-mails, ou logar tentativas de ataque.
🎯
Melhor para: auditoria completa de aplicações web antes de releases ou em ambientes de staging.
⚠️ Execute em ambiente de staging antes de produção. Pode criar dados espúrios no banco e disparar alertas de segurança.
Nikto
2–5 min
Scanner de configuração de servidor web. Verifica cabeçalhos HTTP inseguros, arquivos sensíveis expostos (robots.txt, .env, backups), versões de software desatualizadas e configurações incorretas.
passivo headersarquivos expostosversões
Impacto no alvo: baixo. Apenas requisições GET para paths conhecidos. Não modifica dados.
🎯
Melhor para: check rápido de hardening do servidor. Seguro para produção.
testssl.sh
1–3 min
Audita a configuração TLS/SSL do servidor. Detecta protocolos fracos (SSLv3, TLS 1.0), cifras inseguras, certificados expirados ou inválidos, e vulnerabilidades como BEAST, POODLE, Heartbleed.
passivo TLScertificadoscifrasHeartbleed
Impacto no alvo: mínimo. Handshakes TLS de teste. Completamente seguro para produção.
🎯
Melhor para: compliance (PCI-DSS, LGPD) e auditoria de certificados.
ℹ️ Requer que a URL use HTTPS (porta 443). Não funciona em HTTP puro.

SAST
Análise estática de código-fonte
Analisa o código em repouso, sem executá-lo
Gitleaks
1–5 min
Detecta segredos e credenciais expostos no histórico Git: tokens de API, senhas, chaves AWS, certificados privados, strings de conexão de banco de dados — inclusive em commits antigos.
passivo secretstokenshistórico GitAWS keys
Impacto no alvo: nenhum. Só lê o repositório localmente.
🎯
Melhor para: descobrir credenciais vazadas antes que atacantes as encontrem. Deve ser o primeiro scanner a rodar em qualquer repositório.
Opengrep
2–8 min
Análise estática multi-linguagem com rastreamento de fluxo de dados (taint analysis): segue o caminho de um valor da entrada até um ponto perigoso, em vez de apenas casar padrões. Detecta injeção, uso inseguro de criptografia e falhas específicas por linguagem. Substituiu o SonarQube (desligado por licença — os analisadores do Community Build passaram a excluir oferta como serviço a terceiros). Cobertura por linguagem: profunda em Java, JavaScript, Python, Scala, Kotlin e Go; mínima em PHP, Ruby e TypeScript, onde o conjunto de regras com licença compatível com serviço hospedado ainda é pequeno. Nessas três, um resultado sem achados diz que estas regras não encontraram nada — não que o código esteja livre de falhas.
passivo taint analysisinjeçãomulti-linguagem
Impacto no alvo: nenhum. Análise local do código.
🎯
Melhor para: CI/CD, e para achar falhas que dependem do caminho do dado e não só da forma da linha.
📋
Conjunto de regras fixo: as regras vêm versionadas na imagem, não baixadas em tempo de execução — o mesmo commit rende o mesmo resultado hoje e daqui a seis meses.
ESLint Security
1–4 min
Lint de segurança para JavaScript e TypeScript. Detecta uso de eval(), innerHTML sem sanitização, regex inseguros (ReDoS), acesso direto a process.env, e outras más práticas comuns em código Node.js e frontend.
passivo JavaScriptTypeScriptevalXSS
Impacto no alvo: nenhum. Análise local do código.
🎯
Melhor para: projetos JavaScript/Node.js. Complementa o Opengrep.

SCA
Análise de composição de software
Detecta vulnerabilidades em bibliotecas e dependências de terceiros
Grype
1–3 min
Verifica o repositório contra bancos de CVE (NVD, GitHub Advisory) para encontrar dependências com vulnerabilidades conhecidas. Usa banco embutido na imagem — rápido e sem necessidade de internet no runtime.
passivo CVEdependênciasnpmpipmaven
Impacto no alvo: nenhum. Analisa os arquivos de lock localmente.
🎯
Melhor para: verificação rápida de CVEs. Resultado em minutos.
Dependency-Track
5–20 min
Gera um SBOM (Software Bill of Materials — lista completa de componentes) e envia para análise assíncrona no Dependency-Track, que correlaciona com múltiplos bancos de vulnerabilidades (NVD, OSV, VulnDB).
passivo SBOMCycloneDXNVDOSV
Atenção: análise assíncrona — o resultado pode demorar 5–20 min após o disparo.
🌐
Via sensor de repositório: o SBOM é gerado com syft na sua própria máquina — só o arquivo CycloneDX (a lista de componentes) sobe para a plataforma, o código-fonte nunca sai do seu perímetro.
🎯
Melhor para: inventário completo de componentes e rastreabilidade de licenças. Complementa o Grype.

Network
Varredura de rede e infraestrutura
Analisa hosts, portas e serviços de rede
OpenVAS / GVM
30 min – 4 horas
Scanner de vulnerabilidades de rede completo. Faz port scan, identifica serviços em execução, verifica versões contra bancos de CVE, testa autenticação padrão e executa mais de 70.000 testes de vulnerabilidade (NVTs).
agressivo port scanCVEcredenciais padrão70k+ NVTsCVSS
Impacto no alvo: alto. Envia tráfego intenso de varredura. Pode causar lentidão em serviços, disparar alertas de IDS/IPS, e em casos raros derrubar serviços instáveis.
Duração: scans completos levam entre 30 minutos e 4 horas, dependendo do número de hosts e portas. O job fica com status "running" durante todo o scan — a coleta de resultados é feita automaticamente ao final.
🌐
Rede privada: para escanear hosts dentro da rede do cliente (atrás de NAT), instale o componente Sensor disponível na criação do target tipo "host". O sensor escaneia localmente e envia os resultados para a plataforma via HTTPS.
🎯
Melhor para: auditoria de infraestrutura, servidores, dispositivos de rede e sistemas internos.
⚠️ ATENÇÃO: Execute apenas em hosts que você tem autorização explícita para testar. Varreduras não autorizadas são ilegais. Prefira janelas de manutenção em produção.

Performance
Performance e qualidade web
Audita velocidade, acessibilidade, SEO e boas práticas de front-end
Google Lighthouse
30–60 seg
Audita a página em 4 frentes: Performance (tempo de carregamento, JS não utilizado, imagens não otimizadas), Acessibilidade (contraste, landmarks, texto alternativo), Best Practices (HTTPS, erros de console) e SEO (meta tags, links rastreáveis). Roda um navegador headless de verdade contra a URL.
passivo performanceacessibilidadeSEObest practices
Impacto no alvo: nenhum. Apenas carrega a página como um visitante normal faria.
🎯
Melhor para: checar a saúde de páginas públicas — não é um scanner de vulnerabilidade, é qualidade e experiência do usuário.

Arquitetura
Mapa estrutural do código
Extrai a estrutura de funções e chamadas do repositório
Joern
1–10 min
Analisa o código-fonte e extrai um grafo de funções e chamadas entre elas — quem chama quem, incluindo chamadas para bibliotecas externas. O resultado alimenta o Mapa de Código, uma visualização interativa (aba própria no menu).
passivo grafo de chamadasvisualização
Impacto no alvo: nenhum. Só clona e analisa o repositório localmente.
🎯
Melhor para: entender a estrutura de um repositório novo ou grande — onde ficam os pontos de entrada, o que chama o quê.
ℹ️ Importante: diferente dos demais scanners desta página, o Joern não produz findings de vulnerabilidade. Ele gera a estrutura do código; a detecção de vulnerabilidades continua sendo feita pelo Opengrep, ESLint, Gitleaks e demais scanners SAST.

✅ Boas práticas
Ordem recomendada
Para uma análise completa de uma aplicação web com repositório:

1. Gitleaks — segredos no código (rápido, passivo)
2. Opengrep + ESLint — vulnerabilidades no código
3. Grype — CVEs nas dependências
4. Nikto + testssl — configuração do servidor
5. ZAP — testes dinâmicos (staging)
Produção vs. staging
Seguros para produção: testssl, Nikto, Gitleaks, Opengrep, ESLint, Grype, Dependency-Track, Lighthouse, Joern.

Prefira staging: ZAP (cria dados), OpenVAS (tráfego intenso).

Nunca sem autorização: OpenVAS em redes de terceiros.
Agendamentos recomendados
Diário: Gitleaks, Grype (rápidos, passivos)
Semanal: Opengrep, ESLint, Nikto, testssl, Lighthouse
Quinzenal: ZAP, Dependency-Track, Joern (após mudanças estruturais)
Mensal: OpenVAS (impacto alto, longo)

📚 Glossário
TermoSignificado
Achado (finding)Um problema específico encontrado por um scanner numa varredura — tem severidade, componente/local, e (depois de processado) um nível de prioridade.
Alvo (target)O que é escaneado: um site/URL, um repositório Git, ou um host/rede.
CompostoNúmero de 0 a 100 que resume as cinco dimensões ponderadas do motor de priorização. Não é CVSS nem EPSS — é próprio da plataforma. Ver Como interpretar um achado.
CVECommon Vulnerabilities and Exposures — identificador público de uma vulnerabilidade conhecida (ex.: CVE-2024-12345), atribuído por uma autoridade de numeração.
CVSSCommon Vulnerability Scoring System — nota padrão da indústria (0-10) para gravidade de uma vulnerabilidade, definida por quem publica o CVE. Diferente do "composto" desta plataforma.
CWECommon Weakness Enumeration — categoria do TIPO de falha (ex.: CWE-79 é Cross-Site Scripting), não de uma ocorrência específica como o CVE.
EPSSExploit Prediction Scoring System (FIRST.org) — probabilidade estimada de um CVE ser explorado nos próximos 30 dias. É estimativa, não certeza.
CISA KEVKnown Exploited Vulnerabilities — catálogo de CVEs com exploração ATIVA já confirmada (não hipotética), mantido pela agência de cibersegurança dos EUA. Achado nesse catálogo vira nível extreme por override.
Nível de prioridade (tier)Uma de calm, watch, alert, severe ou extreme — a conclusão da plataforma sobre quão prioritário é um achado. Ver a tabela em Como interpretar um achado.
priority_reasonA frase que explica, em português, por que um achado está no nível de prioridade em que está — sempre presente quando há prioridade calculada.
Falso positivoDecisão formal de que um achado não é um problema real. Fica registrada com autor e data, e o achado sai da lista de prioridades.
Risco aceitoDecisão formal de conviver com o risco de um achado (com responsável e prazo de reavaliação), em vez de corrigi-lo agora. Também sai da lista de prioridades — mas continua existindo, diferente de "resolvido".
Plano de açãoRegistro de responsável, prazo e evidência de correção associado a um achado específico, com histórico de mudanças.
SBOMSoftware Bill of Materials — lista completa dos componentes (bibliotecas, versões) que compõem um software, no formato CycloneDX.
SensorPrograma que roda dentro da rede do cliente e faz a varredura ali, enviando só o resultado — código-fonte e hosts internos nunca saem do perímetro do cliente. Ver Instalar sensores remotos.
SLA de remediaçãoPrazo esperado (em dias) para corrigir um achado, por severidade — ver tabela em Como interpretar um achado. Achado aberto além do prazo pesa mais no composto.
TenantA conta/organização dentro da plataforma — cada tenant só vê os próprios dados.
Uso do planoConsumo atual de cada recurso limitado pelo plano contratado (alvos, scans do mês, usuários, sensores) frente ao limite — no menu da conta → Solicitar upgrade de plano.