Comment intégrer la sécurité dans le cycle de vie logiciel

Le S-SDLC intègre des contrôles de sécurité à chaque phase du cycle de vie. DevSecOps automatise ces contrôles dans le pipeline CI/CD. La formation des développeurs et le décommissionnement formel des applications complètent ce cadre.

M
Mehdi SARIAK
24 mai 2026 7 min de lecture 17 lectures

Points clés

  • Le Secure Software Development Lifecycle (S-SDLC) intègre des contrôles de sécurité à chaque phase du développement, depuis la conception jusqu'au décommissionnement.
  • Le modèle DevSecOps automatise les contrôles de sécurité dans le pipeline CI/CD, rendant la sécurité une propriété continue plutôt qu'une phase distincte.
  • La formation des développeurs aux pratiques de codage sécurisé est un investissement dont le ROI est supérieur à celui des outils de correction tardive.
  • Le décommissionnement des applications est une phase de sécurité critique souvent négligée — des applications non désactivées restent exposées sans surveillance.
Cas US Capital One (2019) — L'application web compromise avait été déployée sur AWS sans passer par un processus formalisé de revue de sécurité architecturale. L'intégration d'une phase de threat modeling dans le cycle de vie du projet aurait permis d'identifier la vulnérabilité SSRF liée à la configuration du WAF avant le déploiement en production.

Les phases du S-SDLC et leurs contrôles associés

Le Secure Software Development Lifecycle (S-SDLC) est une extension du cycle de développement standard qui intègre des activités de sécurité à chaque phase. En phase de formation et conception, les activités incluent la formation des équipes aux pratiques de codage sécurisé, la définition des exigences de sécurité, et la modélisation des menaces (threat modeling). En phase de développement, les activités incluent les revues de code orientées sécurité, l'utilisation de bibliothèques et frameworks approuvés, et la détection de secrets dans le code. En phase de tests, les activités incluent les scans SAST et DAST, les tests de composition SCA, et les tests d'intrusion. En phase de déploiement, les activités incluent la vérification des configurations, les scans de l'environnement de déploiement, et la validation des droits d'accès. En phase d'exploitation, les activités incluent la surveillance continue, la gestion des vulnérabilités, et les tests d'intrusion périodiques.

La valeur du S-SDLC réside dans la systématisation — chaque phase a des portes d'entrée définies pour les contrôles de sécurité, réduisant la dépendance à la vigilance individuelle et aux révisions ad hoc.

L'automatisation DevSecOps

Le modèle DevSecOps automatise les contrôles de sécurité dans le pipeline CI/CD pour qu'ils s'exécutent à chaque commit ou à chaque pull request, sans intervention manuelle. Cette automatisation couvre plusieurs niveaux : les scanners SAST qui analysent le code source à chaque commit (intégration dans les IDE et les hooks pre-commit pour un feedback immédiat), les scanners SCA qui vérifient les dépendances à chaque modification du manifeste de dépendances, les scans d'images de conteneur qui vérifient les images Docker avant leur publication dans le registre, et les infrastructure-as-code scanners (Checkov, tfsec) qui vérifient les configurations Terraform/CloudFormation avant déploiement.

La clé du succès de l'automatisation DevSecOps est la gestion du ratio signal/bruit : un scanner qui génère des centaines de faux positifs sera ignoré. La configuration des règles et des seuils de qualité (quality gates) doit être affinée pour que chaque alerte soit pertinente et actionnable.

La formation des développeurs comme investissement prioritaire

Les recherches en sécurité applicative montrent systématiquement que la formation des développeurs aux pratiques de codage sécurisé a un ROI supérieur aux outils de correction tardive. Un développeur qui comprend pourquoi les requêtes paramétrées préviennent les injections SQL écrira du code sécurisé naturellement — sans attendre que le scanner SAST détecte le problème. Un développeur qui a internalisé les principes de contrôle d'accès au niveau objet ne produira pas de vulnérabilités BOLA.

Les formations les plus efficaces combinent les principes théoriques avec des exercices pratiques sur des labs de type OWASP WebGoat, DVWA, ou les challenges Secure Code Warrior. Elles sont contextualisées sur les technologies utilisées par les équipes (une formation Java Spring Security est plus utile qu'une formation générique pour une équipe Java) et intégrées dans le flux de travail via des micro-formations contextuelles déclenchées par les résultats des scanners.

Cas EU British Airways (2018) — L'injection du script Magecart dans les pages de paiement aurait pu être prévenue par l'implémentation d'une politique Content Security Policy (CSP) et par l'utilisation de Subresource Integrity (SRI) sur les scripts tiers — deux techniques que les développeurs front-end avaient probablement rencontrées dans des formations mais n'avaient pas appliquées systématiquement en raison de l'absence de standard de déploiement définissant ces mesures comme obligatoires.

Le décommissionnement comme phase de sécurité

Le cycle de vie d'une application ne se termine pas au déploiement — il inclut une phase de décommissionnement qui est souvent la plus négligée du point de vue sécurité. Des applications qui ne sont plus activement utilisées restent exposées sur internet ou accessibles sur le réseau interne, accumulent des vulnérabilités non patchées (puisqu'elles ne sont plus maintenues), et peuvent servir de point d'entrée pour des attaquants qui ciblent des technologies obsolètes connues pour leurs vulnérabilités.

Un registre des applications en production, avec des propriétaires désignés et des revues périodiques pour identifier les applications candidates au décommissionnement, est un prérequis d'un S-SDLC complet. La procédure de décommissionnement doit inclure la désactivation des accès, la révocation des credentials, la suppression ou l'archivage sécurisé des données, et la notification des parties dépendantes.

Cas Asie Medibank (2022) — L'investigation post-incident a identifié des systèmes anciens toujours connectés au réseau de Medibank qui présentaient des vulnérabilités connues non patchées. Ces systèmes n'étaient plus activement utilisés mais n'avaient pas été formellement décommissionnés — créant des points d'entrée potentiels dans l'infrastructure que les attaquants pouvaient cibler.
WhatsApp