Évaluations & Projet Certifiant : M2 DevOps - Mise en Application DevSecOps¶
Établissement : Sup de Vinci
Promotion : Mastère DevOps — M2 (Session 2026-2027)
Titre RNCP : RNCP 40165 - Bloc 5 (option) : Piloter l'alignement stratégique entre architectures et DevSecOps
Contribution certifiante : Source principale de données techniques du Dossier écrit collectif du Bloc 5 (MSPR 4.1).
Volume horaire : 42 heures (6 journées de 7 heures)
Modalités Globales de Validation & Barème¶
L'évaluation de ce module valorise à la fois l'appropriation personnelle des concepts d'ingénierie et la capacité à faire évoluer, défendre et documenter en équipe une plateforme multi-environnements, preuves à l'appui :
pie title Répartition de la note finale du module (100%)
"QCM Individuel Wayground (40 questions)" : 50
"Projet Certifiant & Soutenance (trinôme, avec exercice Red Team / Blue Team)" : 50 | Épreuve | Format | Durée | Pondération | Objectif pédagogique |
|---|---|---|---|---|
| 1. QCM Individuel (Wayground) | En ligne (individuel) | 40 min | 50% (/20) | Vérifier l'acquisition personnelle des concepts vus en cours et en TP. |
| 2. Projet Certifiant & Soutenance | Trinôme (3 étudiants) | 25 min | 50% (/20) | Faire évoluer la plateforme vers des environnements étanches, gouvernés et défendus, puis prouver en direct qu'un contrôle tient, qu'une attaque est détectée et que sa cause est établie. |
1. Guide de l'Évaluation QCM (50%)¶
Informations Pratiques sur l'Épreuve
- Date de passage : Jour 6 au matin
- Plateforme : Wayground (un code d'accès vous sera fourni par l'intervenant).
- Durée : 40 minutes
- Format : 40 questions (25 à choix unique et 15 à choix multiples / Checkbox dont 10 à deux réponses et 5 à trois réponses), de 30 à 60 secondes par question.
- Conditions : Épreuve individuelle, sans documents ni accès externe.
Philosophie de l'Épreuve¶
Ce questionnaire évalue vos réflexes d'ingénieurs Platform & Sécurité face aux décisions qui rendent une plateforme gouvernable et défendable : séparer, tracer, détecter, contenir, restaurer. Il ne reprend pas les notions du module Mise en application DevOps, que l'on suppose acquises.
L'objectif est de valider votre maîtrise personnelle :
- De l'intégration des contrôles de sécurité dans une chaîne multi-environnements (B5C1).
- De l'automatisation et du pilotage des tests de sécurité applicative (B5C2).
- De la démonstration de la robustesse des briques de sécurité elles-mêmes (B5C3).
- Des stratégies de renforcement : secrets, identités, services, données et exécution (B5C4).
Référentiel des 8 Domaines de Révision¶
Les questions portent sur 8 domaines techniques, directement issus des présentations et des TP du module :
1. Environnements Étanches & Supply Chain avant Production
- AppProjects ArgoCD : dépôts sources, destinations et ressources autorisées comme frontière de confiance.
- Fenêtres de synchronisation : encadrer quand un changement peut atteindre la production.
- Quality Gates par environnement : Audit en staging, Deny en production, seuils justifiés par le risque.
- Promotion : le digest validé en staging, jamais une reconstruction ; signature et attestations exigées à l'admission.
- Vulnérabilités émergentes : scan continu des images en cours d'exécution et surveillance des SBOM.
2. Tests de Sécurité Applicative
- DAST sur environnement déployé : pourquoi scanner staging plutôt qu'un conteneur isolé, authentification JWT.
- ZAP Automation Framework : plan YAML versionné, exécution headless, rapports.
- IAST : principe de l'agent dans le runtime, dépendance à la couverture des tests, rareté des faux positifs.
- Optimisation des ressources : scans différentiels sur les MR, scans complets planifiés, parallélisation, cache.
- Non-régression : chaque faille corrigée devient un test automatisé.
3. Gestion des Vulnérabilités
- DefectDojo : agrégation, déduplication, statuts, responsables.
- Gouvernance : faux positifs justifiés et validés, acceptation de risque datée et révisable.
- Indicateurs : délai de remédiation par sévérité, constats hors SLA.
- SBOM et VEX : inventaire durable vs connaissance des vulnérabilités à un instant donné, statuts VEX.
4. Gestion des Secrets
- OpenBao : scellement et descellement, KV v2, politiques, dispositif d'audit et hachage HMAC des valeurs sensibles.
- Étanchéité par environnement : instances, rôles et politiques disjoints, tests négatifs.
- External Secrets Operator : synchronisation, comportement quand le fournisseur est indisponible.
- CI sans secret statique : authentification JWT avec les
id_tokensde GitLab etbound_claims.
5. Gouvernance des Identités & Audit
- Profils et séparation des tâches : développeur, opérateur, sécurité, auditeur, compte d'urgence.
- SSO OIDC : groupes GitLab, Dex, politique RBAC d'ArgoCD.
- Moindre privilège des workloads : ServiceAccount dédié,
automountServiceAccountToken. - Politique d'audit Kubernetes : niveaux
None,Metadata,Request,RequestResponseet choix pour les secrets. - Compte d'urgence : conservation, détection de l'usage, rotation.
6. Durcissement des Services, des Données & de l'IaC
- Stockage objet : accès minimal, chiffrement, versioning, verrouillage d'objets (modes governance et compliance).
- Sauvegardes : règle 3-2-1, immuabilité, RPO et RTO, exercice de restauration.
- cert-manager : émission et renouvellement automatiques des certificats.
- IaC cloud : scan avant
apply(Trivy, Checkov) et politiques maison (conftest).
7. Sécurité Runtime & Réponse
- Falco : appels système capturés par eBPF, structure d'une règle, enrichissement Kubernetes.
- Falcosidekick : routage des événements vers l'alerting, le stockage et la réponse.
- Réponse proportionnée : confinement réseau plutôt que suppression, conservation des preuves.
- Détection vs prévention : complémentarité avec le contrôle d'admission.
- Couverture : tests de détection rejouables, cartographie MITRE ATT&CK.
8. Robustesse, Chaos des Briques de Sécurité & Exercice
- Webhooks d'admission :
failurePolicyFailvsIgnore, compromis sécurité/disponibilité. - Security Chaos Engineering : fautes injectées dans les contrôles ou simulant un attaquant.
- Limitation de débit : réponses 429 et protection du SLO des clients légitimes.
- Autoscaling métier : HPA sur le débit de requêtes plutôt que sur le CPU.
- Exercice Red Team / Blue Team : temps de détection, temps de confinement, cause racine, preuves.
Conseils de Révision
- Repensez à vos manipulations en TP : plusieurs questions décrivent un comportement observé pendant la semaine (jeton de staging refusé, pod confiné par Falco, API qui continue de fonctionner sans OpenBao, restauration chronométrée).
- Lisez attentivement l'intégralité des options : certaines réponses décrivent des pratiques répandues mais dangereuses (jeton administrateur partagé, suppression d'un constat gênant, pod compromis supprimé avant analyse, secrets journalisés en clair).
- Gestion des questions à choix multiples (Checkbox) : 15 questions comportent plusieurs réponses valides (10 questions avec 2 réponses et 5 questions avec 3 réponses). L'énoncé indique explicitement le nombre de réponses attendues (« DEUX » ou « TROIS ») : cochez l'ensemble des bonnes options pour marquer les points.
- Privilégiez la posture DevSecOps : la bonne réponse privilégie toujours la séparation des environnements et des droits, la traçabilité et la preuve par le test.
- Supports du cours : revoyez les slides et TP des parcours Sécuriser et durcir une plateforme, Resilience Engineering sur Kubernetes et From DevOps to DevSecOps.
2. Projet Certifiant & Soutenance Orale (50%)¶
Dépôts Officiels du Projet
Contexte Métier & Enjeux¶
Trois mois après la levée du gel, la plateforme SecurePay tient la charge et se répare seule. Le comité sécurité a pourtant ouvert une revue après une série d'événements :
- Compte compromis : le compte GitLab d'un développeur, hameçonné, a servi à tenter une lecture des secrets de production.
- Secrets partagés : un jeton prévu pour les tests permettait de lire la clé Stripe de production.
- CVE découverte par un client : une vulnérabilité critique publiée après le déploiement est restée trois semaines en production, faute de surveillance continue.
- Fatigue d'alerte : 1 400 constats de scanners non triés, que plus personne ne lit.
- Minage silencieux : un conteneur compromis chez un partenaire a miné de la cryptomonnaie pendant trois jours sans être détecté.
- Rançongiciel : un partenaire a perdu ses sauvegardes, chiffrées avec le reste de son infrastructure.
- Audit PSSI : l'auditeur demande de prouver, pour chaque environnement, qui a accès à quoi et qui a fait quoi.
Votre Mission¶
En tant qu'équipe Platform & Sécurité, vous faites évoluer votre plateforme vers une architecture multi-environnements, gouvernée et défendue : environnements étanches, tests de sécurité pilotés, secrets et identités maîtrisés, stack durcie de bout en bout, détection et réponse à l'exécution. Vous en apportez la preuve par des tests de stress, de défaillance et d'attaque simulée.
Chaque trinôme repart de sa plateforme du module DevOps. Un trinôme qui n'en disposerait pas repart des deux dépôts de départ :
git clone https://github.com/Momotoculteur/securepay-api.git
git clone https://github.com/Momotoculteur/securepay-platform.git
Architecture Cible¶
flowchart LR
MR["Merge Request"] --> CI["Pipeline securepay-api\nSAST diff · Tests · Build\nScan · SBOM · Cosign"]
CI -->|"rapports"| DOJO["DefectDojo"]
CI -->|"JWT OIDC"| BAOS
CI -->|"MR staging"| GITOPS["securepay-platform"]
GITOPS -->|"pull"| ARGO["ArgoCD + Dex\n(SSO GitLab)"]
subgraph K3D["Cluster k3d"]
ARGO --> STG["securepay-staging"]
ARGO -->|"MR de promotion\n(même digest)"| PRD["securepay-prod"]
BAOS["OpenBao staging"] -->|"ESO"| STG
BAOP["OpenBao prod"] -->|"ESO"| PRD
KYV{"Kyverno\nsignature + attestations"} --> PRD
FALCO["Falco → quarantaine"] --> PRD
VELERO["Velero"] --> S3["Stockage objet\nverrouillé"]
end
DAST["ZAP authentifié\n+ IAST"] --> STG Spécifications Techniques Attendues¶
1. Environnements Étanches & Intégrité de la Supply Chain (Compétence B5C1)
- Audit de reprise de la plateforme existante (
docs/reprise.md) et registre des risques v2 (au moins 6 nouveaux risques). - Environnements
securepay-stagingetsecurepay-prodgénérés par ApplicationSet, un AppProject par environnement (sources, destination et ressources autorisées), fenêtre de synchronisation en production. - Aucun flux réseau entre environnements, prouvé par test négatif.
- Matrice des Quality Gates par environnement (
docs/quality-gates.md) : contrôle, seuil staging, seuil production, risque couvert. - Promotion vers la production du digest validé en staging, par Merge Request, sans reconstruction.
- Admission en production conditionnée à la signature de la pipeline et aux attestations SBOM et de scan ; staging en mode Audit.
- Scan continu des images en cours d'exécution (Trivy Operator) ; surveillance des SBOM par Dependency-Track en option.
2. Tests de Sécurité Applicative & Gestion des Vulnérabilités (Compétence B5C2)
- DAST authentifié (JWT) sur l'environnement de staging déployé, décrit par un plan ZAP Automation Framework versionné, incluant un scan d'API à partir d'une définition OpenAPI.
- IAST : agent commercial en version d'essai, ou à défaut corrélation documentée d'une attaque DAST avec la trace OpenTelemetry de la requête.
- Stratégie d'optimisation des ressources : scans différentiels sur les MR, scans complets planifiés, gain de temps de pipeline mesuré.
- Tests de non-régression pour chaque faille corrigée.
- DefectDojo alimenté automatiquement par la CI : déduplication, triage, faux positifs justifiés, acceptations de risque datées, SLA par sévérité et indicateurs (
docs/vulnerabilites.md), au moins un document VEX justifié.
3. Gestionnaire de Secrets Distinct par Environnement (Compétence B5C4)
- Une instance OpenBao par environnement, clés de descellement hors du dépôt et procédure documentée.
- Moteur KV v2, politiques minimales, authentification Kubernetes liée au ServiceAccount de chaque environnement, External Secrets Operator avec un
SecretStorepar namespace. - Rotation d'un secret de production sans redéploiement manuel, temps de propagation mesuré.
- Authentification JWT de la CI sur OpenBao (
bound_claimssur le projet et la branche protégée) ; plus aucun secret statique correspondant dans les variables GitLab. - Preuve exigée par le jury : tests négatifs prouvant qu'une identité de staging est refusée sur l'instance de production, et journaux d'audit de chaque instance.
4. Gouvernance des Identités & Journaux d'Audit (Compétence B5C4)
- Matrice des profils (
docs/identites.md) : développeur, opérateur, sécurité, auditeur, compte d'urgence ; groupe GitLab, droits par environnement et justification. - SSO GitLab pour ArgoCD (Dex intégré) et Grafana, RBAC ArgoCD par groupe et par AppProject : synchronisation de production réservée au profil opérateur.
- Séparation des tâches : l'auteur d'une MR de production ne peut pas l'approuver seul.
- Politique d'audit de l'API Kubernetes (secrets au niveau
Metadata) ; journaux Kubernetes et OpenBao centralisés dans Loki. - Compte d'urgence stocké hors ligne, utilisation détectée et alertée.
- Tests négatifs de droits (
kubectl auth can-i --as) joués en CI.
5. Durcissement des Services, des Données & de l'IaC Cloud (Compétence B5C4)
- Stockage objet SeaweedFS hors du cluster : buckets privés, une identité et une clé par usage, chiffrement, bucket de sauvegarde verrouillé en mode compliance.
- Sauvegardes Velero planifiées, chiffrées avec votre propre clé de dépôt, rétention définie et au moins égale à celle du verrou.
- TLS interne par cert-manager (ingress et OpenBao).
- Module Terraform de la cible cloud validé en CI par Trivy et Checkov, et par au moins une politique conftest propre à la PSSI. Aucun
applyn'est exigé.
6. Sécurité Runtime & Réponse Automatisée (Compétence B5C4)
- Falco (sur tous les nœuds) et Falcosidekick déployés par ArgoCD, routés vers Alertmanager, Loki et Falco Talon.
- Au moins 3 règles maison propres à SecurePay.
- Confinement automatique : un pod qui déclenche une règle critique est isolé du réseau par un label de quarantaine et conservé pour l'analyse.
- Jeu de tests de détection rejouable (
security-tests/) et matrice de couverture règle → technique ATT&CK → preuve ; runbook de réponse à incident de sécurité.
7. Robustesse, Chaos des Briques de Sécurité & Reprise après Sinistre (Compétence B5C3)
- Scénarios k6 sur staging puis production : nominal, stress par paliers, pic.
- HPA sur le débit de requêtes (Prometheus Adapter ou KEDA) et limitation de débit par client sur l'ingress (429 sans violation du SLO des clients légitimes).
- Latence d'admission mesurée pendant une rafale de déploiements sous charge.
- Expériences sur les briques de sécurité : perte d'OpenBao de production, perte de Kyverno (comportement selon
failurePolicy, puis haute disponibilité), certificat expiré, compromission simulée d'un pod. - Reprise après sinistre : suppression de
securepay-prodet restauration Velero, RTO et RPO mesurés et comparés aux objectifs. - Preuve exigée par le jury : captures horodatées des tests de stress (k6, Grafana) dans
docs/preuves/.
8. Analyse des Défaillances & Dossier Écrit Collectif
- Pour chaque incident simulé : composant défaillant et cause principale établis automatiquement (alertes qualifiées, événements, journaux), chronologie et temps de rétablissement.
- Rapport de résilience v2 (
docs/resilience.md) et au moins un postmortem blameless. - Dossier écrit collectif rédigé au fil des jours (voir ci-dessous).
Évolution du Dépôt Plateforme¶
securepay-platform/
├── apps/ # + ApplicationSet des environnements, AppProjects staging et production
├── environments/
│ ├── staging/ # Valeurs propres à staging (seuils Audit, ressources réduites)
│ └── production/ # Valeurs propres à la production (seuils Deny, fenêtre de synchronisation)
├── policies/ # + politiques de production (signature et attestations)
├── security/
│ ├── openbao/ # Configuration, politiques et rôles par environnement
│ ├── falco/ # Règles maison et routage Falcosidekick
│ └── identity/ # Dex, RBAC ArgoCD et Kubernetes, politique d'audit
├── backup/ # Velero, stockage objet
├── iac/terraform/ # Cible cloud et politiques conftest
├── security-tests/ # Tests de détection et tests négatifs de droits
├── tests/robustness/ # + scénarios staging/production, rafale de déploiements
└── docs/
├── reprise.md # Audit de reprise de la plateforme
├── quality-gates.md # Matrice des Quality Gates par environnement
├── vulnerabilites.md # SLA, indicateurs, VEX
├── identites.md # Matrice des profils
├── exercice/ # Rapport de l'exercice Red Team / Blue Team
└── preuves/ # Dossier de preuves horodatées
Jalons du Projet¶
| Fin de | Jalon | Preuves attendues |
|---|---|---|
| J1 | Environnements étanches, promotion par attestations | Test négatif inter-environnements, image refusée en production et admise en staging |
| J2 | Tests de sécurité pilotés | Rapport ZAP authentifié, temps de pipeline avant/après, tableau de bord DefectDojo, VEX |
| J3 | Secrets et identités maîtrisés | Refus d'un jeton de staging sur la production, journaux d'audit, matrice des profils |
| J4 | Stack durcie et défendue | Sauvegarde chiffrée, scan IaC, pod confiné après une détection Falco |
| J5 | Robustesse et résilience prouvées | Captures des tests de stress, GameDay sécurité, RTO et RPO mesurés |
| J6 | Exercice & finalisation | Rapport Red Team / Blue Team, tag v2.0.0, soutenance |
Dossier Écrit Collectif (MSPR 4.1)¶
Ce module est la source principale du Dossier écrit collectif du Bloc 5. Le dossier est rédigé au fil des jalons, chaque journée alimentant au moins une section :
- Contexte, périmètre et architecture de la plateforme.
- Analyse de risques v2 et gouvernance des contrôles (risque → contrôle → preuve).
- Chaîne DevSecOps multi-environnements et intégrité de la supply chain (B5C1).
- Tests de sécurité applicative et gestion des vulnérabilités (B5C2).
- Gestion des secrets et gouvernance des identités (B5C4).
- Stratégie de durcissement et sécurité runtime (B5C4).
- Robustesse et résilience : tests de stress, de défaillance et de reprise, preuves à l'appui (B5C3).
- Analyse des défaillances et causes racines.
- Matrice de conformité PSSI et plan d'amélioration.
Format attendu : 20 à 30 pages hors annexes, preuves horodatées en annexe et référencées depuis le corps du texte.
Livrables Attendus¶
Chaque trinôme doit fournir :
- Avant le jour 6 à 09h00 : les dépôts gelés au tag
v2.0.0-exercice. - Avant le jour 6 à 13h30 :
- Les dépôts finaux au tag
v2.0.0. - Le dossier de preuves complet et indexé.
- Le rapport de l'exercice Red Team / Blue Team, rédigé en commun avec l'équipe adverse et déposé par MR (
docs/exercice/). - La version intermédiaire du Dossier écrit collectif, avec toutes les sections amorcées.
- Le support de soutenance : 8 à 10 slides synthétiques.
- Les dépôts finaux au tag
- Au plus tard 7 jours après le jour 6 : la version finale du Dossier écrit collectif (PDF).
Exercice Red Team / Blue Team (Jour 6 - Matin)¶
Deux manches de 40 minutes : chaque trinôme attaque une fois et défend une fois, selon une attribution circulaire communiquée en fin de jour 5. L'exercice se joue en direct sur le poste de l'équipe défenseuse.
Règles d'engagement :
- Seuls les scénarios du catalogue ci-dessous sont autorisés, et uniquement sur les namespaces applicatifs.
- Aucune destruction de données hors du scénario de restauration, aucune action sur la VM ni sur les dépôts.
- L'intervenant arbitre et peut interrompre l'exercice à tout moment.
- L'équipe attaquante horodate chaque action ; l'équipe défenseuse horodate détection, réponse et cause racine.
Catalogue de scénarios et mesures :
| Scénario offensif | Résultat attendu côté défense | Mesures |
|---|---|---|
| Lire un secret de production avec une identité de staging | Refus, tentative journalisée et visible dans Loki | Temps de détection |
| Déployer en production une image signée mais non attestée | Refus à l'admission, motif explicite | Contrôle effectif ou contourné |
| Élever ses privilèges avec un compte du profil développeur | Refus RBAC, journal d'audit exploitable | Temps de détection |
| Comportement malveillant dans un pod (shell, écriture, connexion sortante) | Détection Falco, confinement automatique, pod conservé | Temps de détection et de confinement |
| Action destructive simulée sur un namespace | Restauration depuis la sauvegarde | RTO et RPO constatés |
Pour chaque scénario, le rapport commun indique le résultat, les mesures, la cause racine établie par la défense et les écarts à corriger.
Modalités de la Soutenance Orale (Jour 6 - Après-midi)¶
- Durée totale : 25 minutes par trinôme.
- 15 minutes de présentation et Démonstration Live :
- Présentation synthétique de l'architecture, des risques v2 et des contrôles associés (5 min).
- Démonstration en direct (10 min) : l'intervenant choisit un scénario parmi les suivants, et le trinôme doit prouver en direct que le contrôle tient, que l'événement est détecté et que la cause est établie :
- lecture d'un secret de production refusée depuis staging ;
- image non attestée refusée en production ;
- compromission simulée détectée et confinée.
- 10 minutes d'échanges techniques :
- Questions individuelles de l'intervenant sur les choix d'implémentation, les compromis sécurité/disponibilité, les résultats de l'exercice et la conformité RNCP.
- 15 minutes de présentation et Démonstration Live :
Grille d'Évaluation & Barème (/20)¶
| Critère d'évaluation | Éléments vérifiés | Points |
|---|---|---|
| 1. Environnements Étanches & Supply Chain (B5C1) | AppProjects et étanchéité prouvée, Quality Gates par environnement justifiées, promotion du digest validé, admission de production par signature et attestations, scan continu. | / 3 pts |
| 2. Tests de Sécurité Applicative & Vulnérabilités (B5C2) | DAST authentifié sur staging, approche IAST, optimisation mesurée, non-régression, DefectDojo trié avec SLA, VEX. | / 3 pts |
| 3. Secrets & Gouvernance des Identités (B5C4) | OpenBao distinct par environnement avec tests négatifs, ESO, rotation, JWT en CI, SSO et RBAC par profil, séparation des tâches, journaux d'audit, compte d'urgence. | / 4 pts |
| 4. Durcissement de la Stack & Sécurité Runtime (B5C4) | Stockage objet et sauvegardes durcis, TLS, IaC cloud validée, règles Falco maison, confinement automatique, couverture de détection. | / 3 pts |
| 5. Robustesse, Chaos & Reprise après Sinistre (B5C3) | Stress sur staging et production, autoscaling métier, limitation de débit, expériences sur les briques de sécurité, RTO et RPO mesurés. | / 3 pts |
| 6. Analyse des Défaillances, Exercice & Dossier Collectif | Causes racines établies automatiquement, rapport Red Team / Blue Team, qualité et complétude du Dossier écrit collectif. | / 2 pts |
| 7. Soutenance Orale & Démo Live | Clarté de la présentation, réussite du scénario en direct, maîtrise technique lors des questions/réponses. | / 2 pts |
| TOTAL | Note globale du projet de mise en application DevSecOps | / 20 pts |
Preuves exigées par le jury : en l'absence des captures des tests de stress, le critère 5 est plafonné à la moitié de ses points. En l'absence de preuve d'un gestionnaire de secrets distinct par environnement, le critère 3 est plafonné de la même façon.
Modulation individuelle : la note de groupe est modulée de ± 2 points par étudiant selon ses réponses aux questions individuelles et sa contribution visible dans l'historique Git et dans le dossier collectif.
Bonus (plafonnés à + 2 points, note finale plafonnée à 20)¶
| Bonus | Description | Points |
|---|---|---|
| Accès humain par OIDC | Accès kubectl des profils via OIDC (Dex + kubelogin), plus aucun kubeconfig administrateur hors compte d'urgence | + 1 |
| Vulnérabilités émergentes | Dependency-Track alerte automatiquement sur une CVE publiée après le déploiement d'une image en production | + 1 |
| Clusters séparés | Staging et production sur deux clusters distincts, pilotés par une seule instance ArgoCD | + 1 |