Review de la certification “Certified Bug Bounty Hunter” de HackTheBox
Johan Brun
Développeur
4 avril 2023
Nos experts partagent leurs expériences sur le blog. Contactez-nous pour discuter de vos projets !
En 2023, le monde des certifications dans le domaine de la cybersécurité est une jungle, comme l'atteste l'excellent graphique "Security Certification Roadmap" de Paul Jeremy (lien ici : https://pauljerimy.com/security-certification-roadmap/). Nous allons aujourd'hui nous intéresser au pan des tests de sécurité, en particulier la catégorie des tests d'intrusions (penetration testing en anglais, ou pentest).
Une multitude de certifications en sécurité
Aujourd'hui, l'OSCP, une des certifications d'Offensive Security, est la plus plébiscitée par les pentesters, mais également certaines entreprises, car elle est reconnue comme un gage de confiance pour attester les bases du monde des tests d'intrusion : tests sur des systèmes Active Directory, Web, exploration du réseau etc... Le périmètre est large.
Cependant, il existe des certifications bien plus spécialisées. Car le monde technique est large, et chaque pentester développe sa spécialité. Et c'est ici le sujet de l'article, en développant une nouvelle certification, axée exclusivement sur les tests d'applications et apis web. Cette certification, c'est la Certified Bug Bounty Hunter (CBBH), propulsée par l'entreprise HackTheBox. Cette dernière est déjà bien connue pour ses nombreux challenges de sécurité inspirés du monde réel.
Elle s'inscrit comme ultime étape d'une formation proposée par cette même entreprise, autour du Bug Bounty. HackTheBox s’est d'ailleurs associée à la plateforme hackerone.com pour construire ce parcours.
Un périmètre de la base du web au rapport d’intrusion
Sans rentrer dans les détails, le bug bounty se distingue du test d'intrusion : modèle économique différent, nombreux acteurs. Leur point commun se situe à un endroit : l'évaluation et l'exploitation de vulnérabilités de sites et api webs, dans le but de le signaler aux équipes en charge de la maintenance du site. Les compétences et connaissances requises sont alors identiques :
Compréhension du fonctionnement du web
Maitrise d'un ou plusieurs langages de programmation web
Connaissance d'une multitude de vulnérabilités web (Cross Site Scripting, Injections SQL, Injection dans les templates lors du SSR etc...)
Reconnaissance et cartographie d'un site web et ses apis
Exploitation manuelle ou à l'aide d'un outil de vulnérabilités
Rédaction d'un rapport présentant les vulnérabilités et risques, ainsi que des recommandations
Une grande diversité de vulnérabilités couvertes
Cette certification, j'ai eu l'occasion de la passer le mois dernier, pour des raisons purement personnelles : valider des connaissances et des compétences acquises. N'ayant que peu de reviews sur l'Internet, j'ai alors décidé de faire mon propre retour sur cette certification.
Afin de passer l'examen, il est obligatoire de suivre le parcours de formation de l'academy d'HackTheBox. Celle-ci abordera beaucoup de modules, comme :
Les bases du web : sites web, api, requêtes HTTP, sessions, SOAP, API Rest, CMS….
Reconnaissance : fuzzing, identification des technos en jeu, identification de process métiers
Attaques coté client : Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF), Local File Inclusion (LFI), Attaques sur les sessions, File Upload...
Attaques coté serveur : Server Side Request Forgery (SSRF), XXE (XML eXternal Entities), Server Side Template Injection (SSTI)...
Fonctionnement d'outils : ffuf (fuzzing), sqlmap (injections sql), XSSHunter (XSS), Hydra/Hashcat (bruteforcing)...
Rédaction d’un rapport de vulnérabilités
Ayant été développeur web durant 7 ans, j'ai pu passer tous les modules offrant les bases du web. Ensuite, on peut retrouver des éléments déjà rencontrés dans la vie d'un dév : XSS, injections SQL et autre.
Les modules proposés sont très complets : ils commencent de zéro mais poussent assez loin les explications et les exemples. Par exemple, pour XSS, la base sera donnée avec un simple exemple
<script>alert(1)</script>, permettant à chacun de comprendre les enjeux de cette vulnérabilité. Puis le module va monter en complexité en détaillant comment on peut exploiter la vulnérabilité et s'adapter / contourner les sécurités mises en place. Un exemple d'injection permettant l'exfiltration d'un cookie utilisateur :
Note : cet extrait ne tient pas compte de la sécurité autour des cookies et du cross-domain, c'est surtout pour l'exemple ;)
7 jours pour exploiter un maximum de failles
Pour parler du déroulement de l'examen, je ne pourrais évidement pas dévoiler tous les détails. Cependant, je vais me baser ici sur une compilation de détails rendus publics et d’impressions personnelles.
L'examen est accessible directement après l'achat d'un voucher ET après avoir fini le parcours "Bug Bounty Hunter". A l'aide d'une connexion VPN, vous aurez accès aux différentes applications de l'examen. Vous aurez alors 7 jours pour trouver et exploiter les vulnérabilités dans le but de marquer des points. Un minimum de 80 points sur 100 est requis pour passer le test. De plus, il faut également soumettre un rapport de Bug Bounty, rédigé de manière professionnelle. Pour vous aider, un template sera fourni lors du début de l'examen.
Les applications à exploiter sont assez proches du réel, HackTheBox a soigneusement tenté de rendre l'exercice aussi vrai que nature. Coté vulnérabilités, pas de surprise : tout a déjà été vu dans les modules de cours. La seule différence notable est qu'il faudra combiner différentes vulnérabilités pour venir à bout d'une application. On retrouve alors le fameux dicton "thinking outside the box", car il faudra faire preuve de créativité.
Cela rend l'examen relativement difficile, en particulier pour les personnes faisant leur premiers pas dans la sécurité offensive.
Une bonne préparation est essentielle pour l’examen
Passer cette certification nécessite une très bonne préparation, en particulier si vous débutez dans la sécurité offensive. Je recommande principalement deux aspects pour se préparer au mieux :
Vous établir votre propre mindmap de reconnaissances des app et apis web. La cartographie est un point central, qui vous permettra ensuite de trouver des points d’impacts. Une reconnaissance bâclée vous conduira inévitablement à l’échec. Pour constituer votre mindmap, rien ne vaudra mieux que l’entrainement (par exemple sur les machines d’HackTheBox). Le diable se cachant dans les détails c’est souvent ici que vous trouverez de potentielles vulnérabilités.
Lister de votre coté toutes les vulnérabilités que vous aurez appris dans le cours. L’avantage de passer une certification, contrairement à la vie réelle, c’est que vous savez que la réponse est dans une des vulnérabilités vues dans les cours. Même s’il faut savoir les combiner et les exploiter, vous aurez au moins l’étendue des possibilités directement accessible à votre esprit.
Pour ma part, je m’étais constitué une mindmap assez massive, mais qui déroule les différents chemins en fonction de ce que je trouve. Les méthodologies y sont également détaillées, me permettant d’avoir une compilation d’informations rapidement accessible. Par ailleurs, elle me sert désormais pour un usage professionnel, une façon de continuer à valoriser cette certification.
Bien entendu, je ne peux que recommander de s'entraîner également à exploiter les vulnérabilités de différentes manières. Pour ce faire, HackTheBox a sorti "Academy X HTB Labs", qui permet de trouver des machines en fonction des vulnérabilités. Le site ippsec.rocks propose la même chose, mais peut également vous spoiler un peu.
Cependant, je tiens à préciser que l'utilisation de ces plateformes doit être raisonnable, et ne doit pas constituer une source unique de préparation à l'examen. L'examen est conçu pour évaluer des compétences et des connaissances acquises au fil du temps, et non pour mesurer la capacité à mémoriser des solutions spécifiques à des problèmes précis. Il est donc important de diversifier les sources d'apprentissage et de s'entraîner à résoudre des problèmes de manière autonome.
Je m’étais demandé sur quel niveau de box m’entraîner pour coller à l’examen. De mon expérience, le niveau de la certification pourrait être accolé à des boxs de type medium et hard.
Personnellement, ce ne fut pas si simple
Personnellement, j’ai trouvé que la certification exige un certain niveau en sécurité offensive. Il faut disposer de bonnes méthodes pour bien explorer le site, et explorer les vulnérabilités de façon ingénieuse. J’ai d’ailleurs trouvé la certification bien plus difficile que les exercices proposés dans les modules.
Trouver tous les flags m’a bien pris plusieurs jours, au moins 4 sur les 7 jours proposés . Le plus long a été la reconnaissance, et en refaire tout le long des 5 jours d’exploitation (si on conserve 2 jours pour le rapport). Le plus gros risque est de passer du temps sur quelque chose d’inexploitable car on n’a pas remarqué un détail (ce qui m’est arrivé une ou deux fois).
Prendre des pauses est important, car une fois la tête dans le guidon c’est compliqué de se débloquer. Et des fois, il vaut mieux s’aérer l’esprit, et la réponse tombe souvent d’un coup après.
Pour le rapport, c’est une partie à ne pas négliger. A écrire intégralement en anglais, la rédaction m’a pris à peu près une journée et demi.
Une certification exigeante et professionnelle
Pour conclure, je dirais que cette certification est un très bon moyen de valider des compétences en sécurité offensive web. Un large spectre de vulnérabilités est couvert, et l’exigence de la certification permet d’attester de la mise en œuvre de méthodologies complexes. Un nice-to-have pour tout professionnel de la sécurité offensive.