Publié par

Il y a 1 mois -

Temps de lecture 4 minutes

L’enquête Espadon, les dessous d’un coding investigation

Le XKE, vous connaissez ? Si ce n’est pas le cas, je vous invite à lire cet article.

Pourquoi je vous en parle ? Parce que c’est de là que tout commence…

 

Let’s play!

Il y a quelques mois, Nicolas proposait en XKE un hands-on un peu spécial : un Coding Escape Game.

On a trouvé l’idée tellement géniale, que nous avons donc voulu la partager avec la communauté et créer un coding game. L’objectif était de faire parler de nous, mais surtout de nous amuser.

Nous sommes en juin, nous voulons que tout soit prêt pour la rentrée de septembre. Du coup, on a monté une A-team : Julien, Nicolas, Jean-Pascal, Benjamin et moi-même.

Nous partons sur les chapeaux de roues, sur énormément de sujets technos (stéganographie, sécurité, chatbot…), mais heureusement, Nicolas aka Père Castor est là pour nous rappeler l’essentiel : une bonne histoire, pour accrocher les gens.

On repart donc du début. Combien de temps cela doit-il durer ? Est-ce chronométré ? Est-ce un concours ? Quelle est l’histoire qui sous-tend ces exercices de code ?

Au final, c’est cette partie qui nous aura pris le plus de temps et qui nous aura le plus torturé. Nous arrivons à la solution telle que vous pouvez la découvrir sur le site espadon.techx.fr

 

Let’s code together

L’enjeu au milieu de l’été était, pour les cinq développeurs, de créer ensemble, tout en restant au maximum indépendant.

( Dans ce paragraphe, je vais donc vous parler techno en tentant de ne pas gâcher le plaisir de ceux qui n’ont pas – encore – découvert le jeu ).

Benjamin, aka Benji in Shape, a créé le bot en utilisant la suite Firebase et bot.ui, un framework JS de bot. Firebase Functions est utilisé pour vérifier les codes #espadon. Firebase Hosting est utilisé pour l’hébergement de l’application de bot et Firebase Storage pour les assets utilisés (image, logos, fichiers, etc.) L’application de bot est codée en JavaScript ES6 (avec Babel) et le style en SCSS, le tout assemblé via Webpack. Sous le capot, bot.ui utilise Vue.js

Chaque code est remonté dans Google Analytics afin de suivre la progression des “hackers”.

Nicolas, aka Père Castor, a créé un fichier de logs factice en utilisant Scala. La recette ? Des adresses IP fictives, des noms bidons, quelques messages sshd pompeux et beaucoup d’aléatoire. Tout cela cadencé par la plus célèbre des fonctionnalités, le “pattern matching”. 60 secondes de magie à l’image de la vidéo du blog et voilà un fichier de 4 Mo plein de mystères.

Julien, aka Chat Garou, a créé un encodeur / décodeur en utilisant Node.

Nous souhaitions faire une épreuve de type stéganographie. Assez rapidement nous décidons de ne pas utiliser d’image mais plutôt un gros fichier texte imbuvable. Ne sachant pas encore quel serait le mot ou message à cacher (et il a changé plusieurs fois !), il fallait donc programmer à la fois l’encodeur et le décodeur.

Pour se faire, Julien a utilisé son langage du moment, à savoir JavaScript sur NodeJS. Quelques lignes plus tard, il était capable de cacher n’importe quelle chaîne de caractères au sein d’un fichier et d’afficher la liste des nombres issus de la suite de Fibonacci.

Jean-Pascal, aka Azure Punisher, a créé un projet “Sécurité” avec OpenSSL. En effet, l’idée était de proposer aux joueurs une URL pointant vers un zip contenant un certificat SSL client. Le certificat lui-même étant porteur de l’url du serveur Cerbère à interroger. De cette manière, nous donnions une dimension “sécurité” à notre enquête mais il s’est avéré un peu trop compliqué à aiguiller via les indices et a été abandonné.

Pour ma part, j’ai apporté la touche finale en créant un faux serveur HTTP à base de AWS Lambda. La fonction utilise les API Twitter en NodeJs, et utilise un stockage Dynamo pour générer des tokens OTP (One Time Password).

Ces OTPs servent pour l’étape finale que nous vous laissons découvrir.

Conclusion : Just code it!

Ce projet est à l’image de ce que nous aimons faire : coder.

C’est notre passion, notre terrain de jeu.

Une envie ? On la code, et le plus beau dans tout ça, c’est qu’on trouve toujours des Xebian(e)s assez dingues et passionné(e)s pour nous suivre dans l’aventure, même le temps d’un été.

A l’heure où je vous écris, nous sommes fiers de compter plus de 1000 joueurs (qui ont entré au moins le 1er code), et 125 finishers (qui ont donc terminé).

Si le succès se confirme, nous lancerons peut être un jour une saison 2… Si vous voulez en être…

Publié par

Publié par Pablo Lopez

Pablo est directeur technique chez Xebia et formateur Hadoop certifié par Cloudera au sein de Xebia Training .

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.