- 🚀 Primeiros passos
- 🧭 Como interpretar um achado
- 🛰️ Instalar sensores remotos
- 🌐 DAST — análise dinâmica web
- 📄 SAST — análise estática de código
- 📦 SCA — dependências e CVEs
- 🔌 Network — infraestrutura
- ⚡ Performance — qualidade web
- 🗺️ Arquitetura — mapa do código
- 📊 Tabela resumo
- ✅ Boas práticas
- 📚 Glossário
O caminho mais curto do cadastro até o primeiro achado lido:
- 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.
- 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).
- Acompanhe o status. O job passa por
queued→running→succeeded(oufailed, 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. - 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.
- 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.
- (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.
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ível | Significa |
|---|---|
| calm | Risco baixo pela combinação de fatores — não precisa de ação imediata. |
| watch | Vale observar; não é prioridade de correção agora. |
| alert | Merece entrar na fila de correção em prazo razoável. |
| severe | Risco alto pela combinação de fatores — candidato a correção prioritária. |
| extreme | Nã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.
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"
| Severidade | Prazo esperado |
|---|---|
| Critical | 7 dias |
| High | 30 dias |
| Medium | 90 dias |
| Low | 180 dias |
| Info | 365 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.
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
| Tipo | O que escaneia | Precisa de |
|---|---|---|
| Aplicações web | Sites/sistemas web internos — ZAP, Nikto, testssl | — |
| Repositórios | Có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 / rede | Servidores e rede — OpenVAS + Vuls (via SSH) | Chave SSH (Vuls) |
| Completo | Os três acima num só appliance | O que cada um pede |
| Pentest com IA (Strix) | Agente que explora e prova cada achado | Chave de LLM própria + lista de alvos |
Passo a passo
- Pré-requisitos: uma máquina Linux na rede a escanear, com Docker e Docker Compose instalados, e saída HTTPS para a plataforma.
- 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. - Baixe o .zip — a credencial já vem dentro dele, e só é mostrada uma vez.
- Copie para a máquina e descompacte:
unzip bscope-*.zip -d sensor, depoiscdna pasta criada. - Configuração por tipo (só a do seu pacote):
- Host/rede — OpenVAS: troque a senha padrão em
openvas/.enve nodocker-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_TOKENemrepo/.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/.envcomLLM_API_KEYeALLOWED_TARGETS, e crie/var/tmp/breachscope-strix.
- Host/rede — OpenVAS: troque a senha padrão em
- Suba:
docker compose up -de acompanhe comdocker compose logs -f. - 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 só rodam por sensor — se disparar sem escolher um, o painel avisa.
| Scanner | Categoria | Alvo | Impacto | Tempo est. | Precisa de acesso ao código? |
|---|---|---|---|---|---|
| ZAP | DAST | web_url | ● ativo | 5–15 min | Não |
| Nikto | DAST | web_url | ● passivo | 2–5 min | Não |
| testssl | DAST | web_url | ● passivo | 1–3 min | Não |
| Gitleaks | SAST | git_repo | ● passivo | 1–5 min | Sim (clone) |
| Opengrep | SAST | git_repo | ● passivo | 2–8 min | Sim (clone) |
| ESLint | SAST | git_repo | ● passivo | 1–4 min | Sim (clone) |
| Grype | SCA | git_repo | ● passivo | 1–3 min | Sim (clone) |
| Dependency-Track | SCA | git_repo | ● passivo | 5–20 min | Sim (clone) — ou via sensor de repositório, só o SBOM sai |
| OpenVAS | Network | host | ● agressivo | 30 min–4h | Não |
| Google Lighthouse | Performance | web_url | ● passivo | 30–60 seg | Não |
| Joern | Arquitetura | git_repo | ● passivo | 1–10 min | Sim (clone) |
| Vuls | Network | host | ● passivo | 3–15 min | Não — lê pacotes via SSH |
| Strix | DAST | web_url | ● agressivo | 30 min–4h | Não — só por sensor |
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.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)
Prefira staging: ZAP (cria dados), OpenVAS (tráfego intenso).
Nunca sem autorização: OpenVAS em redes de terceiros.
Semanal: Opengrep, ESLint, Nikto, testssl, Lighthouse
Quinzenal: ZAP, Dependency-Track, Joern (após mudanças estruturais)
Mensal: OpenVAS (impacto alto, longo)
| Termo | Significado |
|---|---|
| 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. |
| Composto | Nú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. |
| CVE | Common Vulnerabilities and Exposures — identificador público de uma vulnerabilidade conhecida (ex.: CVE-2024-12345), atribuído por uma autoridade de numeração. |
| CVSS | Common 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. |
| CWE | Common Weakness Enumeration — categoria do TIPO de falha (ex.: CWE-79 é Cross-Site Scripting), não de uma ocorrência específica como o CVE. |
| EPSS | Exploit Prediction Scoring System (FIRST.org) — probabilidade estimada de um CVE ser explorado nos próximos 30 dias. É estimativa, não certeza. |
| CISA KEV | Known 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_reason | A 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 positivo | Decisã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 aceito | Decisã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ção | Registro de responsável, prazo e evidência de correção associado a um achado específico, com histórico de mudanças. |
| SBOM | Software Bill of Materials — lista completa dos componentes (bibliotecas, versões) que compõem um software, no formato CycloneDX. |
| Sensor | Programa 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ção | Prazo 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. |
| Tenant | A conta/organização dentro da plataforma — cada tenant só vê os próprios dados. |
| Uso do plano | Consumo 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. |