Florian Amette

Florian Amette

May 2, 2026

Pair programming appliqué à la sécurité

pair programmingcode reviewthreat modelingcybersécuritépédagogie
Pair programming appliqué à la sécurité

Pair programming appliqué à la sécurité

Quand la collaboration devient un outil pédagogique

Le pair programming -- cette pratique issue du développement logiciel où deux personnes travaillent ensemble devant un même écran -- n'est pas réservé aux équipes de développeurs. Appliqué à la cybersécurité, il devient un outil pédagogique remarquable, particulièrement pour deux activités fondamentales : la code review orientée sécurité et le threat modeling.

Dans un contexte d'enseignement, le pair programming force la verbalisation du raisonnement. L'étudiant qui code ou analyse ne peut pas rester dans sa tête : il doit expliquer chaque décision, chaque hypothèse, chaque doute. Son binôme questionne, challenge, propose des alternatives. Ce dialogue constant produit un apprentissage plus profond que le travail individuel silencieux.


La code review sécurité en binôme

Pourquoi la code review est difficile à enseigner

La revue de code sécurité est une compétence qui s'acquiert lentement. Elle exige de combiner :

  • une connaissance des vulnérabilités classiques (injection SQL, XSS, CSRF, gestion défaillante des sessions) ;
  • une lecture attentive du code avec un regard critique ;
  • une compréhension du contexte applicatif pour évaluer la gravité d'une faille.

Enseigner cette compétence par un cours magistral est inefficace. Les étudiants retiennent une liste de vulnérabilités mais ne développent pas le réflexe d'analyse nécessaire face à du code réel.

Le format pair review

Le pair programming offre une solution concrète. Le format recommandé :

Le driver : un étudiant navigue dans le code source, lit les fonctions, identifie les points d'entrée utilisateur, suit le flux des données. Il verbalise sa démarche en temps réel.

Le navigator : son binôme observe, questionne et oriente l'analyse. "Tu as vérifié comment cette entrée est validée ?" "Est-ce que ce token est vérifié côté serveur ?" "Qu'est-ce qui se passe si l'utilisateur envoie une chaîne vide ?"

Les rôles alternent toutes les 15 à 20 minutes. Cette rotation est essentielle : elle oblige chaque étudiant à pratiquer les deux postures.

Mise en pratique en cours

Voici un déroulé type pour une séance de 2 heures :

  1. Introduction (15 min) : rappel des vulnérabilités ciblées, présentation de l'application à auditer (une application web volontairement vulnérable type OWASP Juice Shop).
  2. Phase de pair review (60 min) : les binômes analysent le code source. Chaque binôme doit documenter les vulnérabilités trouvées avec la ligne de code concernée, le type de faille et une proposition de correction.
  3. Rotation (30 min) : les binômes échangent leurs findings avec un autre binôme qui tente de reproduire et valider les vulnérabilités identifiées.
  4. Débriefing collectif (15 min) : mise en commun, discussion sur les failles manquées, analyse des raisonnements.

Le bénéfice pédagogique est double : les étudiants apprennent à trouver des vulnérabilités ET à communiquer leurs découvertes de manière structurée -- une compétence essentielle pour tout futur auditeur de sécurité.

Intégrer des outils d'analyse statique dans la pair review

Le pair programming sécurité gagne à s'appuyer sur des outils concrets que les étudiants retrouveront en entreprise. Deux outils gratuits s'intègrent naturellement :

Semgrep : moteur de règles de détection de patterns de code dangereux. En pair review, le navigator partage l'output Semgrep dans le terminal et le driver doit expliquer pourquoi chaque alerte est (ou non) un vrai positif. Cela habitue à la lecture critique des rapports d'outil -- compétence clé pour un futur analyste SOC.

Bandit (Python) ou SpotBugs (Java) : analyseurs statiques spécialisés par langage. L'exercice consiste à commenter le rapport généré : le driver explique chaque finding, le navigator challenge la sévérité. L'objectif n'est pas de trouver toutes les failles manuellement, mais de développer le réflexe de croiser analyse humaine et analyse outillée.


Le threat modeling en binôme

Une discipline qui gagne à être collaborative

Le threat modeling -- l'art d'identifier les menaces potentielles sur un système avant qu'elles ne soient exploitées -- est par nature un exercice de réflexion structurée. Il bénéficie énormément du travail en binôme, car chaque personne apporte un angle de vue différent.

Un étudiant avec une sensibilité réseau pensera aux attaques sur les flux de communication. Son binôme, plus orienté développement, identifiera les faiblesses dans la logique applicative. Ensemble, ils couvrent un périmètre bien plus large.

La méthode STRIDE en pair programming

La méthode STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) se prête particulièrement bien au travail en binôme. Le format proposé :

Phase 1 -- Modélisation (20 min) : les deux étudiants dessinent ensemble le diagramme de flux de données (DFD) de l'application analysée. Chaque composant, chaque flux, chaque zone de confiance doit être discuté et validé par les deux.

Phase 2 -- Identification des menaces (30 min) : pour chaque élément du DFD, les étudiants appliquent systématiquement les six catégories STRIDE. Le driver énonce une menace potentielle, le navigator la challenge : "Est-ce réaliste ? Quel serait l'impact ? Quel prérequis pour l'attaquant ?"

Phase 3 -- Priorisation (20 min) : les menaces identifiées sont classées par criticité. Le binôme doit se mettre d'accord sur le classement, ce qui force une discussion argumentée sur la notion de risque.

Phase 4 -- Contre-mesures (20 min) : pour les menaces prioritaires, les étudiants proposent des contrôles de sécurité adaptés et évaluent leur faisabilité.

OWASP Threat Dragon : un outil pédagogique gratuit

OWASP Threat Dragon (application web ou desktop, open source) génère des diagrammes DFD interactifs et associe automatiquement les menaces STRIDE à chaque composant du modèle. En pair programming, un étudiant pilote l'interface pendant que l'autre dicte les composants et les flux. Le fichier JSON exporté devient le livrable de la séance -- les deux étudiants peuvent le commenter par écrit avant le débriefing collectif.

L'outil impose une discipline de formalisation : impossible d'identifier une menace sans l'avoir rattachée à un composant précis du DFD, ce qui élimine les raisonnements vagues du type "il pourrait y avoir une attaque réseau".

Ce que le binôme apporte au threat modeling

Le travail en solo sur un threat model mène souvent à des angles morts : on analyse le système à travers le prisme de ses propres compétences et on néglige les dimensions qu'on maîtrise moins. Le binôme corrige ce biais naturel.

De plus, la nécessité de justifier chaque menace identifiée développe la rigueur argumentative. Un étudiant qui affirme "il y a un risque de déni de service ici" doit pouvoir expliquer le scénario d'attaque concret, pas se contenter d'une intuition vague.


Outils pour le pair programming à distance

Le distanciel n'empêche pas le pair programming, mais il exige des outils adaptés. La contrainte principale : reproduire la fluidité d'un écran partagé en présentiel.

Plateformes recommandées

VS Code Live Share (gratuit) est le standard pour les séances de code review à distance. Un étudiant hôte partage son environnement VS Code en lecture ou en édition -- l'autre rejoint via un lien. Les deux curseurs sont visibles simultanément, ce qui reproduit la dynamique driver/navigator. La fonctionnalité de terminal partagé permet de lancer Semgrep ou Bandit et de voir l'output en temps réel.

CoderPad (version gratuite limitée) propose des environnements d'exécution dans le navigateur pour une vingtaine de langages. Idéal pour les séances courtes sur des extraits de code ciblés : pas d'installation, accès immédiat, session enregistrable pour le débriefing.

Gitpod ou GitHub Codespaces : pour les TP plus complets nécessitant un environnement Docker ou des outils d'analyse installés, ces environnements cloud pré-configurés évitent les problèmes d'installation sur les postes des étudiants. L'enseignant peut préparer un template avec Juice Shop pré-déployé et les outils d'analyse installés.


Conseils pour l'enseignant

Former les binômes avec intention

Évitez de laisser les étudiants choisir systématiquement leur binôme. Mélangez les profils :

  • un étudiant orienté développement avec un profil réseau/système ;
  • un étudiant avancé avec un étudiant intermédiaire (le premier renforce ses acquis en expliquant, le second progresse par l'observation active).

Cadrer sans brider

Fournissez un template de livrable (fiche de vulnérabilité, matrice de menaces) pour structurer le travail sans l'alourdir. Les étudiants doivent se concentrer sur l'analyse, pas sur le format.

Évaluer le processus, pas seulement le résultat

Le nombre de vulnérabilités trouvées importe moins que la qualité du raisonnement. Circulez entre les binômes, écoutez les échanges, identifiez les raisonnements brillants comme les erreurs récurrentes. Le débriefing final est le moment le plus formateur de la séance.

Varier les supports

Ne restez pas uniquement sur du code source. Le pair programming sécurité peut s'appliquer à :

  • l'analyse de configurations (pare-feu, serveur web, cloud) ;
  • la lecture de logs pour identifier des comportements suspects ;
  • l'examen d'architectures réseau pour détecter des faiblesses.

Adapter le format aux grandes promotions

Dans une promotion de 20 étudiants ou plus, la gestion des binômes devient un défi logistique. Deux ajustements efficaces :

Organisation en îlots : regrouper 3 binômes par îlot avec un "rapporteur" par îlot pour le débriefing collectif. Chaque îlot présente les 2-3 vulnérabilités les plus intéressantes trouvées, pas l'exhaustivité. Gain de temps : 15 minutes de debriefing pour 30 étudiants au lieu de 45.

Rotation inter-binômes structurée : après la phase d'analyse, chaque binôme "inspecte" le livrable d'un binôme voisin (cross-review). En 15 minutes, chaque paire de findings est validée ou contestée par un regard extérieur -- ce qui reproduit la dynamique d'une vraie revue de code croisée en entreprise.


Grille d'évaluation d'une session de pair programming sécurité

Évaluer le pair programming exige d'aller au-delà du seul résultat (nombre de vulnérabilités trouvées). Voici une grille adaptable à la majorité des séances :

DimensionIndicateur observéInsuffisant (1)En progression (2)Maîtrisé (3)
Verbalisation du raisonnementDriver explique chaque étapeAnalyse silencieuse, aucune explicationExplique partiellement, lacunes sur le pourquoiRaisonnement explicite à chaque étape
Rôle du navigatorQualité des questions poséesPassif, ne relance pasQuestions de surface ("c'est bon ?")Questions ciblées sur le flux et la validation
Rotation des rôlesRespect de l'alternanceAucune rotation, rôles figésRotation tardive ou incomplèteAlternance régulière toutes les 15-20 min
Qualité du livrablePrécision et exploitabilitéAbsent ou trop vaguePrésent mais sans ligne de code ni correctionFaille identifiée avec ligne, impact et correction
Esprit critiqueContestation des trouvailles de l'autreAccepte tout sans questionnerQuelques remises en questionChallenge systématique et argumenté

Partager cette grille avant la séance permet aux étudiants de comprendre ce qui est évalué et d'adopter la bonne posture dès le départ -- en particulier pour le rôle de navigator, souvent sous-estimé.


Anti-patterns à éviter

Anti-patternProblèmeAlternative
Driver qui code seul, navigator spectateurAucun apprentissage pour le navigatorRotation forcée toutes les 15 min, signalée par un minuteur
Pairs de même niveauPas de complémentarité, angles morts similairesMixer profils développement et réseau/système
Livrable focalisé sur le count de CVEIgnore la démarche et le raisonnementGrille avec dimension "qualité de l'argumentation"
Pair review sans outils (analyse 100% manuelle)Déconnecté de la réalité professionnelleIntégrer Semgrep ou Bandit dès la séance
Débriefing annulé faute de tempsPerte de la consolidation des apprentissagesRéserver 15 min incompressibles, quitte à écourter l'analyse

Un format qui prépare au monde professionnel

Dans la réalité du métier, la cybersécurité est rarement un exercice solitaire. Les audits se font en équipe, les code reviews sont croisées, les threat models sont discutés en groupe. Former les étudiants au travail collaboratif dès la formation initiale les prépare à cette réalité.

Le pair programming appliqué à la sécurité développe simultanément la technique, la communication et l'esprit critique -- trois piliers du professionnel de la cybersécurité. Ces compétences sont explicitement évaluées dans des certifications comme l'OSCP, qui exige de documenter et de défendre sa démarche d'exploitation, pas seulement de produire un résultat.


Ce qu'il faut retenir

  • Le format driver/navigator impose la verbalisation du raisonnement et produit un apprentissage plus profond qu'un travail individuel silencieux. La rotation toutes les 15-20 minutes est non-négociable.
  • Intégrer des outils réels (Semgrep, Bandit, OWASP Threat Dragon) ancre le pair programming dans les pratiques professionnelles et prépare les étudiants à croiser analyse humaine et analyse outillée.
  • En distanciel, VS Code Live Share et CoderPad reproduisent la dynamique driver/navigator sans perte pédagogique significative, à condition que la rotation des rôles reste explicite et chronométrée.
  • En grande promotion, les îlots de binômes avec rapporteur et la cross-review inter-binômes permettent de conserver la richesse du format sans saturer le débriefing collectif.
  • Évaluer le processus, pas seulement le résultat : la grille avec dimension "verbalisation" et "qualité du navigator" est à partager avant la séance, pas après.

Vous souhaitez intégrer des méthodes pédagogiques innovantes dans vos cours de cybersécurité ?

Nos teachers Cyber Teachers maîtrisent les approches collaboratives et les mettent en pratique dans leurs interventions. Découvrez nos profils sur Cyber Teachers et transformez vos cours en expériences d'apprentissage actif.

Tous les articles →

Transformez vos formations cybersécurité avec des experts

Expert qualifié en 24h • Formation sur-mesure • Consultation gratuite

Cyber Teachers