Com a complexidade do software, é um desafio garantir que não haja bugs. Este é simplesmente o caminho das coisas que são projetadas por humanos e altamente complexas. Para minimizar o problema, as empresas de desenvolvimento de software incluem revisões de código em seu ciclo de vida de desenvolvimento de software. Mas mesmo uma análise cuidadosa de um especialista não consegue captar tudo. As limitações orçamentárias e de tempo real exacerbam isso. Por causa disso, os bugs chegam aos sistemas de produção. Alguns bugs têm pouco ou nenhum efeito, mas outros podem introduzir vulnerabilidades de segurança desagradáveis.
Uma vulnerabilidade de segurança é uma classe de bugs que afeta de alguma forma a segurança do sistema. Há uma ampla gama de resultados possíveis, mas, no final, todas as vulnerabilidades de segurança são ruins para todos. Infelizmente, encontrar bugs pode ser difícil e demorado. Enquanto os desenvolvedores podem gastar apenas uma quantidade limitada de tempo testando bugs, outro grupo combinado gasta muito mais tempo usando o aplicativo - os usuários.
Os usuários de um sistema, combinados, gastam muito mais tempo em um sistema do que os desenvolvedores desse sistema jamais poderiam. Eles também usam uma variedade muito maior de dispositivos. Combinados, isso cria o ambiente perfeito para encontrar bugs - muitos olhos e casos extremos.
Colocando os usuários para trabalhar
A maneira tradicional de usar os usuários para resolver bugs é ter alguma função de relatório de erros que permita aos usuários relatar um bug que encontrarem. Os desenvolvedores podem usar essas informações para replicar, identificar e corrigir o problema. O problema é que há um incentivo mínimo para o usuário relatar qualquer problema. É um processo que leva tempo, tem possíveis implicações de privacidade e geralmente não resulta em nenhum feedback, mesmo que o problema seja corrigido.
As vulnerabilidades de segurança são ainda piores. Um usuário mal-intencionado pode optar por usar uma vulnerabilidade que encontra ativamente. Dependendo do problema, pode ser possível obter acesso a algo valioso, seja no mercado negro ou por meio de resgate ou chantagem. Alternativamente, é possível vender o conhecimento da vulnerabilidade no mercado negro. De qualquer forma, os usuários não são incentivados a relatar bugs e não são incentivados a relatar vulnerabilidades de segurança.
virando a mesa
Um sistema de recompensa de bugs é uma maneira de virar a mesa para encorajar a relatar problemas de segurança ativamente. O método é simples, recompensando-os. O método padrão é pagar uma recompensa monetária e fornecer reconhecimento público da contribuição. Isso recompensa diretamente os usuários por relatarem uma vulnerabilidade de segurança e os encoraja a fazer a coisa certa.
Os sistemas de recompensa de bugs são normalmente abertos a qualquer pessoa. Qualquer usuário que identifique uma vulnerabilidade de segurança pode denunciá-la e ser pago. Existem algumas ressalvas, no entanto. Para ser pago, você geralmente precisa ser a primeira pessoa a relatar um problema, embora às vezes haja raras exceções em circunstâncias excepcionais. Você também tem que seguir as regras.
As regras de um sistema de recompensas por bug fornecem proteção geral contra ações legais se você permanecer dentro delas. Eles geralmente são detalhados, mas relativamente diretos. Não acesse os dados de outras pessoas, não use vulnerabilidades de forma maliciosa e divulgue-as de forma privada e responsável. Também pode haver algumas coisas que são consideradas fora dos limites.
Como são as recompensas?
Realisticamente, as recompensas são baseadas na boa vontade. Há também um elemento de “se isso causasse uma violação de dados, teríamos que pagar uma multa muito maior”. Geralmente, a empresa paga o que é um valor relativamente baixo por isso. Isso pode, no entanto, ser bastante para o repórter. Alguns bugs podem ser pagos por menos de cem dólares. Em casos extremos, porém, algumas empresas pagaram cem mil dólares por vulnerabilidades graves. Claro, a maioria das recompensas são muito menores do que isso.
Historicamente, as recompensas por bugs têm sido muito menores e, às vezes, mais como um simples agradecimento. Enviar uma camiseta gratuita ou fornecer uma assinatura vitalícia gratuita do serviço, por exemplo. As grandes empresas de tecnologia impulsionaram o mercado, assim como a chegada de plataformas de recompensas por bugs. As plataformas de recompensas de bugs são sites que hospedam os programas de recompensas de bugs de muitos clientes. Eles agrupam tudo em um só lugar. Isso torna muito mais fácil para uma organização menor executar um sistema de recompensas por bugs. Uma das maneiras de fazer isso é simplesmente padronizando o processo.
Claro, a recompensa em uma recompensa por bug é muito menor do que poderia ser obtida com a venda do bug no mercado negro. O conceito acredita que, geralmente, a maioria das pessoas quer fazer a coisa certa. Ou pelo menos eles não querem que o risco de infringir a lei volte para assombrá-los.
Conclusão
Uma recompensa de bug é um sistema de pagamento de uma recompensa por encontrar e divulgar com responsabilidade uma vulnerabilidade de segurança. Ele incentiva ativamente os usuários a testar e melhorar a segurança dos produtos. Ele traz muitos olhos novos para o processo de teste, tudo a um custo mínimo para a empresa. Claro, como alguém que participa de um sistema de recompensas por bugs, é essencial ter cuidado e entender as regras.
Hacking é ilegal; o programa de recompensas de bugs permite testar algumas coisas, mas geralmente inclui limitações. Se você não seguir as regras, poderá ser responsabilizado criminalmente. Se você seguir as regras, encontrar e relatar um bug, poderá obter um bom pagamento e aumentar a segurança para você e outros usuários.