Un coup d’œil en coulisses : Rapport d’expérience sur la mise en place et la réalisation d’un événement CTF

Dans le cadre d’une mission, nous avons eu la chance d’organiser une compétition CTF. « CTF » signifie « Capture the Flag » et décrit une sorte d’olympiade de hacking dans le domaine de la sécurité informatique. Les participants, en équipe ou seuls, mettent leurs connaissances à l’épreuve en résolvant des problèmes difficiles. Il s’agit de trouver des « flags » (clés cachées) pour gagner des points. L’équipe qui obtient le plus de points remporte le concours. Bien que certains membres de l’équipe aient déjà une expérience individuelle des CTF, la création d’un tel événement à partir de zéro représentait un nouveau défi.

Objectif

Il s’agissait de concevoir un événement de hacking pour un client afin de sensibiliser les participants aux risques de sécurité informatique et de les familiariser avec les méthodes d’attaque. L’approche CTF présente plusieurs avantages évidents par rapport aux méthodes de formation traditionnelles : L’interaction directe avec les problèmes de sécurité favorise une compréhension plus approfondie de la sécurité informatique. En particulier, l’aspect ludique permet de motiver les participants de manière constante et se distingue ainsi des cours magistraux.

Mise en place de l’infrastructure : l’environnement de jeu CTF

La première question qui se posait était de savoir comment concevoir l’infrastructure technique afin de permettre aux participants de travailler sans problème. Chaque tâche a été dotée d’une machine virtuelle distincte à laquelle les équipes ont eu accès. Nous avons opté pour AWS et avons mis en place plusieurs instances d’Ubuntu, accessibles uniquement via un serveur VPN afin de cloisonner l’environnement. Pour gérer la progression et l’attribution des points, nous avons utilisé CTFd, un framework open source spécialement conçu pour les événements CTF. L’utilisation était très intuitive et nos challenges pouvaient être très bien intégrés grâce aux drapeaux déposés. La plateforme a servi de tableau de bord et a donc été le premier point de contact pour les participants.

Les défis : où la créativité rencontre les failles de sécurité

Après l’infrastructure, la conception des défis a suivi. Nous voulions proposer un éventail de défis couvrant différents domaines de la sécurité, notamment la sécurité Web, le réseau et les erreurs de configuration. Il s’agissait par exemple d’un défi API qui mettait en évidence les erreurs classiques de développement d’API, d’une application Web avec connexion et d’un labyrinthe d’exploration dans lequel le système de fichiers représentait un labyrinthe et devait induire les joueurs en erreur. Il était important pour nous que chaque tâche ait pour but de représenter différents niveaux de difficulté et d’exposer les participants à un large éventail de lacunes, des plus faciles aux plus difficiles. Les indices pouvaient être échangés contre des points si nécessaire. Après une phase de test interne, l’événement était prêt à être lancé.

L’événement : quand les développeurs deviennent des hackers

Quatre équipes de trois à quatre développeurs y ont participé. Comme les études et la formation mettent souvent l’accent sur d’autres sujets, le domaine de la sécurité informatique est souvent négligé dans le développement d’applications. La plupart des participants n’avaient donc aucune connaissance préalable dans ce domaine, mais cela n’a pas été un obstacle. Pendant plus de quatre heures, les équipes se sont penchées sur la cybersécurité, ont développé des solutions et ont cherché sans relâche le prochain drapeau. Le retour des participants a été très positif. Beaucoup d’entre eux ont déclaré qu’ils avaient acquis de nouvelles connaissances précieuses, ce qui correspondait à notre objectif : sensibiliser aux risques de sécurité. Nous avons également été ravis d’observer comment les participants ont trouvé des solutions innovantes auxquelles nous ne nous attendions pas. Comme c’est souvent le cas, il y a plusieurs façons d’atteindre un objectif.

Rétrospective et perspectives

L’événement a été un succès total, et pourtant, rien n’est parfait. Nous avons également pu tirer de précieux enseignements. L’un des principaux enseignements est qu’un grand nombre de défis peut souvent être écrasant pour les novices. De nombreux participants ont eu envie de relever les défis dans l’ordre et de se casser les dents sur certains d’entre eux. En principe, c’est une bonne chose, car cela témoigne de la persévérance et de la volonté de résoudre les problèmes. Cependant, en raison du temps limité, il vaut la peine d’adopter une approche plus large et d’essayer différents défis. Cela reflète le pentesting réel, où des délais fixes sont également fixés. Pour identifier efficacement les points faibles, il est essentiel d’adopter une approche stratégique et de ne pas s’attarder trop longtemps sur les défis individuels afin de ne pas perdre de vue l’ensemble. Sur cette base, nous avons déjà développé quelques idées pour les événements futurs et nous continuerons à optimiser la structure des tâches. Dans l’ensemble, cette première compétition de CTF a été une expérience passionnante et a été très amusante pour nous comme pour les participants. Nous sommes impatients de faire découvrir le domaine de la sécurité de manière ludique à un plus grand nombre de personnes à l’avenir. Voici un bref résumé de la structure technique :

  • AWS a été choisi comme hébergeur.
  • CTFd a été choisi comme plateforme CTF (comme une sorte de tableau de bord pour les défis et les points accumulés par les participants).
    • Les utilisateurs/équipes s’y connectent et peuvent voir les défis à partir de là.
  • tout se passe à l’intérieur d’un VPN
  • les défis ont été spécialement créés par nos soins
  • chaque défi est précédé d’un court texte d’introduction destiné à donner des indications sur la faille de sécurité potentielle
  • il existe des défis dans différents domaines (API, Web, crawling, etc.) avec différents niveaux de difficulté