maio 16, 2019

[Segurança] Programas de "Bug Bounty"

Os programas de "Bug Bounty" estão ficando cada vez mais popular entre os pesquisadores e, aos poucos, quebrando a resistência das empresas!

O "Bug Bounty" (numa tradução literal, poderíamos chamar de "recompensa por bugs") é um dos canais existentes para que empresas recebam notificações sobre bugs e vulnerabilidades em suas soluções. Eles são uma evolução das políticas de "Vulnerability Disclosure", na qual as empresas aceitam que outras pessoas as notifique em caso de bugs, através de um canal de comunicação oficial. Nos programas de Bug Bounty, as empresas se comprometem a reconhecer a contribuição de quem fez o reporte, muitas vezes através de um tipo de recompensa como o pagamento de prêmios pré-estabelecidos.


Há alguns meses atrás o pessoal da Eleven Paths publicou um artigo bem interessante no blog deles explicando o que são e como surgiram os programas de Bug Bounty.

Tudo começou nos anos 90, quando a Netscape começou a oferecer bonificações financeiras para as pessoas que descobrissem bugs em seu navegador. Nas décadas seguintes, o mercado de segurança viu o amadurecimento das políticas de "Responsible Disclosure", ou "Notificação Responsável", aonde discutiu-se que as vulnerabilidades não deveriam ser tornadas públicas antes do fabricante do software ter a oportunidade de providenciar uma correção, para evitar a exploração maliciosa de uma determinada vulnerabilidade. Em 2002 surgiu a iDefense, uma empresa americana que recebia notificações sobre vulnerabilidades em troca de dinheiro, repassava essas informações para o fabricante e, ao mesmo tempo, orientava seus clientes sobre como evitar essas vulnerabilidades enquanto não eram corrigidas. Depois dela surgiram outras empresas, como a Coseinc e a ZDI (Zero Day Iniciativa), que foi comprada pela HP e depois pela Trend Micro.

Os programas de Bug Bounty representam um canal oficial aonde qualquer pessoa, incluindo um cliente ou um pesquisador independente de segurança, pode notificar a empresa sobre problemas de segurança em seus sites e aplicações.

Muito comum em empresas de tecnologia e nos EUA, o programa de "Bug Bounty" ajuda as empresas a identificar rapidamente vulnerabilidades que sejam descobertas por terceiros, e oferecem para a comunidade um meio de comunicar tais vulnerabilidade sem o risco de sofrer represálias.
"Bug bounty programs have been proved effective in attracting external hackers to find and disclose potential flaws in a responsible way".
MIT
Segundo um paper do MIT, "A política de divulgação responsável de vulnerabilidades ("Responsible vulnerability disclosure policy") foi criada como uma maneira eficaz de melhorar a segurança em geral. Considerando a eficácia do uso de especialistas externos para a descoberta responsável de vulnerabilidades, programas de recompensas de bugs ("bug bounties") foram lançados por muitas empresas, incluindo Google, Facebook, Microsoft e Mozilla, para encorajar os hackers externos a compartilhar as vulnerabilidades descobertas antes da divulgação pública."

Do ponto de vista do pesquisador independente e da comunidade de segurança, os programas de bug bounty trazem várias vantagens:
  • Um canal seguro para reportar vulnerabilidades em softwares, sem correr o risco de ser ameaçado ou ignorado pela empresa;
  • Uma forma de ajudar a sociedade de forma ética, auxiliando as empresas a corrigir bugs em suas aplicações e reduzindo o impacto nocivo desses bugs em seus clientes;
  • Um meio de ganhar uma recompensa financeira, como se fosse um trabalho "free lance";
  • Uma forma de testar seu conhecimento e aprender mais.
O melhor de tudo é que o Bug Bounty permite que pesquisadores tenham um canal oficial para reportar os problemas. Quando isso não existe, é muito comum que os reportes sejam ignorados ou, pior ainda, que os pesquisadores sejam mal tratados pelas empresas. Sentindo-se ameaçadas ao ver uma denuncia de que seu software, site ou app tem bugs, algumas empresas acabam tentando silenciar os pesquisadores através de ameaças e processo legal. Essa dificuldade em reportar um bug de forma estruturada faz com que muitos pesquisadores acabem não reportando o bug para a empresa ou fabricante, e apenas compartilhem a descoberta entre seu círculo de amizade.
""Antigamente, as empresas não eram tão próximas com hackers que descobriam suas falhas, não havia essas revelações com o hoje, como Bug Bounty. E isso hoje é ótimo".
Joe Grand (Kingpin), no RoadsecSP 2018
Para as empresas, as vantagens também são várias:
  • Um canal de relacionamento com a comunidade de segurança, para receber denúncias;
  • Permitir que bugs sejam descobertos e corrigidos antes que possam ser explorados para fins maliciosos, evitando prejuízos para a empresa. Um ciber criminoso não vai pensar 2 vezes antes de testar seu site e explorar uma vulnerabilidade;
  • Uma forma de complementar sua estratégia de segurança, usando o Bug Bounty como um meio adicional para identificar bugs, além dos testes tradicionais, auditoria de código e penteastes.
Para estabelecer um programas de bug bounty, as empresas devem estabelecer uma política de análise de vulnerabilidades que contemple esse canal de report, processos para tratamento rápido e correção desses bugs e os recursos necessários para operar o programa, desde funcionários até mesmo ferramentas para ter um portal de report.

Além do que já disse acima, os benefícios para a empresa também incluem:
  1. Minimizar o risco de divulgação de uma vulnerabilidade (pois o pesquisador é incentivado a notificar a empresa sobre o bug);
  2. Demonstra a maturidade da empresa e de sua área de segurança;
  3. Estabelece e promove uma cooperação mais positiva entre a empresa e o público externo (clientes, pesquisadores, etc);
  4. Maior diversidade de testes, pois a empresa abre a possibilidade de dezenas de pessoas testarem a sua segurança, cada uma com um ponto de vista ou especialização diferente. Alguns podem ser especialistas em testes específicos, como SQL injection ou cross-site script, ou especializados em linguagens e frameworks distintos;
  5. Melhor uso dos recursos financeiros, pois no Bug Bounty a empresa só remunera quando um bug é identificado. Quando a empresa decide por contratar uma consultoria, ela paga um preço fixo independente da quantidade de bugs que foram encontrados, ou não.
Um grupo de pesquisadores de Berkeley publicou um estudo em 2013 aonde apontaram as principais vantagens de um programa de report de vulnerabilidades:
Offering adequate incentives entices security re- searchers to look for vulnerabilities, and this increased attention improves the likelihood of finding latent vulner- abilities. Second, coordinating with security researchers allows vendors to more effectively manage vulnerability disclosures, reducing the likelihood of unexpected and costly zero-day disclosures. Monetary rewards provide an incentive for security researchers not to sell their research results to malicious actors in the underground economy or the gray world of vulnerability markets. Third, VRPs may make it more difficult for black hats to find vulnera- bilities to exploit. Patching vulnerabilities found through a VRP increases the difficulty and therefore cost for malicious actors to find zero-days because the pool of latent vulnerabilities has been diminished. Additionally, experience gained from VRPs (and exploit bounties) can yield improvements to mitigation techniques and help identify other related vulnerabilities and sources of bugs. Finally, VRPs often engender goodwill amongst the community of security researchers. it is in the interests of the software vendor to encourage more people to participate in the search for bugs. An increase in the number of researchers looking for vulnerabilities yields an increase in the diversity of vulnerabilities discovered.
Uma das conclusões que eles chegaram foi de que um programa de Bug Bounty tem o custo equivalente a contratar um analista de pentest, mas os resultados são muito maiores (em termos de quantidade e qualidade) do que este mesmo analista conseguiria produzir em um mesmo período.

Ma minha apresentação abaixo eu explico como o programa de Bug Bounty se encaixa na estratégia de análise e correção de vulnerabilidades no ciclo de desenvolvimento seguro de software:


A Hackerone tem um vídeo curto, mas bem legal, sobre os programas de Bug Bounty:



Aqui no Brasil, o pessoal da Flipside está aproveitando o expertise deles com o campeonato de CTF HackaFlag, para transformar essa experiência na primeira plataforma nacional de Bug Bounty.


Embora sejam muito populares nos EUA, aos poucos o mercado Brasileiro vai se interessar pelos programas de Bug Bounty. eu conheço alguns bancos nacionais que estão planejando adotar um programa desses, o que deve dar uma boa incentivada no mercado e ajudar a quebrar a resistência das empresas.

Para saber mais:

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.