Programa de Divulgação de Vulnerabilidades: guia inicial para equipas pequenas
Saiba o que é um programa de divulgação de vulnerabilidades, porque líderes como Katie Moussouris defenderam o conceito, e como equipas pequenas podem definir escopo, triagem e prazos.

Porque é que os programas de divulgação existem (e porque podem compensar)
A maioria das equipas já recebe feedback de segurança. Simplesmente não têm um lugar seguro para ele aterrar.
Um programa de divulgação de vulnerabilidades dá a investigadores e clientes uma forma clara, legal e respeitosa de reportar problemas antes que se tornem manchetes. Sem uma política, os relatórios aparecem nos piores momentos, pelo canal errado, com expectativas incertas. Um investigador bem-intencionado pode enviar um email para um endereço pessoal, publicar publicamente para chamar atenção ou continuar a insistir até alguém responder. Com um programa, toda a gente sabe para onde enviar os relatórios, que testes são permitidos e o que a sua equipa fará a seguir.
Encontrar problemas cedo é importante porque os custos aumentam rapidamente quando um bug é explorado. Um pequeno erro de autenticação detetado durante uma semana calma pode ser uma correção de um dia. O mesmo erro descoberto depois de ser abusado pode desencadear patches de emergência, resposta a incidentes, carga no suporte ao cliente e danos de confiança a longo prazo.
Uma forma prática de pensar em VDPs vs bounties:
- Comece com um programa de divulgação de vulnerabilidades se puder prometer comunicação clara e correções atempadas.
- Adicione um programa de recompensa por bugs mais tarde se também puder prometer pagamentos, triagem consistente e orçamento.
Katie Moussouris ajudou a popularizar uma moldura de negócio simples que facilitou a aceitação das bounties pelas empresas: os investigadores de segurança não são “o inimigo”. Podem ser um input gerido e de soma positiva para a qualidade. A mesma lógica aplica-se aos VDPs. Não está a convidar problemas; está a construir uma entrada controlada para problemas que já existem.
Para uma pequena equipa que lança rápido (por exemplo, uma web app com front-end em React e uma API), o retorno é frequentemente imediato: menos escalamentos surpresa, prioridades de correção mais claras e uma reputação de levar a sério os relatórios de segurança.
Como funciona um programa de divulgação de vulnerabilidades
Um programa de divulgação de vulnerabilidades (VDP) é uma forma pública e previsível para as pessoas reportarem problemas de segurança a si, e para a sua equipa responder de forma segura. Não é o mesmo que pagar recompensas. O objetivo é corrigir problemas antes que prejudiquem os utilizadores.
Três grupos geralmente participam: investigadores de segurança que procuram ativamente questões, clientes que notam comportamentos suspeitos, e empregados ou contratados que detetam problemas durante o trabalho normal. Todos eles precisam do mesmo caminho simples de reporte.
Os relatórios normalmente chegam por um endereço de email dedicado, um formulário web ou um sistema de ticketing. Para uma equipa pequena, o mais importante é que a caixa de entrada seja detida, monitorizada e separada do suporte geral.
Um relatório forte dá detalhes suficientes para reproduzir rapidamente: o que foi encontrado, porque importa, passos para reproduzir, que sistema ou endpoint é afetado e prova do impacto. Sugestões de correção são bem-vindas mas opcionais.
Quando o relatório chega, faz alguns compromissos por escrito, normalmente numa política de divulgação responsável. Comece pequeno e prometa apenas o que pode cumprir. No mínimo: irá acusar receção do relatório, fazer uma triagem básica e manter o repórter atualizado.
Por trás das cortinas, o fluxo é direto: confirmar receção, confirmar a questão, avaliar a severidade, atribuir um responsável, corrigir e comunicar o estado até estar resolvido. Mesmo que não consiga corrigir de imediato, atualizações regulares constroem confiança e reduzem pingues repetidos.
Bounties vs VDPs: escolha o ponto de partida certo
Um VDP é a base. Publica um caminho seguro de reporte, explica que testes são permitidos e compromete-se a responder. Não é necessário dinheiro. O “acordo” é clareza e boa-fé de ambas as partes.
Um bug bounty acrescenta recompensas. Pode gerir diretamente (email mais método de pagamento) ou através de uma plataforma que ajuda com o alcance aos investigadores, tratamento de relatórios e pagamentos. A troca é mais atenção, maior volume e mais pressão para mover rápido.
As bounties fazem sentido quando a sua equipa consegue aguentar a carga. Se o seu produto muda diariamente, o seu logging é fraco ou ninguém é responsável pela triagem de segurança, uma bounty pode criar uma fila que não consegue escoar. Comece com um VDP quando precisa de uma entrada previsível. Considere uma bounty quando tiver uma superfície estável, exposição suficiente para atrair achados reais, capacidade de triar e corrigir em dias ou semanas e um orçamento e método de pagamento claros.
Para recompensas, mantenha simples: intervalos fixos por severidade (baixo a crítico), com pequenos bónus para relatórios incomuns, claros e reproduzíveis com prova de impacto.
Os pagamentos são apenas uma parte do caso de negócios. O ganho maior é aviso mais cedo e risco reduzido: menos incidentes surpresa, melhores hábitos de segurança na engenharia e um processo documentado que pode apontar numa revisão com clientes.
Passo 1: Defina um escopo que a sua equipa consiga gerir
Um bom programa de divulgação de vulnerabilidades começa com uma promessa: irá analisar relatórios sobre as coisas que consegue realmente verificar e corrigir. Se o escopo for demasiado amplo, os relatórios acumulam-se, os investigadores ficam frustrados e perde a confiança que tentou ganhar.
Comece com ativos que controla de ponta a ponta. Para a maioria das equipas pequenas, isso significa a app de produção e qualquer API pública que os clientes usem. Deixe ferramentas internas, protótipos antigos e serviços de terceiros de fora até o básico funcionar.
Seja específico sobre o que está em e fora do escopo. Alguns exemplos concretos reduzem idas e vindas:
- Em escopo: fluxos de login e recuperação de conta, painéis de administração, permissões de papel e quaisquer endpoints de pagamento ou faturação que controla.
- Fora de escopo: ataques que só afetem fornecedores terceiros, problemas que exigem acesso físico a equipamentos de escritório.
A seguir, indique quais os testes permitidos para que ninguém prejudique os utilizadores por acidente. Mantenha os limites simples: sem varreduras em massa, respeite limites de taxa, sem testes de negação de serviço e não aceda a dados de outras pessoas. Se quiser permitir contas de teste limitadas, diga-o.
Finalmente, decida como lida com sistemas não-produtivos. Staging pode ajudar a reproduzir, mas é frequentemente ruidoso e menos monitorizado. Muitas equipas excluem o staging no início e aceitam apenas achados em produção, adicionando staging mais tarde quando o logging for estável e existir uma forma segura de testar.
Exemplo: uma pequena equipa SaaS a correr apps Koder.ai pode começar com “app de produção + API pública no nosso domínio principal” e excluir explicitamente deployments self-hosted de clientes até a equipa ter uma forma clara de reproduzir e enviar correções.
Passo 2: Escreva regras que protejam utilizadores e investigadores
Boas regras fazem dois trabalhos ao mesmo tempo: mantêm utilizadores reais seguros e dão confiança aos investigadores de que não serão penalizados por reportarem de boa-fé. Use linguagem simples e específica. Se um testador não souber o que é permitido, ou para ou corre riscos.
Comece com limites de teste seguros. O objetivo não é travar a investigação, mas prevenir danos enquanto a questão é desconhecida. Regras típicas incluem: sem engenharia social (phishing, telefonar a empregados, tickets falsos), sem negação de serviço ou stress testing, sem ataques físicos ou ameaças, sem varreduras fora do escopo e parar imediatamente se dados reais de utilizadores forem tocados.
Depois explique como reportar e o que é “útil”. Um template simples acelera a triagem: onde acontece (URL/ecrã da app, ambiente, tipo de conta), passos numerados para reproduzir, impacto, evidência (screenshots, vídeo curto, request/response) e contactos.
Seja claro sobre privacidade. Peça aos investigadores que minimizem o acesso a dados, evitem descarregar conjuntos de dados e ocultem informação sensível em screenshots (emails, tokens, dados pessoais). Se tiverem de provar acesso, peça a menor amostra possível.
Por fim, defina expectativas para duplicados e relatórios parciais. Pode dizer que creditará (ou recompensará) o primeiro relatório claro que prove impacto, e que relatórios incompletos podem ser fechados se não conseguir reproduzi-los. Uma frase curta como “Se não tem a certeza, submeta o que tem e nós orientamos” mantém a porta aberta sem prometer resultados.
Perguntas frequentes
Qual é o objetivo principal de um programa de divulgação de vulnerabilidades (VDP)?
Um VDP dá às pessoas uma forma clara, legal e previsível de reportar problemas de segurança. Reduz a probabilidade de relatórios aparecerem como publicações públicas, mensagens privadas aleatórias ou sondagens repetidas.
O principal benefício é velocidade e controlo: você fica a saber dos problemas mais cedo, pode corrigi-los com calma e ganha confiança ao responder de forma consistente.
Quando deve uma equipa pequena iniciar um VDP?
Comece quando conseguir fazer de forma fiável três coisas:
- Monitorizar um canal de entrada (email ou formulário) e reconhecer os relatórios.
- Triar e reproduzir as questões sem semanas de ida e volta.
- Enviar correções ou mitigações num prazo razoável.
Se ainda não consegue, reduza o escopo e defina prazos maiores em vez de evitar ter um VDP.
O que deve incluir uma política básica de VDP?
Uma política VDP simples deve incluir:
- Onde reportar (um canal dedicado)
- O que está em escopo (domínios/apps/APIs que controla)
- Que testes são permitidos (e o que não é)
- Como vai responder (reconhecimento, triagem, atualizações)
- Linguagem de safe-harbor para investigação de boa-fé
Mantenha-a curta e prometa só o que consegue cumprir consistentemente.
Como escolher o escopo sem ficar sobrecarregado?
Por padrão: comece com ativos que controla de ponta a ponta, normalmente a sua app de produção e a API pública.
Exclua tudo o que não consegue verificar ou corrigir rapidamente (protótipos antigos, ferramentas internas, serviços de terceiros que não controla). Pode expandir o escopo depois que o fluxo estiver estável.
Que regras de teste devemos definir para proteger os utilizadores?
Regras básicas comuns:
- Sem testes de negação de serviço ou stress
- Sem engenharia social (phishing, telefonar a empregados, tickets falsos)
- Não aceda a dados de outros utilizadores; pare se tocar em dados reais
- Respeite limites de taxa; evite varreduras em massa
- Mantenha-se dentro do escopo publicado
Limites claros protegem os utilizadores e também os investigadores de boa-fé.
O que torna um relatório de vulnerabilidade “bom” e acionável?
Peça um relatório fácil de reproduzir:
- URLs/telas afetadas, ambiente e tipo de conta
- Passos numerados para reproduzir
- Comportamento esperado vs real
- Prova do impacto (pedido/resposta mínimo, vídeo curto ou screenshot)
- Que dados foram acedidos (idealmente nenhum) e o que foi ocultado
Sugestões de correção ajudam mas são opcionais; o que importa é a reproducibilidade.
Quem deve ser o dono da triagem e qual o fluxo mais simples?
Escolha um responsável (mais um de backup) e siga um fluxo simples:
- Acknowledge receipt
- Reproduzir e confirmar
- Atribuir severidade e um responsável técnico
- Corrigir ou mitigar
- Validar e fechar com um resumo curto
Um VDP falha quando relatórios ficam numa inbox partilhada sem um decisor claro.
Como avaliar a severidade sem complicar demais?
Use um pequeno rubrico ligado ao impacto:
- Crítico: bypass de autenticação, exposição abrangente de dados, execução remota de código
- Alto: takeover de conta, problemas sérios de privilégios, dados sensíveis de um utilizador
- Médio: impacto limitado, difícil de explorar, fugas parciais de informação
- Baixo: falhas de boas práticas sem impacto claro
Em caso de dúvida, classifique mais alto durante a triagem e ajuste depois de confirmar o impacto real.
Que prazos de resposta devemos publicar?
Um padrão prático para equipas pequenas:
- Reconhecimento: 1–2 dias úteis
- Resultado da triagem inicial: até 5 dias úteis
- Prazos de correção: Crítico 7–14 dias, Alto 30 dias, Médio 60 dias, Baixo 90 dias
- Atualizações: a cada 7–14 dias até resolução
Se não conseguir cumprir, alargue os prazos agora e depois tente bater as suas próprias metas.
Quando faz sentido adicionar um programa de recompensa por bugs?
Adicione um programa de bounty quando conseguir lidar com maior volume e tiver:
- Capacidade de triagem consistente e propriedade clara
- Orçamento e processo de pagamento que pode executar rapidamente
- Estabilidade suficiente do produto para reproduzir e corrigir achados depressa
Um VDP é o básico; bounties trazem mais atenção e pressão—só os adicione quando conseguir acompanhar.