Le Bug Bounty est un moyen proposé par de nombreuses plateformes et de sociétés de développement de logiciels, grâce auquel des chercheurs en sécurité peuvent remonter des bugs, en particulier des vulnérabilités, et, ainsi, recevoir une reconnaissance, voire une récompense, pour chaque vulnérabilité trouvée.
Aujourd’hui, de multiples plateformes de Bug Bounty proposent une alternative pour tester légalement la sécurité d’une panoplie d’applications.
C’est donc un autre moyen, pour les entreprises, de découvrir et de corriger des vulnérabilités avant que celles-ci ne tombent dans les mains d’une personne malintentionnée. Les applications peuvent être testées en continue, c’est l’entreprise qui décide de la durée du programme. L’entreprise rémunère le chercheur pour chaque vulnérabilité remontée et non pour le temps passé à la trouver.
En matière de Bug Bounty, on parle souvent de programmes de Bug Bounty. Il en existe essentiellement deux types : public et privé. Les programmes publics sont ouverts à tous, ils sont souvent organisés par les entreprises elles-mêmes, les plus matures en termes de sécurité. Les programmes privés sont gérés par des plateformes de Bug Bounty qui se positionnent comme intermédiaires entre les chercheurs et les entreprises.
Ces programmes se limitent souvent à une communauté réduite de chercheurs. Pour une DSI, le plus simple est de rentrer en contact avec une plateforme de Bug Bounty, en charge de cadrer le programme, de trouver les profils adaptés à la cible et de mettre à disposition tous les moyens nécessaires pour que l’entreprise puisse suivre l’avancement et corriger les vulnérabilités.
Avant de lancer un programme de Bug Bounty il faut déjà avoir réalisé des tests d’intrusion pour l’application que l’on souhaite auditer. Dans le cadre d’une application Web il faudra fournir les URL à auditer. Lorsque le périmètre sera bien défini, on donnera l’autorisation à la plateforme pour déclencher le Bug Bounty. Ensuite, l’analyse démarre très rapidement avec les chasseurs de bugs sélectionnés pour ce programme.
Dans la plupart des cas, ils trouveront très rapidement des failles sur le système en question. Une fois que les failles sont identifiées, les chasseurs de bugs produisent un rapport de vulnérabilités, avec le détail de la faille de sécurité. Ce rapport de vulnérabilité permet aux équipes en interne de corriger les failles remontées.
Les chasseurs de bugs ont moins de contraintes (durée, horaires, déplacements, conditions de réalisation, etc.) pour effectuer leurs recherches, comme on peut le constater sur les prestations classiques. Ils disposent donc de plus de temps pour tester des vulnérabilités et produire des codes d’exploitation (PoC) beaucoup plus complexes.
On peut faire confiance aux plateformes de Bug Bounty si trois conditions sont réunies. Tout d’abord, un bon cadrage du programme ; ensuite le périmètre doit être bien défini ; enfin, il faut faire appel à des vrais professionnels. La criticité d’une application est évaluée selon des critères objectifs et mesurables, grâce à des standards de marché, le plus connu aujourd’hui étant le CVSS (Common Vulnerability Scoring System). Aujourd’hui, presque tout peut être éligible un programme de Bug Bounty, par exemple une application Web, une application mobile, une application métier ou des objets connectés.
Bug Bounty et tests d’intrusion : quelle différence ?
Le Bug Bounty est un moyen complémentaire aux tests d’intrusion classiques. Il devrait être mis en place sur des applications ayant déjà fait l’objet d’un ou plusieurs tests d’intrusion. Lors d’un test d’intrusion, on cherche à être exhaustif, alors que dans le cadre d’un Bug Bounty, on se focalise plutôt sur l’exploitation de vulnérabilités importantes ou ayant un impact direct sur la cible, par exemple l’exécution de code malveillant à distance. Par ailleurs, un programme de Bug Bounty est souvent planifié sur une durée plus longue qu’un test d’intrusion classique.
Il ne faut toutefois pas se passer des tests d’intrusion, car ceux-ci restent beaucoup plus exhaustifs qu’un programme de Bug Bounty. Un test d’intrusion devrait être appliqué à chaque fois qu’il y a des changements importants dans le code d’une application. Le listage d’un nombre important de vulnérabilités et de non-conformités (quelles qu’elles soient) vis-à-vis des guides de sécurité et des référentiels connus tels que l’OWASP, permet d’augmenter le niveau de sécurité des applications et de rendre plus difficile l’exploitation de certaines vulnérabilités.