De hacker a proprietário do programa Bug Bounty: uma experiência de aprendizado
Publicados: 2022-04-27A segurança tem sido uma grande prioridade aqui na Braze desde a nossa fundação em 2011. Nosso foco em proteger os dados de nossos clientes nos levou a adotar uma mentalidade de segurança e privacidade desde o design ao construir nosso produto, garantir que fomos certificados em conexão com a ISO 27001 e SOC 2 Tipo 2, e construir um cluster HIPAA dedicado para ajudar as marcas a proteger as informações de saúde protegidas. Mas, embora todos esses passos sejam importantes, não estamos descansando sobre os louros. Há sempre mais que você pode fazer, e esse foco em encontrar novas maneiras de fortalecer nossa segurança é uma grande razão pela qual estou aqui.
Em 2020, Mark Shasha, chefe de segurança da Braze, me trouxe para ajudar a lançar um programa de recompensas de bugs aqui, com o objetivo de facilitar a identificação de problemas de segurança que poderiam afetar nosso produto. E agora que o programa está em funcionamento há pouco mais de um ano, achei que era hora de olhar para o que construímos e o que aprendi ao longo do caminho.
O que é um programa de recompensas de bugs?
No programa de recompensas por bugs Braze, terceiros são convidados a tentar comprometer uma versão higienizada e sem dados do cliente da plataforma Braze e são pagos quando identificam um problema de segurança válido e acionável. A criação de um programa de recompensas por bugs possibilita que uma empresa como a Braze aproveite pesquisadores e profissionais de segurança externos para identificar possíveis problemas de segurança, permitindo-nos abordar vulnerabilidades de forma proativa.
Esses programas são amplamente vistos como uma das medidas de segurança cibernética mais importantes que uma empresa pode adotar – em parte, porque permite que as marcas obtenham informações de segurança de um grande número de pessoas diferentes com uma ampla variedade de conjuntos de habilidades. Como regra, lançar e manter uma recompensa de bug pública bem-sucedida é um sinal de que uma organização tem um programa de segurança saudável, pois executar um programa como esse sem incidentes requer um nível de maturidade de segurança que exige muito pensamento e cuidado para alcançar.
Meus dias como participante do Bug Bounty
Eu ouvi pela primeira vez sobre recompensas de bugs em 2014, mas porque eu achava que elas pareciam boas demais para ser verdade, eu não acabei participando de uma até 2016. Inspirado por alguns posts escritos por outros hackers éticos, eu participei de o Yahoo! programa de recompensas de bugs e descobri que eu tinha um talento especial para o trabalho. Por um lado, eles me deram a oportunidade de alavancar minhas habilidades de hackers para ajudar a proteger os sistemas de computador, em vez de comprometê-los. Por outro lado, eles me deram a oportunidade de ganhar grandes somas de dinheiro enquanto eu estava nisso.
À medida que o número de empresas e organizações governamentais que lançavam programas de recompensa de bugs crescia, acabei me especializando em caçar bugs de falsificação de solicitação do lado do servidor (SSRF) para um programa de recompensa de bug associado a uma grande empresa de telecomunicações e ganhei pouco menos de US $ 1 milhão apenas com identificar essas vulnerabilidades. Mas enquanto o lado financeiro das recompensas por insetos estava realmente valendo a pena para mim, eu me vi perdendo a estrutura e as conexões pessoais que vêm com um emprego diário. Então, quando a Braze me ofereceu a oportunidade de lançar e supervisionar meu próprio programa de recompensas por bugs, eu aproveitei a chance.
Como lançamos um programa de recompensas de bugs na Braze
Na Braze, tivemos que passar por várias etapas antes de podermos tornar realidade nossa visão de um programa de recompensas por bugs. Por um lado, como os participantes são pagos por cada bug válido e acionável que encontram, o lançamento de um programa de recompensas sem abordar todas e quaisquer vulnerabilidades conhecidas pode levar as empresas a pagar muito por informações que já possuem, reduzindo o impacto do programa e, ao mesmo tempo, elevando seu custo. Para isso, realizamos os seguintes passos antes de nos prepararmos para um lançamento oficial:
Implantação de acordos de nível de serviço (SLAs) de segurança interna com equipes de desenvolvimento
Criando um programa de gerenciamento de vulnerabilidades
Como implantar ferramentas de teste de segurança de análise dinâmica (DAST)
Realização de testes de penetração internos
Realizar testes de penetração de terceiros
Garantir que todos os problemas conhecidos foram corrigidos
Então, uma vez que estávamos confiantes de que a versão duplicada da plataforma Braze criada para o programa de recompensas por bugs estava o mais completa possível, iniciamos um programa privado e de escopo limitado usando a plataforma Bugcrowd. Lançamos este programa sob demanda de duas semanas para que pudéssemos usá-lo como uma prova de conceito e para ajudar a apresentar a organização Braze às realidades de executar um programa de recompensas por bugs. Afinal, a ideia de convidar hackers e pesquisadores de segurança para procurar falhas de segurança em seu produto pode parecer estranha ou confusa se você não encontrou recompensas de bugs antes.
4 grandes aprendizados ao lançar um novo programa de recompensas de bugs
Aprendi rapidamente que lançar um novo programa de recompensas por bugs é muito mais difícil do que assumir um já existente. Há tantos fatores diferentes que contribuem para a criação de um programa de sucesso que não recebe tanta atenção - em parte, porque eles não são tão empolgantes quanto identificar bugs críticos, corrigi-los rapidamente e pagar grandes recompensas. Diante disso, vamos falar sobre alguns dos meus maiores aprendizados:
1. O lançamento de um programa de recompensas por bugs requer colaboração entre equipes
Originalmente, eu esperava que o lançamento do programa fosse tão simples quanto decidir fazê-lo, escolher a plataforma certa, decidir sobre o escopo e os valores de recompensa e, em seguida, apenas dar o pontapé inicial. Mas fazê-lo direito exige muito mais planejamento, preparação e atenção para lidar do que eu pensava. Por um lado, eu não levei em consideração todas as outras equipes da Braze que tiveram um papel a desempenhar no apoio ao lançamento do programa de recompensas por bugs - do trabalho que nossa equipe Jurídica fez para garantir que tivéssemos a redação adequada para nosso acordo Safe Harbor com o trabalho realizado para criar nossos SLAs e garantir que tivéssemos o processo de encaminhamento correto quando ocorrerem violações. Este trabalho pode ser desafiador, mas é absolutamente essencial. Um programa de recompensas de bugs que não foi cuidadosamente planejado e executado inevitavelmente terá muitos problemas, o que, por sua vez, pode levar ao mau boca a boca sobre o programa, tornando mais difícil atrair hackers e pesquisadores de segurança de primeira linha e potencialmente condenando todo o esforço.
2. Nunca perca de vista seu relacionamento com hackers e pesquisadores
É importante que as marcas lembrem que um programa de recompensas de bugs bem-sucedido depende do relacionamento entre o programa e os hackers/pesquisadores que participam dele. Hackers felizes estão muito mais dispostos a gastar seu tempo em seu programa e, dado que todo programa de recompensas está lutando por uma parte de um recurso finito - ou seja, tempo e atenção de hackers/pesquisadores - é importante ter certeza de que você está se preparando para o sucesso priorizando esse relacionamento e fazendo o que puder para se diferenciar de outros programas. Algumas empresas fazem isso pagando recompensas maiores do que a média do setor por várias classes e gravidades de bugs, mas essa não é a única (ou melhor) maneira de fazer isso.
Por causa do meu passado como caçador de recompensas de insetos, pude usar minhas experiências para ajudar a informar como Braze nutre esse relacionamento. Por exemplo, eu consegui um buy-in para garantir que o Braze executasse programas de recompensa de bugs públicos e privados simultaneamente. Isso nos permite identificar indivíduos envolvidos em nosso programa público que estão relatando relatórios bons e válidos e, em seguida, recompensá-los convidando-os para nosso programa privado. Esses participantes têm funcionalidades adicionais para testar e obter a primeira chance de novas adições de escopo antes de adicioná-los ao programa público. Acredito que fazendo pequenas coisas como essa, as empresas podem mostrar seu apreço pelos pesquisadores que estão contribuindo com seu programa e incentivá-los a aprofundar seu engajamento no futuro.
3. As recompensas por bugs parecem diferentes do lado da empresa
Antes de começar a executar meu próprio programa de recompensas por bugs, eu não gostava de trabalhar com programas gerenciados por uma plataforma de terceiros. Para programas configurados assim, é comum que as empresas confiem em triagers de terceiros fornecidos pela plataforma, que revisam os envios de hackers/pesquisadores e determinam a gravidade de cada bug identificado, e eu tive algumas experiências em que os triagers fez ligações com as quais não concordei.
No entanto, agora que estou do outro lado, posso ver quanto valor esse tipo de abordagem orientada a plataforma oferece às empresas que a utilizam. Embora ainda estejamos envolvidos na supervisão direta do trabalho realizado pelos triagers de terceiros que usamos, descobri que aproveitá-los pode fazer muito para reduzir a carga de tempo e energia associada à execução de um programa como esse. Os triagers com os quais trabalhamos são profissionais e provaram ser um grande trunfo para nosso programa, ajudando a tornar possível nosso lançamento bem-sucedido.
4. O trabalho não termina quando um bug é identificado
Antes de ingressar no Braze, muitas vezes eu ficava frustrado com programas de recompensas de bugs que levavam semanas ou meses para corrigir as vulnerabilidades que eu havia enviado a eles. Da minha perspectiva, os problemas geralmente pareciam bastante simples e eu senti que o patch para esses bugs deveria levar pouco ou nenhum tempo para ser implementado.
Mas agora que testemunhei o que acontece nos bastidores quando um desses bugs é enviado, percebi que não levei em consideração todas as discussões e trabalhos realizados nos bastidores durante o ciclo de vida de uma vulnerabilidade de segurança - desde a investigação e a confirmação do bug e a entrega desses detalhes à equipe responsável internamente para as mudanças reais de codificação, testes e lançamentos que precisam acontecer antes que o bug seja realmente resolvido. A realidade é que essas coisas levam tempo e, como hacker, nem sempre levei em consideração o trabalho envolvido, em parte porque queria que todo o processo fosse feito o mais rápido possível para que eu pudesse ser pago.
Pensamentos finais
A execução de um programa de recompensas de bugs no ano passado mudou toda a minha visão da indústria e até mudou a forma como seleciono quais programas de recompensas de bugs eu foco no meu tempo livre. Essa espiada por trás da cortina me deu muito mais respeito pelo trabalho essencial que está sendo feito pelos triagers de plataforma e uma melhor compreensão de quais são os cronogramas realistas para as empresas avaliarem e resolverem os bugs que eu enviar. Com essa nova visão, espero continuar a melhorar e aumentar o programa de recompensas de bugs Braze, ao mesmo tempo em que vejo ainda mais sucesso como caçador de recompensas de bugs daqui para frente.
Interessado em se juntar à equipe aqui na Braze? Confira nossas vagas abertas !