Lab WrongSecrets : trouver des secrets codés en dur et apprendre où ranger les secrets

OWASP WrongSecrets est une application qui range exprès les secrets au mauvais endroit : dans le code, dans des scripts côté navigateur, dans la configuration et dans des points d’accès de supervision. Chaque défi demande un secret, et l’application le passe au vert quand l’élève trouve le bon. Ce lab la démarre dans la copie privée de chaque élève.

Tout ce que l’élève explore se trouve dans la copie de lab de l’élève, qui n’a aucune route vers internet ni vers un autre élève : la seule chose que l’élève puisse atteindre est l’application que le lab a démarrée pour lui. La règle est énoncée en tête du lab : explorez votre propre copie, ne dirigez jamais un outil vers un site qui n’est pas à vous.

Ce que les élèves apprennent

D’où fuient les secrets et comment un développeur ou un attaquant les trouve : un mot de passe écrit dans le code, un secret envoyé au navigateur dans un script, une clé qu’un point de supervision laisse voir. Pour chacun, ils expliquent pourquoi l’endroit est mauvais et où ranger le secret à la place. Il convient aux unités de programmation sécurisée, de DevOps et de chaîne d’approvisionnement logicielle.

Le lancer dans votre navigateur

L’application démarre en quelques secondes, ne demande aucun compte et oublie son état à l’arrêt du lab : un redémarrage est une partie neuve.

Seuls certains défis peuvent être résolus dans un lab. Ceux qui demandent le code source du projet sur GitHub, un shell dans le conteneur de l’application, un compte cloud, Vault, Kubernetes ou un service d’IA exigent ce qu’une copie de lab n’a pas. Les défis 0, 16 et 42 ont été vérifiés, et d’autres qui portent sur la page, ses scripts et ses propres points d’accès valent d’être essayés avec les outils de développement du navigateur ou curl dans le terminal du lab.

  1. Ouvrir la page Conteneur. Ouvrez « Créer » dans la barre et choisissez « Lancer un conteneur ». Tout le monde peut ouvrir la page, et le lab Git et le lab SQL se lancent sans compte. Tous les autres labs demandent un compte gratuit : créez-en un, connectez-vous, puis appuyez sur « Démarrer ».
  2. Trouver le lab. La carte « Laboratoires d’exemple » liste tous les exemples. Trouvez OWASP WrongSecrets.
  3. Appuyer sur Démarrer. « Démarrer » le lance tel quel, en un clic. « Modifier le fichier d’abord » ouvre le fichier compose pour que vous puissiez le changer avant de démarrer.
  4. L’ouvrir. Sur la page du lab, appuyez sur le lien nommé OWASP WrongSecrets, le bouton Ouvrir du lab. Commencez par Challenge 0 dans le menu Challenges, qui explique le jeu. Dans le terminal, curl http://wrongsecrets:8080 atteint l’application.

Que demander aux élèves de rendre

Une capture de chaque défi résolu, avec l’adresse du lab visible, et pour chacun une explication écrite de leurs mots : où était le secret, comment ils l’ont trouvé, pourquoi cet endroit est mauvais et où ranger un secret à la place. La seconde moitié montre si c’était compris ou copié d’un corrigé.

Le code sur GitHub

Le fichier compose lance l’image publique de WrongSecrets, figée sur une version, sous un compte sans privilèges. WrongSecrets est sous licence AGPL-3.0 et n’est pas distribué par nous. Le lab n’a aucune sortie vers internet : un défi qui en exige une ne peut pas y être résolu.

Une leçon de base sur ce lab

WrongSecrets Basics est une petite leçon qui se fait dans ce lab, chaque étape étant expliquée et accompagnée d’un bouton Exécuter qui saisit sa commande dans le terminal de l’élève. Elle commence par la règle selon laquelle l’élève n’explore que sa propre copie, vérifie que l’application répond, liste les points d’accès qu’elle expose et regarde le script dont parle un défi côté navigateur, puis renvoie l’élève vers les défis.

Un compte personnel gratuit la reçoit dans le module Basics, qui se trouve sur l’« Accueil », chaque établissement peut la copier depuis le dossier Basics de la Bibliothèque, et un nouvel établissement l’a dans un module appelé Lab Basics (Sample). Elle est volontairement petite : elle montre à un enseignant ce qu’est une leçon qui se fait dans un lab, et le lab fait le reste. Copiez-la dans un module à vous pour la modifier.

En faire un travail

Indiquez dans la tâche les défis à terminer et ce qu’il faut rendre.

  1. Créer le lab. Dans votre module, ajoutez une tâche et choisissez la carte « Lab de conteneurs », puis « Dans un dépôt GitHub ». Indiquez https://github.com/mitsurutech/lab-wrongsecrets avec la branche main. Le fichier compose par défaut est compose.yaml. Faites d’abord un fork du dépôt si vous voulez le modifier.
  2. Publier et l’essayer. « Publier » fige le commit qui vous a été montré : un changement ultérieur dans le dépôt ne modifie donc pas un lab que vous avez déjà proposé. Démarrez d’abord votre propre copie.
  3. Le distribuer. Attribuez-le comme n’importe quelle tâche, avec une échéance si vous le souhaitez, et indiquez dans la tâche ce qu’il faut faire et ce qu’il faut rendre.
  4. Noter ce qui est rendu. Ouvrez la copie d’un élève et le travail rendu, notez-le et renvoyez-le avec un motif s’il demande un complément.

Questions fréquentes

Pourquoi seuls certains défis peuvent-ils être résolus ?
Une copie de lab n’a aucune sortie vers internet et ne contient que l’application. Les défis qui demandent le code source du projet sur GitHub, un shell dans son conteneur, un compte cloud, Vault, Kubernetes ou un service d’IA n’y sont pas possibles. La page sur GitHub le dit aussi.
La progression est-elle conservée ?
Non. L’application ne garde rien : arrêter puis relancer le lab donne une partie neuve. Un élève qui a résolu un défi fait d’abord une capture à rendre.
Les secrets sont-ils réels ?
Non. Tous les secrets de l’application sont inventés pour le jeu. L’habitude à transmettre est de chercher les vrais dans le code de sa propre équipe, jamais dans celui des autres.