Bug Bounty (latéralement en français : Prime de bogue) aussi appelé vulnerability rewards program (VRP) est une récompense financière offerte par des organisations technologiques à toute personne qui découvre et rapporte des bugs (vulnérabilités) dans des applications ou services informatiques. Elle supplémente les programmes d'audits et les tests de pénétration effectuées par les entreprises dans leurs politiques de sécurité en matière de gestion de vulnérabilités. La faille découverte doit être bien documentée dans un rapport envoyé à l'organisation adoptant le programme bug bounty afin qu'elle puisse facilement comprendre le bug, reproduire l'exploit, puis y remédier. Découvrir une faille non connue auparavant et réussir son exploit, puis le prouver (Proof of Concept), puis le rédiger dans un rapport clair n'est pas chose facile. C'est le travail des chercheurs spécialisés an sécurité informatiques, ou au plus général, des white hat hackers qui possèdent des capacités et compétences pour pénétrer des systèmes informatiques . Aujourd'hui, plusieurs grandes compagnies IT possèdent des programmes bug bounty, comme Microsoft, Facebook, Google, Yahoo,...etc.

Origine et histoire du Bug Bounty:

Cette nouvelle pratique en sécurité a eu son origine dans la société Netscape, quand l'ingénieur Jarrett Ridlinghafer offrit une récompense financière à tout employé qui pourrait trouver des bugs non découverts dans leur navigateur web Netscape. La figure suivante , récapitule l'histoire des programmes Bug Bounty [blog.cobalt.io]:

Valeur de la récompense:

La valeur d'une récompense (bounty) varie et se définit suivant plusieurs critères comme :

  • L'importance de l'entreprise
  • Le degrés de difficulté de pirater le système
  • L'impact de l'exploit sur les utilisateurs

La plus importante récompense bug bounty a été attribuée en 2014 pour le spécialiste Unix Stéphane Chazelas qui a découvert la vulnérabilité Shell Shock dans le Bash shell. La valeur de cette récompense était de 20,000 dollars offerte par Internetbugbounty.org. [computerhope.com] d'autres exemples de bounties sont :

  • Mozilla a payé une récompense égale de 3,000 dollars pour des bugs remplissant ses conditions
  • Facebook a donné 20,000 dollars pour un seul rapport de découverte de vulnérabilité
  • En 2012, Google a payé tout ceux qui ont découvert des failles dans son navigateur Chrome par une somme totale de 700,000 dollars
  • Microsoft a payé le chercheur britannique James Forshaw par 100,000 dollars pour divulguer une attaque exploitant une vulnérabilité critique dans son système d'exploitation Windows 8.1
  • En 2016, Apple a annoncé des récompenses qui dépassent les 200,000 dollars pour une faille dans les composants de secure boot firmware de son système iOS, et une valeur de plus de 50,000 dollars pour une exécution de code arbitraire avec des privilèges noyau ou un accès non autorisé à iCloud

Offreurs de programmes bug bounty:

Le programme peut être initié par des éditeurs de logiciels, Des organismes IT, Des vendeurs d'applications, des sites web, ou par des plateformes tierces spécialisées. L'objectif est de sécuriser les produits informatiques en fermant toute brèche qui pourrait exploitée par des pirates pour engendrer des dégâts peut être irrémédiables. Il y en a même un programme bug bounty pour le noyau Internet et les différents logiciels opensource, sponsorisé par des grand éditeurs et organismes comme : Microsoft, Facebook, GitHub. La plateforme spécialisée en Bug bounty la plus connue est HackerOne, elle adopte des programmes Bug bounty des différents éditeurs et entreprises existants sur internet : https://hackerone.com/bug-bounty-programs.

Raisons/ Avantages pour lancer un programme Bug Bounty:

  • Un nombre beaucoup plus élevé que celui d'employés de l'entreprise travaillent à la recherche de failles dans les systèmes informatiques de cette entreprise, et cela sans les faire recruter, ni payer tous, sauf celui qui trouvera réellement les vulnérabilités ;
  • Il n'existe pas de système informatique sûr et sécurisé à 100 %. Même les meilleures développeurs du monde laissent dans leurs logiciels des failles qui peuvent être fatales un jour ou seront découverts et exploitées par des pirates. Alors, le meilleur qu'on puisse faire et de lancer une recherche à grande échelle par un programme bug bounty, ainsi devancer une potentielle découverte et exploitation malveillante ;
  • Économie : argent dépensé, sous forme de récompenses, que pour un gain de sécurité en contre partie. Ce qui n'est pas le cas pour l'argent payé aux sociétés sous-traitantes spécialisées en sécurité . En plus, la valeur de la récompense est beaucoup moins comparativement aux pertes financières et les coûts de recouvrement engendrés par l’exploitation de failles par des attaquants ;
  • L'expérience de cette nouvelle pratique de bug bounties se répand de jour en jour et se confirme parmi les moyens les plus efficaces dans la politique de sécurité. Des grands constructeurs comme Google, Yahoo, Apple, Facebook, ...etc l'ont déjà adopté et ont récolté ses fruits ;
  • Le lancement de tels programmes est maintenant facilité par la venue de nouvelle plateformes en lignes, offrant des services bug bounties avec des paramètres appropriés et des récompenses adéquates. Les plateformes populaires sont : HackerOne, Cobalt et Bugcrowd ;
  • Rapidité et gain de temps, par un nombre plus important de chercheurs de vulnérabilités avec une variété d'outils et de compétences motivés par des récompenses attractives, le temps de découverte de failles sera réduit à son optimum ;
  • Et l'entreprise offrante de programme bug bounty et les candidats chercheurs de bugs, tous sont gagnants. L'entreprise de son coté a réduit les coûts dépensées pour avoir un meilleur service de sécurité rendu pour ses applications. Et du côté des white hachers, un gain financier pour juste exploiter, passionnellement, leur savoir faire dans une tâche bien définie. La récompense varie selon l'importance de l'entreprise et les applications cibles, elle peut représenter plusieurs salaires d'experts en sécurité pendant une longue période d'une année de travail ;
  • Bâtir un pont entre le développement croissant et rapide des connaissances des hackers en matière de sécurité et la sécurisation des applications qui sont exposées aux attaques inconnues développées par ces inconnus ennemis rendus collaborateurs par l'élaboration de tels ponts bug bounty.

Inconvénients ou risques de Bug Bounties:

Certes, cette nouvelle pratique est efficace si les vulnérabilités sont rapportés par des white hat ou ethical hackers, jouant ainsi un rôle d'acteurs de sécurité. Mais ce n'est pas toujours le cas, ces programmes peuvent aussi être problématiques et posent des risques. Pour en limiter ce risques, leurs initiateurs organisent des programmes bug bounty à huit clos et les candidats sont invités avec un nombre limité.

Quelques points à prendre en considération lors d'élaboration d'un programme bug bounty:

  • Bien définir l'ensemble vulnérabilités soumises au programme. Ne pas laisser un candidat s'induire en erreur pour prendre un service normal fonctionnel pour une faille, tel que prendre un service de téléchargement de fichiers à partir d'un serveur publique comme une faille de vols de données par un attaquant distant. Exclure également toutes les failles déjà découvertes ou connues, afin de payer que pour une nouvelle découverte. Pour cela, établir une liste de « vulnérabilité connues » envoyé dans le programme afin que chaque vulnérabilité trouvée peut être comparée à cette liste ;
  • Le programme doit être clair avec des paramètres bien définies comme :
    • Les adresses IP, les noms de domaines, les applications, et les services ciblés par le programme doivent être explicitement cités avec ceux qui ne sont pas ;
    • Une charte ou une politique qui définit ce qui est permit ou pas au candidat de faire comme l'exploitation des failles découvertes qui peut engendrer des dégâts irrémédiables. Par exemple, l'exploitation d' une faille qui permet la suppression des données doit être interdite et la vérification de la validité de l'exploit sera réserve uniquement pour l'équipe sécurité de l'entreprise ;
  • La valeur de la récompense doit être bien évaluée relativement au risque encourue par la vulnérabilité récompensée ainsi que le budget de l'entreprise, en la gardant, tout de même, assez attrayante pour les chasseurs de failles. Éviter également de remplir le programme avec un tas de failles sans risque ou avec un niveau bas ;
  • Expliciter tout les détails qui doivent être intégrés dans le rapport de vulnérabilité trouvée : démonstrations pas à pas, prises d'écran, scripts, commandes, vidéos, ...etc. Cela aide à clarifier les attentes des deux côtés ;
  • Veiller à garder toutes les mesures de sécurité dressées dans l'entreprise actives, comme les firewalls, les IDSs, les préventions de scan, ...etc. et surtout les programmes de journalisation afin d'avoir toutes les traces de pénétrations ou d'exploitations ;
  • Offrir un moyen de communications clair pour les différents chercheurs de vulnérabilités pour avoir des informations à jour et éviter toute redondance de rapports d'informations qui seront accessibles par tout les membres ;
  • Assister l'élaboration du programme et s'inspirer par ce qui est déjà présenté par les programmes publiques comme ceux de Hackerone, Cobalt et Bugcrowd.

Ne jamais oublier !

La sécurité n'est pas un but défini à atteindre, mais un travail et une conduite continus avec une variété de mesures. Le bug bounty n'est qu'une brique complémentaire au dessus de beaucoup d'autres comme : les principes et recommandations de sécurité lors de la programmation d'applications, tests de robustesse au failles, politique de sécurité à jour de nouvelles technologies ainsi de risques encourus, audits, tests de pénétration et de scan réguliers, et de la mise en place et mise à jours des différents éléments de sécurité comme les firewalls, les IDSs, ...etc.