Foire Aux Questions

Questions générales

Qu’est-ce que Hackropole ?

Hackropole est une plateforme d’archives des épreuves du France Cybersecurity Challenge (FCSC). Les épreuves sont rejouables par tout le monde, avec ou sans compte. Les participants qui souhaitent se connecter avec un compte (Discord, GitHub ou GitLab), pourront bénéficier de fonctionnalités supplémentaires comme un suivi de leur progression, la possibilité de proposer des solutions aux épreuves et disposerons également d’un système de favoris sur les épreuves et solutions.

Qu’est-ce que le France Cybersecurity Challenge (FCSC) ?

Le FCSC est un CTF de type « jeopardy » annuel organisé par l’ANSSI permettant de sélectionner l’Équipe France pour l’European Cybersecurity Challenge (ECSC).

Les dates des dernières éditions ont été :

  • en 2019, du 13 mai au 22 mai ;
  • en 2020, du 24 avril au 4 mai ;
  • en 2021, du 23 avril au 3 mai ;
  • en 2022, du 29 avril au 8 mai ;
  • en 2023, du 21 avril au 30 avril ;
  • en 2024, du 5 avril au 14 avril.

Pour tout savoir sur le FCSC, rendez-vous sur https://france-cybersecurity-challenge.fr/.

Quel était mon classement au FCSC de l’année N ?

Vous pouvez retrouver vos classements aux différents FCSC sur les pages suivantes :

Qu’est-ce que le European Cybersecurity Challenge (ECSC) ?

Rassemblant chaque année entre 20 et 30 pays européens, l’European Cybersecurity challenge (ECSC) permet aux équipes nationales de se mesurer les unes aux autres, avec des séries d’épreuves variées (cryptographie, web, reverse engineering, pwn, forensics, hardware, etc.). L’équipe France regroupe 10 joueuses et joueurs de 14 à 25 ans, sélectionné(e)s lors du France Cybersecurity Challenge (FCSC) pour représenter la France lors de l’ECSC.

Les dernières éditions ont eu lieu :

  • en 2018, du 14 au 17 octobre au Royaume-Uni (Londres) ;
  • en 2019, du 9 au 11 octobre en Roumanie (Bucarest) ;
  • en 2021, du 28 septembre au 1 octobre en République tchèque (Prague) ;
  • en 2022, du 13 au 16 septembre en Autriche (Vienne) ;
  • en 2023, du 24 au 27 octobre en Norvège (Hamar).

Pour tout savoir sur l’ECSC, rendez-vous sur le site officiel https://ecsc.eu/.

Que se passe-t-il si je trouve une erreur ou une faille sur la plateforme ?

Si vous avez repéré un dysfonctionnement ou une faille sur une épreuve ou sur la plateforme, vous pouvez transmettre l’information à l’équipe d’organisation de l’ANSSI via l’adresse hackropole[at]ssi.gouv.fr.

Épreuves

Je suis débutant(e), par quoi commencer ?

Tous les ans, le FCSC essaye de proposer des épreuves pour les personnes débutantes en cybersécurité et en CTF. Hackropole rassemble ces épreuves sous le tag intro : vous pouvez les retrouver en cliquant sur Épreuves, puis en triant par difficulté.

Comment résoudre une épreuve ?

Pour résoudre une épreuve, vous devez commencer par lire la description fournie sur la page associée. Dans la plupart des cas, des fichiers listés sur la page de l’épreuve doivent être téléchargés. Ceux-ci peuvent être de formats très variés, comme un script Python, un fichier texte, une capture réseau, une image, etc.

Pour certaines épreuves, un des fichiers particuliers à télécharger est docker-compose.yml qui permet de lancer l’épreuve localement sur votre machine. Cela peut par exemple être un site Internet à analyser, un binaire à exploiter, un oracle cryptographique contenant un secret à extraire, etc. Vous devrez pour cela avoir Docker installé (voir plus loin).

Comment est estimée la difficulté des épreuves ?

Sur Hackropole comme au FCSC, les épreuves sont réparties dans quatre niveaux de difficulté :

  • les épreuves d’introduction intro ;
  • les épreuves faciles ⭐ ;
  • les épreuves moyennes ⭐⭐ ;
  • les épreuves difficiles ⭐⭐⭐ .

La difficulté est estimée par l’équipe organisatrice puis est éventuellement réévaluée selon la difficulté réelle perçue par les joueurs sur la base du nombre de résolutions à la fin du FCSC.

Est-ce que je peux utiliser des outils pour faire du bruteforce automatisé ?

Les outils automatisés de bruteforce (dirbuster, dirb, wfuzz, sqlmap, nmap, nikto, hydra et équivalents) sont inutiles : si vous les utilisez, vous n’êtes pas sur la bonne piste.

Catégories

En quoi consistent les épreuves de la catégorie « Crypto » ?

Les épreuves dans la catégorie crypto font référence au domaine de la cryptographie et demandent d’analyser ou de trouver des faiblesses dans des algorithmes ou protocoles cryptographique. On peut par exemple mentionner des analyses de fonctions de hachage, de courbes elliptiques, de crypto-systèmes inspirés de RSA, d’algorithmes de chiffrement par bloc, etc.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Forensics » ?

Les épreuves dans la catégorie forensics relèvent de l’investigation numérique qui consiste à analyser des supports numériques de différentes natures (dump mémoire, disque dur, smartphone, etc.) à la recherche de preuves de compromissions.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Hardware » ?

Les épreuves dans la catégorie hardware couvrent de multiples concepts relevant des couches les plus bas niveau de l’informatique : l’analyse de circuits électroniques, l’étude de signaux radio, d’attaques par canaux auxiliaires, des attaques en faute, etc.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Misc » ?

Les épreuves dans la catégorie misc regroupent toutes les épreuves qui ne rentrent pas directement dans les autres catégories mais qui présentent néanmoins un aspect technique intéressant. On peut par exemple citer des épreuves de programmation, d’algorithmique, d’administration système, de sécurité des systèmes industriels, etc.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Pwn » ?

Les épreuves dans la catégorie pwn consistent en l’exploitation de vulnérabilités dans des programmes binaires, principalement sur GNU/Linux. Les épreuves sont fournies sous la forme de binaires compilés, éventuellement de leurs dépendances ou de leur code source, ainsi que d’une image Docker permettant de simuler un accès au binaire dans son environnement. Le but de ces épreuves est généralement d’arriver à lire un fichier sur le système distant, ou d’obtenir un shell sur cette machine.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Reverse » ?

Les épreuves dans la catégorie reverse demandent de comprendre le fonctionnement d’un programme fourni uniquement sous la forme d’un binaire compilé. Les architectures cibles peuvent être variables, allant de binaires au format ELF ou PE pour GNU/Linux ou Windows 64 bits assez classiques, à des processeurs ARM ou MIPS, jusqu’à des architectures plus exotiques comme des consoles de jeu vidéo.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

En quoi consistent les épreuves de la catégorie « Web » ?

Les épreuves dans la catégorie web proposent d’analyser une application web, avec ou sans code source, afin de trouver des vulnérabilités exploitables pour lire un fichier sur le système distant, accéder à une base de données, impersonifier un utilisateur disposant de privilèges élevés, etc. Les épreuves de cette catégorie sont disponibles dans des conteneurs Docker.

Si vous débutez dans cette catégorie, nous vous conseillons de commencer par ces quelques épreuves d’introduction :

Solutions

Comment lire les solutions ?

Pour voir une solution, vous devez avant tout valider l’épreuve en saisissant le flag associé. Une fois que vous avez trouvé et inscrit le bon flag dans le champ dédié, la liste des solutions disponibles pour cette épreuve apparaitra sur la page.

Que contiennent les solutions ?

Les solutions publiées sur Hackropole contiennent les étapes à suivre pour résoudre les épreuves.

Qui rédige les solutions ?

Les solutions publiées sur Hackropole sont en majorité rédigées par la communauté. Dans certains cas, l’équipe en charge de Hackropole ou les auteurs de certaines épreuves se donnent la possibilité de rédiger eux-mêmes des solutions.

Comment soumettre une solution ?

Pour soumettre une solution d’une épreuve sur Hackropole, vous devez commencer par résoudre cette épreuve. Ensuite, vous devez vous connecter à votre compte via un des fournisseurs d’authentification (par exemple, GitHub, Discord ou GitLab) puis soumettre le flag de l’épreuve ainsi qu’un lien GitHub Gist ou GitLab Snippet contenant la solution au format Markdown.

Il est important de respecter le format Markdown, sans quoi votre solution ne pourra être retenue. Vous êtes libre d’ajouter des images au sein de votre solution.

Comment sont validées les solutions ?

Les solutions sont validées manuellement par l’équipe en charge de Hackropole. Toutes les solutions sont relues et jugées avant qu’une décision d’acceptation ou de refus soit prise.

Les vérifications étant faites manuellement, le temps d’acceptation peut être très variable selon la charge de travail des modérateurs Hackropole.

Comment augmenter ses chances d’acceptation ?

Pour que votre solution ait des chances d’être acceptée, voici quelques critères que les modérateurs Hackropole regardent pour chaque solution (liste non exhaustive) :

  • qualité pédagogique de la solution ;
  • qualité de rédaction de la solution (pas de fautes d’orthographe ou de grammaire) ;
  • originalité de la technique de résolution ;
  • reproductibilité de la solution (fourniture de scripts complets) ;
  • faible redondance avec les autres solutions déjà publiées.

Installation de Docker

Comment installer Docker sur Microsoft Windows ?

Nous vous conseillons de lire la documentation officielle de Docker.

Comment installer Docker sur une distribution GNU/Linux ?

Nous vous conseillons de lire la documentation officielle de Docker.

Si la commande docker compose n’existe pas sur votre machine (nouveauté depuis 2020), nous vous conseillons de mettre à jour Docker en suivant les instructions officielles.

Si vous le souhaitez et si votre distribution le permet, vous pouvez utiliser Docker en mode « rootless » en suivant ces instructions.

Comment installer Docker sur Apple Mac ?

Nous vous conseillons de lire la documentation officielle de Docker.

Si vous avez des problématiques liées à l’utilisation d’un Mac équipé d’un processeur Apple Silicon, nous vous invitons à nous contacter sur Discord ou à hackropole[at]ssi.gouv.fr.

Comment lancer une épreuve avec Docker ?

Pour lancer une épreuve Docker, il suffit de télécharger le fichier docker-compose.yml sur la page de l’épreuve correspondante, puis de lancer la commande suivante dans un terminal au même endroit : docker compose up. Suivez ensuite les instructions sur la page de l’épreuve pour accéder au service.

Pas de réponse ?

Pour toute question absente de cette FAQ, n’hésitez pas à nous contacter : de préférence sur le serveur Discord dédié, sinon par courriel à hackropole[at]ssi.gouv.fr.