setembro 16, 2021

[Segurança] Perguntas e respostas sobre Bug Bounty

Eu já apresentei algumas palestras sobre Bug Bounty, a mais recente foi no The Developers Conference, além de ter participado de painéis sobre o assunto, como dois painéis organizados pelo pessoal do MindTheSec: na edição deste ano e também no ano passado (Bug Bounty: como implantar um programa e o que você precisa saber - veja o vídeo).

Resolvi aproveitar e compartilhar aqui algumas perguntas e respostas frequentes, baseados em minhas palestras e no que discutimos nos painéis.

Atualmente estou estudando para caçar bounts em um futuro próximo, mas estou bem no início ainda, quais conhecimentos técnicos vocês consideram fundamentais pra quem ta começando?

Eu acredito que é necessário ter um conhecimento técnico em protocolos de redes, programação e engenharia reversa. Mas, na verdade, o ideal é você escolher uma área e se especializar nela - ex: desenvolvimento web, desenvolvimento mobile, redes, etc. E aí você vai buscar vulnerabilidades específicas nessa área de conhecimento.

Para aprendizagem na prática, eu recomendo também participar de competições de Capture The Flag (CTF).

Num cenário onde existe um backlog de vulnerabilidades conhecidas e um cenário amplo de aplicações críticas. Como identificar o momento certo de colocar o bug bounty no ar e quais apps priorizar?

Na minha opinião pessoal, a empresa precisa ter um processo maduro de segurança antes de implantar um programa de Bug Boutny. Isso inclui uma cultura de DevSecOps, para minimizar a possibilidade de bugs em seus ambiente em produção, e principalmente, processos e capacidades para identificar e corrigir vulnerabilidades, preventivamente e proativamente.

Claro que cada empresa vai adotar o programa de bug bounty de acordo com sua realidade e suas capacidades. Uma possibilidade é começar o programa com um escopo limitado e ir abrindo o programa à medida que a maturidade do time vai aumentado.

O Bug bounty pode substituir o pentest?

Não. Eu acredito que o Bug Bounty complementa o esforço de identificar vulnerabilidades, que inclui o pentest, testes estáticos e dinâmicos, etc.

Além do mais, O importante é que o aplicativo esteja o mais seguro possível, dentro das capacidades da empresa. Um aplicativo inseguro em produção pode causar grandes prejuízos em fraude. Se tiver um programa de bug bounty, a quantidade de reports e o gasto com premiação pode ser enorme.

Como funciona a comunicação entre o pesquisador e a empresa diante da falha encontrada e classificada? 

Toda comunicação é realizada através plataforma de bug bounty, aonde o pesquisador se cadastra, acessa a página referente ao programa da empresa e possui uma interface (por exemplo, como um formulário) para submeter o seu report. Essa plataforma permite a comunicação entre o profissional, a empresa e o time de triagem dos chamados, um serviço que pode ser fornecido pelo provedor da plataforma.

Veja, por exemplo, esse pequeno vídeo da HackerOne que explica como funciona a gestão de reports na plataforma deles:

Bugs encontrados, são decorrência da lógica falha do programador? Ou são consequência involuntárias? 

Bugs podem acontecer por qualquer problema ou causa. Pode ser um erro na especificação do software ou do protocolo, pode ser um erro lógico na implementação ou causado por uma codificação errada, por exemplo.

Quando erros básicos são descobertos como isso se reflete nas equipes internas de devsecops? Advertência até demissão? 

Bugs fazem parte do processo de desenvolvimento. Não existe porque punir o programador, seja uma advertencia ou nem mesmo uma demissão, a menos que você comprove que o bug foi intencional, criado com objetivo de prejudicar a empresa (o que eu acredito que deve ser raro). Se a sua empresa tiver capacidade de identificar os programadores responsáveis por determinado produto ou código, e identificar que um determinado programador tem desenvolvido software com uma quantidade muito grande de bugs, acima da média da equipe, provavelmente esse profissional precisa de treinamento e capacitação.

Não existe um contrato e seu uso na justiça se o escopo for ultrapassado? Como a empresa pode comprovar e usar esse recurso na quebra de contrato?

Antes de mais nada: não existe contrato nem relacionamento direto entre a sua empresa e os pesquisadores, tudo é intermediado pela empresa que fornece a plataforma de Bug Bounty. Na verdade, existe um contrato entre a empresa que tem o programa de Bug Bounty e a empresa que oferece a plataforma, e os pesquisadores tem um relacionamento com a plataforma, aceitando seus termos de uso ao se cadastrar nela.

Também não faz sentido para a empresa quebrar contrato com o fornecedor da plataforma caso um pesquisador reporte uma vulnerabilidade fora do escopo. Nesses casos, o que acontece é que o Report será rejeitado, a empresa não pagará a premiação e ele (ou ela) irá perder pontos de reputação na plataforma, mesmo que a vulnerabilidade seja real. Por isso poucas vezes alguém envia uma notificação sobre problema que esteja fora do escopo.

As empresas no Brasil estão começando a focar e considerar no budget o programa Bug bounty?

Eu acredito que o mercado nacional de bug bounty ainda não tem a mesma maturidade que o mercado americano e global. Acredito que poucas empresas brasileiras estão considerando a possibilidade de implementar um programa de bug bounty, mas estou vendo um aumento crescente pelo interesse no assunto.

Nenhum comentário:

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.