Intermédiaire20-30h

Comment enseigner le Secure Coding

Code review live, injection SQL en direct, SAST intégré

Pourquoi enseigner ce domaine

La majorité des vulnérabilités naissent dans le code. Former les développeurs à écrire du code sécurisé dès le départ est infiniment plus efficace et moins coûteux que de patcher après coup. Le secure coding est le shift-left ultime.

Prérequis étudiants

  • Programmation dans au moins un langage (Python, Java, JavaScript, PHP)
  • Bases en développement web
  • Notions de sécurité

Progression pédagogique recommandée

1

Mentalité secure coding

Penser comme un attaquant face à chaque entrée utilisateur, chaque requête, chaque sortie

2

Validation des entrées et injection

Comprendre et prévenir tous les types d'injection (SQL, XSS, commande, chemin)

3

Authentification et gestion de session

Implémenter un système d'authentification sécurisé, gérer les sessions, stocker les mots de passe

4

Gestion des erreurs et logging

Gérer les erreurs sans fuiter d'information, logger pour la détection sans logger de données sensibles

5

SAST et code review

Intégrer l'analyse statique dans le workflow et conduire des code reviews sécurité

Erreurs courantes des formateurs

Enseigner le secure coding comme une liste de règles à mémoriser au lieu d'un mode de pensée

Montrer uniquement le code sécurisé sans montrer d'abord le code vulnérable et son exploitation

Ne pas adapter les exemples au langage et framework utilisés par les étudiants

TP et exercices concrets

Code review sécurité

Identifier 10 vulnérabilités cachées dans des snippets de code et proposer les corrections

2h📄 Rapport de code review avec diff de correction🔧 Code vulnérable fourni, Semgrep

Développement sécurisé d'une API

Développer une API REST avec authentification, validation des entrées et logging sécurisé

4h📄 API fonctionnelle passant les tests de sécurité automatisés🔧 Framework au choix, Semgrep, OWASP ZAP

Outils et environnement de lab

SemgrepSonarQubeIDE avec plugins sécuritéOWASP ASVS (checklist)

Comment évaluer les étudiants

Projet : les étudiants développent une fonctionnalité (authentification, API, formulaire) en appliquant les principes de secure coding. Le code est audité avec SAST et code review manuelle. Note sur la sécurité du code, pas seulement sa fonctionnalité.

Questions fréquentes

Comment structurer un cours de secure-coding ?

Un cours de secure-coding se structure en 5 blocs progressifs : Mentalité secure coding, Validation des entrées et injection, Authentification et gestion de session, Gestion des erreurs et logging, SAST et code review. Chaque bloc doit combiner théorie et pratique avec des exercices concrets.

Quels outils utiliser pour enseigner le secure-coding ?

Les outils recommandés incluent : Semgrep, SonarQube, IDE avec plugins sécurité, OWASP ASVS (checklist). Privilégiez les outils open source accessibles aux étudiants.

Quelles erreurs éviter en enseignant le secure-coding ?

Enseigner le secure coding comme une liste de règles à mémoriser au lieu d'un mode de pensée

Cyber Teachers