Bug bounty vs Test d’intrusion : quelles différences ? Comment se lancer ?

Dans les années 2000, il était plutôt difficile de s’auto-former aux tests d’intrusion, sans prendre de risques juridiques inconsidérés : peu de formations en libre accès, un cadre juridique assez peu clair, et une communauté existante mais néanmoins très limitée.

De 2000 à 2010, le cadre juridique sur le hacking éthique était en pleine gestation (pour ne pas dire “errance”…), avec notamment des questions autour de la criminalisation pour détention d’outils de “piratage”, ou encore sur la publication de failles exploitables. Dans un réflexe pavlovien de protection du système et des entreprises, il a été tentant, pour le régulateur, de durcir la législation ou la jurisprudence et de l’étendre à l’ensemble de l’écosystème en bannissant tout ce qui s’approchait de près ou de loin à la notion de « piratage ». 

Fort heureusement, la législation a évolué dans le bon sens et permet aujourd’hui de s’auto-former sans problème aux tests d’intrusion, et ceci notamment grâce aux plateformes de Bug Bounty. 

Bug Bounty vs Tests d’intrusion

Le bug bounty : un terrain de jeu idéal (et légal !) pour le pentester

Les programmes de Bug Bounty sont un terrain de jeu idéal pour les apprentis pentesters qui cherchent à se former à moindre frais. L’avantage est multiple du fait des spécificités de ce type des programmes : 

  • Des programmes nombreux, vous aurez l’embarras du choix,
  • Un scope suffisamment large pour la plupart des programmes,
  • Une rémunération sur résultat relativement motivante qui vous poussera à vous accrocher, 
  • Une “gamification” (points, classement public, mise à la une des meilleurs),
  • Une communauté bien établie, et de nombreux tutoriaux, vidéos, et articles

L’intérêt technique du bug bounty pour se former aux tests d’intrusion

Un bug bounty a beaucoup de similarités avec un test d’intrusion. La démarche est similaire :  reconnaissance, compréhension et recherche de failles. En ce sens, les programmes de bug bounty s’apparentent aux tests d’intrusion externes. Ils sont donc parfaits pour progresser sur les aspects suivants :

  • Scans de ports / Compréhension des services ouverts
  • Énumération DNS
  • OSINT / Recherche d’informations publiques
  • Sécurité des applications web

Les limites du Bug Bounty comparé au test d’intrusion

A contrario, si les bug bounty couvrent une partie non-négligeable de ce qui est habituellement réalisé pendant un test d’intrusion, ils n’en couvrent pas l’intégralité. Ceci doit être pris en compte par les personnes qui veulent se former aux pentests grâce aux programmes de Bug Bounty.

A titre d’exemple, il sera rare que vous soyez confronté directement à un environnement full-Microsoft, habituellement utilisé en interne mais non-visible depuis Internet. Le tableau ci-dessous résume les aspects liés aux tests d’intrusion qui ne sont généralement pas couverts par les programmes de Bug Bounty. 

Périmètre souvent présent en test d’intrusion mais peu fréquent en Bug BountyExemples
Environnement MicrosoftActive Directory, machines Windows, Serveurs de fichiers,etc.
Applications métiersERP, Data leaks, applications financières, applications d’ingénierie, etc.
Systèmes de sûretéCCTV, contrôle d’accès (système de badges)
Systèmes domotiquesSystème de gestion des ascenseurs des bureaux de l’entreprise, climatisation, volets roulants, éclairage
Réseaux industrielsICS, SCADA, etc.
Téléphonie VOIP
AntivirusContournement des antivirus, étant donné que la plupart des outils sont détectés 😉

Au vu de ce tableau, vous pouvez devenir très bon en Bug Bounty, mais être complètement démuni si vous devez réaliser un test d’intrusion interne dans un environnement Microsoft tant les spécificités sont nombreuses. Le risque sera de passer trop de temps sur des applications web internes puisqu’il s’agira de votre principale expertise, alors qu’un pentester expérimenté pourra compromettre le réseau cible en quelques heures du fait de sa connaissance avancée des infrastructures Microsoft.

Le test d’intrusion interne est un autre monde comparé aux tests d’intrusion externes, que ce soit en termes de technologies utilisées ou en taille du périmètre. Vous passez potentiellement de quelques dizaines de serveurs exposés sur internet, à plusieurs milliers de machines sur le réseau interne, sans aucun firewall. Vous pouvez (généralement) vous connecter sur une machine au Brésil depuis Paris. Il s’agit donc d’une approche différente du test d’intrusion orienté “Bug Bounty”, car dans cette masse vous devrez trouver le moyen le plus direct pour compromettre non pas une machine, mais tout le réseau, c’est-à-dire toute l’infrastructure Microsoft, et devenir “Administrateur du domaine”. 

De la même façon, vous devrez souvent “packer” vos outils pour qu’ils ne soient pas détectés par les antivirus. En effet, vous aurez très souvent à “rebondir” de machine en machine pour arriver à vos fins, en “pivotant” sur les machines compromises.

Le test d’intrusion interne offre plus de diversité qu’un programme de Bug Bounty ou qu’un test d’intrusion externe. Très souvent, vous serez confronté à des logiciels propriétaires, notamment pour tout ce qui concerne les équipements de Sûreté (CCTV, Badges), les systèmes de domotique, et les réseaux industriels. 

Comment compléter sa formation Bug Bounty pour devenir Pentester

Le bug bounty est un bon tremplin pour exercer la profession de Pentester. Contrairement au Bug Bounty, devenir pentester vous assurera d’avoir un salaire prévisible généralement plus important que d’être chasseur de bugs à plein temps.

Si vous comptiez sur le Bug Bounty pour obtenir les connaissances nécessaires aux tests d’intrusion, vous devrez inévitablement compléter votre formation. Le point le plus important : la compréhension des environnements Microsoft, ainsi que les failles et outils permettant de compromettre ces systèmes. 

Pour les environnements Microsoft Azure, ce dépôt Github contient une mine de ressources intéressantes. Cet article est également une bonne introduction à quelques outils couramment utilisés dans le cadre de tests d’intrusion dans un environnement Active Directory. 

Le point le plus difficile sera la mise en pratique : il n’est pas simple d’avoir un réseau Windows sous la main !

Certains proposent donc des tutoriaux pour créer vous-même votre “lab” virtualisé. Le site HackTheBox propose également de vous donner accès à un “lab” complet, avec un environnement Active Directory, ce qui est sans aucun doute la solution la plus simple pour s’entrainer.

Cette excellente vidéo donne également des pointeurs pour vous permettre d’appréhender et de vous entraîner sur des environnements Active Directory.

Une fois que vous maîtrisez les tests d’intrusion d’environnements Microsoft en plus de la méthodologie Bug Bounty, on peut affirmer sans aucun doute que vous êtes déjà bien préparé au Pentest.

Se former et se lancer dans le Bug Bounty

Se lancer dans le Bug Bounty n’est pas si simple. Il ne suffit pas de s’inscrire sur une plateforme de Bug Bounty et de se lancer tête baissée. Agir de la sorte vous découragera inévitablement, car la compétition est rude. Vous devez donc établir un plan de progression et vous immerger progressivement dans ce monde quelque peu particulier.

Témoignage personnel

Très honnêtement, si j’étais étudiant en 2023, j’aborderai non pas la sécurité en “jouant” avec les serveurs de mon université mais en me lançant à fond dans les programmes de Bug Bounty, car ils sont très formateurs. C’est une véritable voie royale pour débuter sa carrière en sécurité, et plus particulièrement dans le test d’intrusion.

Comment s’initier aux Bug Bounty

Bien entendu, vous devez déjà avoir une base technique solide pour espérer progresser dans le Bug Bounty. Une fois que vous avez des bases techniques solides en réseau, web et système, il vous faudra regarder beaucoup de vidéos Youtube, des interviews de chasseurs de bug, lire des articles et des rapports de bug rendus publique. Il s’agit d’un apprentissage infini ! Et bien entendu, en plus de lire et d’apprendre, vous devrez expérimenter. 

Si vous êtes “nouveau”, vous pouvez commencer par regarder cette vidéo de 11h (!) sur le sujet. Il s’agit d’un véritable cours en ligne sur le Bug Bounty.

Vous y trouverez vraiment toutes les informations pour vous lancer efficacement.

Nous citons cette vidéo car elle est plutôt bien faite et gratuite, mais il y a bien d’autres tutoriaux et cours, gratuits ou payants sur le sujet.

Une note importante : prenez des notes dès le début, soyez organisé. Le bug bounty est complexe, vous devrez connaître des dizaines d’outils différents, être à l’aise en scripting, et maîtriser la méthodologie. Vous pouvez utiliser un outil comme Notion ou Coda pour vos notes, cela vous permettra de les hiérarchiser.

Le Bug Bounty : la méthode progressive

Avant de se lancer tête baissée dans les programmes de Bug Bounty, vous devez retenir qu’il s’agit d’un milieu ultra-compétitif, comme tous les domaines où il y a de l‘argent à la clef. Il y a donc un danger pour le débutant : celui d’être découragé après quelques semaines de recherche de vulnérabilités, sans rien trouver. Ce n’est pas rare, et c’est même le chemin usuel de tout chasseur de bug débutant.

C’est la raison pour laquelle il est préférable de s’immerger progressivement pour s’assurer d’avoir les compétences nécessaires avant de se lancer dans le grand bain. 

Plutôt que de se lancer tête baissée en étant persuadé qu’on va “hacker la planète”, il peut être pertinent d’effectuer un parcours plus long, mais au final plus solide : 1) Les Labs 2) les VDP 3) les Bug Bounty. 

  1. Les Labs. Ce sont des applications contenant des vulnérabilités mises à disposition des personnes qui veulent s’entraîner. C’est un excellent moyen pour se former en conditions “réelles”, en étant sûr qu’il y a une “solution” (c’est-à-dire une faille à trouver). Les labs de PortSwigger par exemple, sont très efficaces, notamment car ils sont notés en fonction de leur difficulté. 
  1. Une fois que vous avez fait les principaux “labs” existants, vous pouvez augmenter d’un cran la difficulté, en attaquant les VDP (Vulnerability Disclosure Program). Il s’agit de programmes proposés par certaines sociétés ou institutions vous permettant de tester et rapporter les failles identifiées. La grande différence avec les programmes de Bug Bounty, c’est que ceux-ci ne sont généralement pas rémunérés. Il y a donc beaucoup moins de compétition, ce qui augmente vos chances de trouver en conditions réelles vos premières vulnérabilités.
  1. Ensuite, une fois que vous êtes bien rodé, vous pouvez vous lancer dans les programmes de Bug Bounty rémunérés. 

Les principales plateformes de Bug Bounty

Les principaux sites qui proposent des programmes de Bug Bounty sont les suivants : 

La plupart des chercheurs de failles s’inscrivent sur plusieurs plateformes à la fois. Les inscriptions étant gratuites, cela vous permet d’accéder à une diversité de programmes Bug Bounty assez riche.

L’automatisation : le graal du Bug Hunter

Une fois quelques bugs trouvés, la plupart des Bug Hunters expérimentés s’orientent vers l’automatisation. En effet, les programmes de Bug Bounty nécessitent de réaliser des tâches relativement répétitives. Pire encore, un programme se teste sur le long terme : les architectures et applications évoluent, et il importe donc de suivre de près ces changements afin d’être le premier à les tester, et donc de découvrir de nouvelles failles de sécurité.

L’automatisation est une caractéristique des Bug Bounty qu’on retrouve beaucoup moins dans les tests d’intrusions. Il s’agit donc d’un axe passionnant qui trouve son origine dans la compétition et la nécessité d’être plus rapide que les autres pour pouvoir être rétribué. 

Témoignage personnel

Personnellement, je trouve que l’automatisation est une des facettes les plus passionnantes du Bug Bounty. L’automatisation permet d’obtenir un avantage compétitif sur ses concurrents, et elle nécessite la maîtrise de plusieurs aspects : sécurité, scripting, développement, parallélisme / multi-threading, etc.

La plupart des Bug Hunters automatisent donc au maximum les aspects de reconnaissance de la cible, et les attaques. Ils mettent également en place des mécanismes pour être informés en quasi temps-réel des changements de leur cible. Certains vont même jusqu’à utiliser des serveurs au plus près de leur cible pour réduire le temps de latence, ce qui n’est pas sans rappeler les techniques boursières utilisées dans le cadre du “high-frequency trading”.

Il est probable qu’on en soit qu’aux prémices dans l’automatisation de la recherche de vulnérabilités. La plupart des plateformes d’automatisation sont relativement artisanales et reposent sur des scripts. C’est donc un domaine assez passionnant et en plein développement, et il ne fait nul doute que bientôt, l’intelligence artificielle (HackGPT ? ;-)) fera son introduction pour améliorer les performances du Bug Hunter. 

Pour conclure cet article, nous donnons quelques pointeurs pour l’automatisation Bug Bounty :

LienTypeCommentaire
AxiomOutilPermet d’utiliser un pool dynamique de serveurs pour effectuer ses scans et attaques
NucleiOutilUn scanner de vulnérabilités en vogue, basés sur des fichiers de configuration YAML 
VidocSecurityArticleUn bon retour d’expérience sur l’automatisation
ReconFWOutilUn outil de reconnaissance automatique basé sur script Bash, compatible avec Axiom
HaklukeArticleUn bon article sur l’automatisation
Photo of author

Nico

Pentester ayant eu 20 ans de carrière, et disposant je l'espère d'assez de recul sur ce sujet, j'ai eu l'idée de faire ce blog pour informer au mieux les aspirants pentesteurs et les débutants.

Laisser un commentaire