Aller au contenu
Culture DevOps high
🚧 Section en cours de réécriture — Le contenu est en cours de restructuration et peut évoluer.

DevSecOps : la sécurité intégrée au développement

15 min de lecture

En 2017, Equifax découvre qu’une faille dans Apache Struts a exposé les données de 147 millions de personnes. Le correctif existait depuis deux mois. En 2021, Log4Shell affecte des millions d’applications Java — les équipes avec des scans automatisés corrigent en heures, les autres en semaines. Ces crises ont un point commun : la sécurité traitée comme une étape finale, pas comme une préoccupation continue.

Le DevSecOps change cette logique. Au lieu de vérifier la sécurité juste avant la release, on l’intègre à chaque moment du cycle. Ce n’est pas un outil ni une équipe dédiée : c’est une manière de travailler où chaque personne qui touche au code porte une part de responsabilité sur sa sécurité.

Dans un projet classique, la sécurité arrive en fin de cycle :

ÉtapeCe qui se passeProblème
DéveloppementCode écrit pendant des semainesAucun contrôle de sécurité
QATests fonctionnelsSécurité ignorée
Pré-releaseAudit sécurité de dernière minuteFailles découvertes tard
ReleaseRéécriture de code, retardsBudget explose, frustration

Ce schéma crée des problèmes concrets :

  • Coût de correction x100 : une faille en production coûte 100 fois plus qu’une faille détectée pendant l’écriture
  • Conflits d’équipes : les développeurs voient la sécurité comme un frein, la sécurité voit les développeurs comme des risques
  • Failles acceptées : sous pression du calendrier, des vulnérabilités sont acceptées “temporairement” — et ne sont jamais corrigées

Le DevSecOps casse ce cycle en déplaçant la sécurité vers le début — c’est le principe du shift-left.

Le shift-left : déplacer les contrôles vers le début du cycle pour réduire les coûts de correction

Le DevSecOps repose sur trois piliers complémentaires qui transforment la façon dont les organisations abordent la sécurité :

La sécurité n’est pas le travail d’une équipe isolée. Chaque personne qui modifie le système porte une part de responsabilité :

  • Le développeur qui ajoute une dépendance vérifie ses vulnérabilités
  • L’ops qui ouvre un port réseau évalue le risque
  • Le product owner qui demande une fonctionnalité comprend les implications sécurité

L’automatisation permet de scanner chaque commit, pas juste avant la release. Mais elle doit être configurée intelligemment :

SituationActionPourquoi
Secret détectéBloquerRisque immédiat et critique
CVE critique (CVSS ≥ 9)BloquerExploitation probable
CVE moyenne (CVSS 4-6)AlerterÉvaluer le contexte
Bonne pratique non suivieInformerAmélioration continue

Un pipeline qui bloque trop souvent sera contourné. Un pipeline trop permissif ne sert à rien.

La sécurité ne s’arrête pas au déploiement. En production :

  • Monitoring de sécurité pour détecter les anomalies
  • Tests dynamiques (DAST) sur l’application réelle
  • Réponse aux incidents préparée

Le DevOps rapproche développeurs et opérationnels. Le DevSecOps ajoute la sécurité dans cette boucle — mais pas comme “juste un scan de plus”.

AspectDevOps classiqueDevSecOps
Qui s’occupe de la sécuritéÉquipe dédiée, en fin de cycleTout le monde, à chaque étape
Quand on détecte les faillesAvant la releaseDès le commit
Formation sécuritéOptionnelleIntégrée au parcours dev
Gestion des dépendances”Ça marche” suffitVulnérabilités vérifiées
SecretsParfois en dur dans le codeJamais en dur, externalisés

La vraie différence : la responsabilité. Un développeur qui introduit une dépendance vulnérable n’est pas “couvert” par l’équipe sécurité. L’équipe sécurité devient un support, pas un contrôleur.

Le DevSecOps s’articule autour de trois axes de pratiques. Chacun répond à une question différente.

L’analogie : les contrôles qualité dans une usine automobile

Dans une usine automobile, on ne vérifie pas la qualité uniquement à la fin de la chaîne. On contrôle :

  • Les matières premières à leur arrivée (les pièces sont-elles conformes ?)
  • Pendant l’assemblage (les soudures sont-elles solides ?)
  • Sur le véhicule fini (les freins fonctionnent-ils ?)

En développement logiciel, c’est pareil. Quatre types de tests couvrent différentes étapes :

TypeL’analogie usineCe qu’il faitExemple concret
SCAContrôle des pièces fournisseursVérifie les bibliothèques tierces”Cette version de Log4j a une faille critique”
SASTContrôle de l’assemblageAnalyse le code source sans l’exécuter”Cette fonction SQL est vulnérable à l’injection”
DASTTest du véhicule completTeste l’application en fonctionnement”Le formulaire de login accepte des caractères dangereux”
Secrets scanningDétecteur de fuiteCherche les mots de passe oubliés dans le code”Clé API AWS en dur dans le fichier config.py”

Pourquoi tous les quatre ? Chaque test trouve des problèmes différents :

  • SCA détecte les vulnérabilités connues dans vos dépendances (80% du code d’une application moderne vient de bibliothèques tierces)
  • SAST trouve les erreurs dans votre code (injections SQL, XSS, etc.)
  • DAST découvre les problèmes visibles uniquement quand l’application tourne (mauvaise configuration, headers manquants)
  • Secrets scanning évite la catastrophe des clés API publiées sur GitHub

L’analogie : le sas de sécurité à l’aéroport

À l’aéroport, vous passez par des contrôles successifs : vérification d’identité, scanner de bagages, détecteur de métaux. Si un contrôle échoue, vous ne passez pas.

Le pipeline CI/CD fonctionne pareil avec des security gates (portes de sécurité) :

Pipeline CI/CD sécurisé : chaque étape passe par des contrôles de sécurité qui bloquent ou alertent selon la criticité

Les trois règles d’un pipeline sécurisé :

RèglePourquoiExemple
Bloquer le critiqueUn secret exposé = compromission immédiateSecret détecté → build échoue
Alerter le resteTout bloquer = pipeline contournéCVE moyenne → ticket créé, build passe
Ne jamais stocker de secrets en durLe code est versionné, donc visibleUtiliser un vault (HashiCorp Vault, AWS Secrets Manager)

L’analogie : la traçabilité alimentaire

Quand vous achetez de la viande, l’étiquette indique : origine, date d’abattage, numéro de lot. Si un problème sanitaire survient, on peut remonter toute la chaîne et rappeler les produits concernés.

En logiciel, c’est le même principe. Une application moderne contient des centaines de composants. Savez-vous lesquels ? En cas de faille (comme Log4Shell), pouvez-vous répondre en minutes à “sommes-nous affectés ?” ?

ConceptL’analogie alimentaireCe que ça fait
SBOMListe des ingrédientsInventaire complet de tous les composants logiciels
SignatureSceau d’authenticitéPreuve cryptographique que l’artefact vient de vous
ProvenanceTraçabilité “de la ferme à l’assiette”Qui a construit quoi, quand, comment

Pourquoi c’est crucial ? L’attaque SolarWinds (2020) a montré qu’un attaquant peut compromettre la chaîne de build et injecter du code malveillant dans un logiciel légitime. Sans SBOM ni vérification de provenance, vous faites confiance aveuglément.

L’analogie : construire une maison

Vous pouvez :

  1. Construire la maison, puis ajouter une alarme et des barreaux aux fenêtres
  2. Concevoir la maison avec une porte blindée, des serrures solides et un éclairage dissuasif dès le départ

L’option 2 est moins chère et plus efficace. C’est la sécurité by design : intégrer la sécurité dès la conception, pas après coup.

Les 3 principes fondamentaux :

PrincipeCe que ça signifieExemple
Moindre privilègeNe donner que les droits strictement nécessairesUn service qui lit une base n’a pas besoin des droits d’écriture
Défense en profondeurPlusieurs couches de protectionFirewall + authentification + chiffrement + monitoring
Sécurisé par défautLa configuration de base est sécuriséePorts fermés par défaut, HTTPS obligatoire

L’analogie : l’assurance habitation

Quand vous assurez votre maison, vous évaluez :

  • Les menaces : cambriolage, incendie, inondation
  • Les vulnérabilités : porte fragile, absence de détecteur de fumée, zone inondable
  • Les risques : probabilité × impact financier

Vous n’investissez pas autant pour protéger un vélo que pour protéger des bijoux de famille. C’est la gestion des risques : concentrer les efforts sur ce qui compte.

ConceptQuestionExemple en IT
MenaceQui pourrait attaquer ?Hackers, employés malveillants, États
VulnérabilitéQuelle faiblesse peut être exploitée ?Injection SQL, mot de passe faible
RisqueQuel impact si ça arrive ?Fuite de données clients = amende RGPD + réputation

La règle d’or : vous ne pouvez pas tout protéger au même niveau. Identifiez vos “bijoux de famille” (données clients, secrets métier) et concentrez vos efforts dessus.

L’adoption du DevSecOps est un voyage progressif. Ne cherchez pas à tout faire d’un coup — commencez par ce qui a le meilleur ROI.

Ces actions ont un impact immédiat pour un effort minimal :

  1. Pre-commit hooks pour les secrets — Un secret bloqué avant le commit coûte 5 minutes. Le même secret en production peut coûter des millions.
  2. Scan de dépendances (SCA) dans la CI — Vous utilisez probablement des bibliothèques avec des CVE connues. Sachez lesquelles.
  3. Formation de base — 2h de sensibilisation aux OWASP Top 10 changent les réflexes.

Intégrez la sécurité dans le flux normal de développement :

  1. SAST sur les pull requests — Les développeurs voient les problèmes avant de merger
  2. Scan d’images conteneur — Vos images Docker contiennent souvent des CVE héritées de l’image de base
  3. Séparation des environnements — Dev, staging et prod avec des secrets distincts

Passez de “on scanne” à “on peut prouver” :

  1. Signature d’artefacts — Avec Cosign/Sigstore, prouvez que vos builds sont authentiques
  2. Génération de SBOM — Répondez en minutes à “sommes-nous affectés par cette CVE ?”
  3. Monitoring de sécurité en production — Détectez les comportements anormaux

Pour les organisations avec des exigences élevées :

  1. SLSA niveau 3 — Provenance vérifiable de vos artefacts
  2. Réponse automatisée — Un CVE critique déclenche automatiquement un ticket et une alerte
  3. Partage des pratiques — Contribuez à la communauté, formez en interne

L’analogie : le tableau de bord de votre voiture

Vous ne conduisez pas sans compteur de vitesse ni jauge d’essence. En DevSecOps, vous avez besoin de métriques pour savoir si vous progressez.

MétriqueCe qu’elle mesurePourquoi c’est importantCible
MTTD (Mean Time To Detect)Temps pour détecter une vulnérabilitéPlus c’est court, moins les attaquants ont de temps< 24h pour critique
MTTR (Mean Time To Remediate)Temps pour corriger une vulnérabilitéUne CVE connue non corrigée = cible facile< 7 jours pour critique
Taux de détection par phaseOù sont trouvées les faillesL’objectif : maximum en CI, minimum en prod> 80% en CI
Taux de faux positifsAlertes non pertinentesTrop de bruit = les alertes sont ignorées< 10%
Couverture de scan% du code/dépendances analysésCe qui n’est pas scanné n’est pas protégé> 90%
Si vous observez…Ça signifie…Action
MTTD élevéLes vulnérabilités passent inaperçuesAjouter des scans automatiques
MTTR élevéLes correctifs traînentPrioriser les CVE critiques, automatiser les tickets
Beaucoup de failles en prodLes contrôles CI sont insuffisantsRenforcer les security gates
Taux de faux positifs élevéLes développeurs ignorent les alertesAffiner les règles, réduire le bruit

Ces métriques s’alignent avec les métriques DORA — une bonne posture de sécurité accélère la livraison au lieu de la freiner.

  • DevSecOps = sécurité intégrée, pas ajoutée à la fin
  • Shift-left = détecter les problèmes au plus tôt (coût x100 évité)
  • Responsabilité partagée = tout le monde contribue à la sécurité
  • Automatisation intelligente = bloquer le critique, alerter le reste
  • Progressivité = commencer par les pre-commit hooks