08 Novembre 20022 9h58. Fin de la réunion du comité de sécurité. Une conclusion s’impose: on doit sensibiliser/former nos équipes à la sécurité. Une formation, c'est bien, mais la plupart d’entre eux sont déjà des développeurs chevronnés. Il y a de grandes chances que cela ne les touche pas suffisamment.  Des livres ? Il faut qu’ils se motivent, et pas sûr non plus que ça les rende plus sensibles aux risques encourus. 

Une approche créative

Bon, quand on ne sait pas, on demande à ceux qui savent. Lancer une recherche pour voir ce que font les autres, c’est souvent source de nouvelles idées. 

J’ai une avalanche de formations et de livres sur la sécurité informatique. Ça ne va pas aider. Bon, lui dit quelque chose de différent (1). Organiser un CTF (Capture The Flag) ça permettrait qu’ils mettent les mains dans le cambouis et ça fait comprendre l’impact d’une faille de sécurité. La difficulté ici sera d’inclure tous les langages de programmation que nous utilisons en interne et d’ajouter une section pour les admins/devops.

Qu'est-ce qu'un événement Capture the Flag ?

Un CTF est un événement dans lequel des équipes de tailles variables (dans notre cas, limité à 4 personnes) s’affrontent pour obtenir le plus haut score. On leur présente une série d’épreuves, challenge ou casse-tête informatique de difficulté variable. Il s’agit ensuite de trouver la faille de l’épreuve. Des points sont accordés lorsqu'un des membres de l’équipe pirate exploite la faille laissée intentionnellement dans un challenge.

Pour Camptocamp, une équipe pluridisciplinaire a été réunie pour écrire les épreuves. Il nous faut du Python, du Java, de l’infrastructure et des épreuves “tout niveau”. Nous avons proposé un vaste éventail de casse-têtes que toute personne, même non technique, pouvait en résoudre. 

Une des épreuves était par exemple de prouver que MD5 n’est pas sûr (md5-collision/minced). Celle-ci consistait dans un premier temps à découvrir le fichier robots.txt” (qui était donné dans l’indice de l’épreuve).

Celui-ci pointait sur un fichier contenant un mot de passe condensé en MD5, il suffisait d’effectuer une recherche avec ce MD5 et le mot de passe apparaissait en clair. 

D’autres épreuves un peu plus velues consistaient à prendre le contrôle d’un serveur distant. Une fois le shell ouvert, il fallait récupérer les accès du pod au Kubernetes et aller chercher un secret dans l’API. Seulement deux équipes ont réussi cette épreuve. 

L’infrastructure a été montée dans AWS en utilisant leur solution EKS, avec seulement les IPs de Camptocamp autorisées à accéder à celle-ci. Tout cela rapidement grâce à la Devops Stack (2). 

Le match a été rude entre les équipes. Les non-techniciens galèrent derrière, mais ne repartent pas bredouille : ils ont réussi à capturer les “petits” flags, et ils ont compris les notions que l’on voulait faire passer. C’est exactement ce que nous avions envisagé.

Bien sûr, certains joueurs bousculent l’infrastructure, comme le prouve cette consommation excessive de CPU. Ils avoueront plus tard avoir lancé un grep récursif à la racine de l’épreuve. C’est décevant, ils auraient pu au moins miner du bitcoin. 

À la fin des épreuves, nous avons distribué le code des épreuves et ajouté des writeups pour que ceux qui le souhaitaient puissent reprendre les épreuves (3).

Au final, ce sont 11 équipes qui se sont affrontées avec un total de 38 joueurs et 12 challenges. 

Certains ont eu leur baptême du feu et se sont pris au jeu. C’était pour beaucoup leur première expérience avec le monde de la sécurité et ils ont mordu dedans à pleines dents. Certaines personnes qui ne se parlent jamais ont formé des équipes et ont collaboré pour la première fois pour booster leurs chances de “flagger”.  L’objectif de départ qui était, rappelons-le, de former les équipes aux risques de la sécurité est rempli. 

Le CTF a beaucoup plus sensibilisé à la sécurité que n’importe quel livre et/ou n’importe quelle formation. Et les personnes présentes se sont bien amusées. Nous faisons donc d’une pierre deux coups. 
 

  1. https://medium.com/@jeanmichel.amblat/organizing-your-first-internal-security-competition-faa50528b506

  2. https://devops-stack.io/

  3. https://github.com/JGodin-C2C/capturethecamp

Carrière

Vous souhaitez travailler dans un environnement inspirant et rejoindre nos équipes motivées et multiculturelles ?