C’est le jour J ! Ce vendredi 18 avril, le France Cybersecurity Challenge 2025 de l’Anssi ouvre ses portes virtuelles. Au programme de ce CTF (Capture the flag en anglais), un type de compétition de cybersécurité, cent épreuves à résoudre en dix jours. Pour les plus jeunes, un bon résultat permettra d’être sélectionné pour l’European Cybersecurity Challenge de Varsovie, en octobre prochain.
Dans le détail, le millier de participants attendu va se jauger à des exercices autour de la cryptologie, de la rétro-ingénierie et de la recherche de failles.
Qu’elles soient logicielles, web, ou visant un type de matériel. Pour vous donner un aperçu de la compétition, ZDNET a demandé à un expert de l’Anssi de nous présenter le corrigé de trois anciennes épreuves.
Un peu de chambrage à l’Anssi. Challenge accepté, Vincent Strubel et Guillaume Poupard?
— Gabriel Thierry (@gabrielthierry.bsky.social) 16 avril 2025 à 17:18
L’épreuve crypto
L’an dernier, les participants avaient par exemple pu plancher sur cette épreuve crypto, AdverRSArial baby. Comme son nom l’indique, il s’agissait d’un défi autour du célèbre algorithme de chiffrement asymétrique RSA, qui repose sur le calcul de deux grands nombres premiers multipliés entre eux. Pour déchiffrer un message, il faut donc réaliser une factorisation, c’est-à-dire récupérer la décomposition en facteurs premiers.
“Cette factorisation est hors de portée en termes de puissance de calcul”, rappelle à ZDnet.fr Jérémy Jean, un expert en cryptologie de l’Anssi qui s’occupe depuis six ans du France Cybersecurity Challenge. Sauf, comme dans cette épreuve, si les clés ne sont pas bien générées.
“Si on ouvre le fichier de l’exercice, on peut voir qu’il y a beaucoup trop de bits à “0” dans la clé de 1024 bits”, observe Jérémy Jean. “Il faut exploiter ce problème”, poursuit-il.
Comme le précise l’Anssi, l’idée est alors de se pencher sur un problème plus simple : la factorisation de polynômes. “Une fois la factorisation obtenue, le joueur est capable de reconstruire la clé privée RSA et donc de déchiffrer le message”, conclut Jérémy Jean.
Teasing du challenge
La seconde épreuve retenue par Jérémy Jean consiste à première vue en jeu basique. Un dinosaure, qu’on peut déplacer par les flèches haut et bas du clavier, doit éviter des obstacles, un exercice qui a été proposé l’an dernier comme le teasing du challenge. Chrominausor est une épreuve de type “Reverse”.
Rien ne sert de s’exciter sur son clavier, car le score que le joueur est censé atteindre est impossible à obtenir. “Les joueurs doivent s’intéresser au fichier en WebAssembly, explique Jérémy Jean. En utilisant un logiciel de rétro-ingénierie comme Ghidra, ils doivent désassembler et décompiler le code pour comprendre le fonctionnement du programme.”
C’est ainsi qu’ils vont découvrir qu’il est impossible d’atteindre le score demandé. “Il y a alors deux manières de faire”, précise Jérémy Jean. Soit on analyse le binaire pour en extraire directement le flag. Soit, plus rapide et astucieux, le joueur modifie le binaire pour changer la condition de succès.
“Les deux méthodes sont possibles. Mais dans ce genre de challenge, le temps est contraint, il faut donc aller à la solution la plus rapide”, préconise Jérémy Jean.
Exemple idéalisé
La dernière épreuve sélectionnée par Jérémy Jean est une recherche de vulnérabilité. “C’est un exemple assez idéalisé, le code fait une vingtaine de lignes”, précise l’expert de l’Anssi. Dans cet exercice, dénommé Call Me Blah, après avoir ouvert le code dans leur logiciel de rétro-ingénierie, les joueurs doivent identifier une erreur de conception introduisant une vulnérabilité.
“On voit que le binaire commence par donner une adresse mémoire qui n’est normalement pas connue”, celle correspondant à “stdin”, vulgarise Jérémy Jean. Ce premier indice va permettre, grâce à son adresse relative dans la bibliothèque standard, de comprendre où sont les autres fonctions. L’adresse de la fonction system peut alors être identifiée, ce qui permet d’obtenir une exécution de code.
“Pour une épreuve plus compliquée, on pourra imaginer une base de code plus riche ou un autre type de vulnérabilité à exploiter, rappelle Jérémy Jean. Mais dans notre Capture the flag, nous voulons aussi toucher des joueurs qui ne sont pas forcément experts, il ne faut pas les perdre et encadrer la résolution.” A vous désormais de jouer !