Stanislas

Stanislas, élève ingénieur cyberdéfense ENSIBS

Stanislas, peux-tu te présenter ?

Je suis étudiant à l’ENSIBS en dernière année de cursus ingénieur en CyberDéfense en alternance à Clermont-Ferrand dans le groupe Michelin.

Je travaille dans une équipe composée de DevOps travaillant sur des solutions d’automatisations du système d’information (provisionning, CI/CD, …), avec un besoin d’intégrer la sécurité dans les chaînes d'intégration continue des projets internes.

Peux-tu nous présenter ChopChop?

Chopchop est un outil de test dynamique de sécurité des applications web. Il permet de détecter les différentes vulnérabilités potentielles qu’un serveur web peut exposer sur Internet. Les tests sont dynamiques et réalisés en boîte noire, c'est-à- dire que l’outil n’a pas accès au code source et détecte donc les vulnérabilités d’un point de vue équivalent à celui d’un attaquant. Son objectif est de scanner une multitude d’endpoints et d'identifier l'exposition des services/fichiers/dossiers sensibles via des URLs. Cela permet d'être réactif, et même proactif sur la détection de vulnérabilités

ChopChop était initialement un outil interne développé par mon ancien tuteur Paul AMAR en Python 2.7 puis en Python3 au CERT Michelin (2017), qui a depuis évolué vers une version strictement orientée pour des personnes avec des connaissances poussées en sécurité informatique.
Sa version initiale a été créée afin de répondre aux questions suivantes :

  • “Sommes-nous impactés par ces vulnérabilités ?”
  • “Combien de nos services sont potentiellement vulnérables ?”

Il y avait besoin d’un outil déterministe, rapide et surtout fiable.
Une de mes missions lors de mon alternance était de reprendre le concept afin de réaliser un outil robuste et compréhensible par des développeurs (aspect DevSecOps).

J’ai donc choisi de le réécrire en Golang, car c’est un langage que j’ai déjà utilisé et que j’apprécie. C’est un langage compilé, fortement typé, cross-platform, avec une communauté active en plus d’une librairie standard simple et de qualité.
L’outil a été rendu open-source courant été 2020 sur le github officiel de Michelin. Et c’est également l’un des premiers projets open-source publié par Michelin. (https://github.com/michelin/ChopChop)

En quoi est-ce un projet innovant ?

Chopchop peut être comparé aux outils tels que Nuclei ou des fuzzer tels que Nikto.
Ces outils sont souvent offensifs et complexes à intégrer dans un pipeline d'intégration continue, ainsi que difficilement configurable par des personnes non spécialisées en sécurité informatique.

Ce qu’apporte ChopChop est sa facilité de prise en main et de configuration par des personnes non spécialisées dans la sécurité, et le pont de communication que cela crée entre les équipes de développeurs et celles de sécurité. Il permet une entente dans la communication entre les équipes de sécurité et de développement, et une vitesse d’assistance et de réaction accrue des équipes sécurité lors de demandes des équipes Dev.
L’outil se doit d'être dev-friendly et user-friendly, il peut être facilement intégré dans des pipelines d'intégration continue, et permet d'être proactif sur la sécurité dans les projets de l’entreprise. Chopchop est maintenant adopté par les équipes IT de chez Michelin.

Tu as gagné un concours organisé par l'OSSIR . Peux-tu nous en dire quelques mots?

L’OSSIR proposait courant avril 2020, un concours étudiant, sur Twitter, pour gagner 1 an d'accès à la plateforme pentesterlab. Le but était de fournir un diaporama de 10 slides présentant les travaux réalisés en rapport avec la sécurité informatique lors de notre stage / alternance. J’ai donc présenté ChopChop, et j’ai été retenu comme gagnant du concours. Pour finaliser, il était demandé de réaliser une présentation de 40 minutes sur l’outil et mon alternance.
La vidéo de la présentation est disponible sur la chaîne YouTube de l’OSSIR.

Qu'est-ce qui t'a plus dans ce projet ?

Le projet était intéressant, ambitieux, et demandait des connaissances poussées en programmation pour la réalisation du programme et en sécurité pour les différents tests que ChopChop réalisait par défaut.
J’ai énormément appris d’un point de vue connaissance sur le langage de programmation Golang, et sur l’architecture hexagonale que j’ai pu appliquer sur le projet.
Le fait que Michelin ait rendu le projet source et accessible sur Github est une réussite pour moi, couplée à la reconnaissance de l’OSSIR envers mon travail.

Et la suite ?

La release ChopChop v1.0 a été réalisée courant février 2021 contenant des améliorations que je développe depuis septembre 2020, notamment sur l’architecture logiciel du projet.
Par la suite, nous mettrons en place une collaboration avec les personnes intéressées par l’outil sur notre Github, notamment pour l’ajout de tests de sécurité proposés par défaut par l’outil, pour répondre aux nouvelles CVEs ou vulnérabilités potentiellement testables par ChopChop.