Organisation du module

4PYTH – Langage Python
Chris CHEVALIER

Sommaire

  1. Le module
  2. Le déroulé
  3. Modalités d'évaluation
#1

Le module

Organisation du module

Pourquoi Python en cyberdéfense ?

Vous le retrouverez dans vos prochains modules :

  • 4CRYP Cryptologie
  • 4FSIC Forensic
  • 4TECH Audit technique
  • 5REVE Reverse engineering
  • 5XSOC SOC & 5IAAT IA

Des outils de référence écrits en Python :

  • Volatility – analyser la mémoire vive
  • Impacket – dialoguer avec les services Windows
  • sqlmap – tester les injections SQL
  • Scapy – fabriquer des paquets réseau
  • pwntools – écrire des exploits (CTF)
Savoir lire, adapter et écrire un script Python est un réflexe de base de l'analyste, de l'auditeur et du pentesteur.

Objectifs du module

À l'issue du module, vous serez capables de :

  • Écrire un programme Python structuré : types, conditions, boucles, fonctions, gestion des erreurs
  • Modéliser un problème en objets : classes, héritage, composition
  • Lire, écrire et sauvegarder des données : fichiers texte, JSON
  • Utiliser Python comme outil de cybersécurité : contrôle des mots de passe, aléa sécurisé, analyse de journaux, validation des données

Programme

Cours 1 – Fondamentaux

Variables et types, conditions, boucles, listes et dictionnaires, fonctions, exceptions, modules

Cours 2 – Objets

Classes et objets, encapsulation, héritage, polymorphisme, composition

Cours 3 – Données

Fichiers texte, dates, erreurs de fichier, JSON, sauvegarde d'objets

Défis cyber

Exercices courts l'après-midi, à faire sans IA : mots de passe, journaux, comptes… Seuls les défis du 7 octobre sont notés.

Projet fil rouge « Fondation »

3 TP qui s'enchaînent : un programme complet, construit étape par étape, jusqu'à sa sauvegarde
#2

Le déroulé

Organisation du module

Calendrier

Mer. 7 octobre
  • Cours 1
  • Défis 1 à 3
  • Kahoot
Ven. 9 octobre
  • Correction guidée du défi 1
  • Cours 2 et 3
  • TP1 – Gestion de l'équipage
  • Invitation GitHub au plus tard ce jour
10 oct. → 4 nov.
  • TP1, TP2 puis TP3 à votre rythme
  • En séance ou chez vous
  • Commits réguliers
Jeu. 5 novembre
  • Fin du TP3
  • Kahoot de révision
  • Soutenances individuelles tout au long de la journée
  • 16h30 : rendu du projet puis examen écrit
Le 5 novembre, il n'y a aucune notion nouvelle. On applique uniquement ce qui a été vu les 7 et 9 octobre.

Ce qui change à partir du 9 octobre

  • Projet Fondation : le TP1 démarre le 9 octobre. Vous avancez ensuite à votre rythme, en séance ou chez vous. Le projet complet est à rendre au plus tard le jeudi 5 novembre à 16h30
  • Défis : ceux des jours 2 et 3 deviennent facultatifs et non notés. Votre priorité est le projet Fondation
  • Note des défis (10 %) : moyenne des défis du jour 1 uniquement
Les autres modalités ne changent pas : examen écrit (50 %), soutenance (25 %), code du projet (15 %), défis (10 %).

Une journée type

HoraireDéroulé
9h00 – 13h00Cours : toute la théorie de la journée, ponctuée de quiz oraux
13h00 – 14h00Pause déjeuner
14h00 – 16h45Pratique : défis cyber puis TP du projet Fondation, avec un accompagnement individuel
16h45 – 17h00Kahoot : 10 questions pour ancrer la journée
Des pauses courtes sont prévues le matin et l'après-midi. Levez la main dès que vous êtes bloqués. Rester bloqué 20 minutes, c'est 20 minutes perdues.

Votre environnement de travail

Pendant la première heure, nous installons et vérifions ensemble ces outils sur chaque machine. Sous Windows, cochez « Add python.exe to PATH » pendant l'installation de Python.
#3

Modalités d'évaluation

Organisation du module

Modalités d'évaluation

ÉpreuveConditionsPoids
Examen écrit ThéorieSur table, sans documentation ni IA50 %
Soutenance individuelle PratiqueDémonstration, explication et modification du code en direct25 %
Projet Fondation PratiqueCode rendu sur GitHub, selon la grille d'évaluation15 %
Défis en séance PratiqueDéfis du jour 1 : non fait (0), partiel (1) ou réussi (2) pour chacun10 %
75 % de la note (examen et soutenance) porte sur ce que vous démontrez vous-mêmes, en direct.

Rendu du projet sur GitHub

  • Un dépôt privé nommé 4pyth-fondation-nom-prenom
  • Invitez Chris-CHEVALIER comme collaborateur au plus tard le vendredi 9 octobre
  • Des commits réguliers : au moins un par séance de travail. Un dépôt poussé en une seule fois la veille sera questionné en soutenance
  • Un README.md contenant :
    • le mode d'emploi du programme ;
    • les bonus réalisés ;
    • la déclaration d'usage de l'IA.
Rendu du projet complet au plus tard le jeudi 5 novembre à 16h30.

Soutenance et examen écrit

Soutenance · 10 min · le 5 novembre

  • 3 min : démonstration de votre programme
  • 7 min : explication d'une partie du code que je choisis, puis une petite modification en direct, sans IA

Examen écrit · 30 min · le 5 novembre

  • 10 questions ouvertes sur l'ensemble des cours
  • Plusieurs questions portent sur des extraits de code à lire ou à corriger
  • Sans documentation ni IA

L'IA générative : autorisée, à une condition

  • ChatGPT, Claude, Copilot… sont autorisés pour le projet
  • Vous devez comprendre votre code de bout en bout. Chaque ligne rendue doit pouvoir être expliquée
  • Déclarez votre usage dans le README : quels outils, pour quoi faire
  • La soutenance vérifie cette compréhension. Une fonctionnalité non expliquée n'est pas comptée
  • Examen et soutenance se font sans IA
  • Le plagiat entre étudiants est sanctionné. L'entraide est encouragée. Expliquer, oui ; donner son code, non
Conseil : utilisez l'IA comme un tuteur (expliquer une erreur, relire votre code), pas comme un auteur.

Des questions ?

Chris CHEVALIER
chris.chevalier@ecole-hexagone.com