Établir une discipline de sécurité de développement

Cet article aide les équipes de sécurité et de technologie à établir et moderniser une discipline Sécurité du développement. Cette discipline permet aux équipes de sécurité, d’ingénierie et de technologie de s’assurer que les logiciels sont conçus, intégrés et déployés en toute sécurité, sans ralentir l’innovation.

Les disciplines de sécurité regroupent des travaux de sécurité connexes qui aident les organisations à fournir de manière cohérente des résultats de sécurité dans l’ensemble du patrimoine technologique. Dans le modèle d’adoption de la sécurité, les disciplines permettent d’établir un pont entre les scénarios métier et l’implémentation technique, ce qui garantit que les investissements de sécurité se traduisent en résultats mesurables réels dans le cadre du modèle d’adoption de la sécurité.

Pourquoi cette discipline ?

Le logiciel est profondément interconnecté avec les identités, les données, l’infrastructure et les processus métier. Lorsque la sécurité du développement est faible ou incohérente, chaque version logicielle peut introduire de nouvelles vulnérabilités que les attaquants exploitent pour accéder à des ressources organisationnelles plus larges.

Sans discipline de sécurité de développement efficace, les organisations connaissent généralement :

  • Risque accru des vulnérabilités logicielles introduites pendant le développement.
  • Compromission de l’application qui permet un déplacement latéral entre les identités et les données.
  • Interruption des opérations commerciales et des revenus.
  • Exposition ou abus de données client et réglementées.
  • Accumulation de dettes techniques qui augmente le risque à long terme et le coût de correction.

Une discipline forte en matière de sécurité de développement garantit que chaque mise en production réduit les risques, plutôt que de les compliquer.

Mission et résultats

La discipline Sécurité du développement réduit les risques organisationnels en garantissant que tous les logiciels, développés en interne ou par des partenaires, sont conçus, intégrés et déployés conformément aux normes de sécurité, sans ralentir la livraison ou l’innovation.

Les organisations qui mûrissent cette discipline sont les suivantes :

  • Sécurité intégrée aux processus de développement plutôt qu’ajoutée en retard.
  • Identification et correction antérieures des défauts de conception et d’implémentation.
  • Cycles de mise en production plus prévisibles et sécurisés.
  • Réduction du travail, des correctifs d’urgence et des interruptions opérationnelles.
  • Réduction de l’accumulation de dettes techniques et de sécurité au fil du temps.

Development Security garantit que la posture de sécurité s’améliore continuellement à chaque version, au lieu d’être périodiquement réinitialisée.

Changements dans le travail d’équipe

Il est important qu’une discipline de sécurité du développement s’adapte aux développeurs et aux équipes produit là où ils en sont, en mettant l’accent sur l’intégration de la sécurité dans les flux de travail de développement existants, plutôt que d’introduire tardivement des contrôles, des processus de revue pesants et source de frictions, voire de faire l’impasse sur la sécurité dans les processus de développement.

Cette approche est souvent décrite comme un déplacement vers la gauche, l’introduction de la pensée en matière de sécurité plus tôt dans l’idée, la conception et l’implémentation, lorsque les problèmes sont plus faciles et moins coûteux à résoudre. Le déplacement vers la gauche ne signifie pas dire pas plus tôt dans le processus. Au lieu de cela, il introduit une discussion éclairée sur la sécurité tôt pour améliorer les décisions de produit et garantir que les solutions répondent aux exigences de sécurité et d’entreprise.

Les principes clés sont les suivants :

  • Intégration anticipée : envisager la sécurité pendant l’idée et la conception, et pas seulement les tests
  • Alignement des développeurs : Rencontrez les équipes de développement et de produits où elles travaillent déjà
  • Petite modification incrémentielle : préférer l’automatisation et les améliorations à faible friction
  • Amélioration continue : traiter la sécurité comme une discipline continue, et non comme un jalon

Au fil du temps, l’intégration cohérente réduit les exercices d’incendie et accélère la livraison plutôt que de la ralentir.

Comment appliquer cette discipline

Pour appliquer efficacement la discipline Sécurité du développement, concentrez-vous sur l’établissement d’une approche cohérente pour créer et maintenir des applications et des services sécurisés au sein de l’organisation :

  1. Définir une stratégie de développement sécurisée alignée sur les risques métier
    Établissez une approche claire pour la conception, la création et la maintenance des applications et des services afin de réduire le risque de compromission et de protéger les fonctionnalités métier critiques.
  2. Incorporer la sécurité dans les processus de développement et d’ingénierie
    Assurez-vous que les pratiques de sécurité sont intégrées à la planification, à la conception, au développement et aux activités de déploiement plutôt qu’appliquées après le fait.
  3. Établir des pratiques de développement sécurisée standardisées
    Fournissez des conseils clairs pour vous assurer que les pratiques de codage, de test et de mise en production sécurisées sont appliquées de manière cohérente entre les équipes et les projets.
  4. Aligner la sécurité du développement avec les ressources critiques et les scénarios métier
    Hiérarchiser les protections pour les applications et les services qui prennent en charge les ressources à valeur élevée et les opérations métier clés.
  5. Améliorer en continu en fonction des risques, des vulnérabilités et des commentaires
    Utilisez des insights sur les vulnérabilités, les incidents et les résultats des tests pour renforcer les pratiques de développement et réduire les risques au fil du temps.

Gérer les modifications

La sécurité du développement moderne est généralement implémentée par le biais d’une approche DevSecOps qui combine une livraison agile avec des pratiques de gouvernance et de qualité essentielles avant la mise en production.

Au lieu de choisir entre la vitesse et la sécurité, DevSecOps se concentre sur la sécurisation des aspects clés du cycle de vie du développement afin d’atténuer les risques urgents tout en n’implémentant pas les cycles de mise en production rapides :

Sécurisez la conception : utilisez des modèles de conception de sécurité éprouvés et validez les conceptions par le biais de la modélisation des menaces. Sécurisez le code : suivez les pratiques de codage sécurisées et validez les logiciels et les dépendances. Sécurisez le pipeline : validez le processus de pipeline et protégez les systèmes CI/CD contre la compromission et les modifications non autorisées. Assurez la traçabilité des modifications apportées au pipeline et au logiciel qui transitent par le pipeline. Opérations sécurisées : assurez-vous que les charges de travail déployées suivent la configuration, la mise à jour corrective et les meilleures pratiques opérationnelles.

Les équipes peuvent améliorer les résultats en affinant en continu la collaboration entre le développement, la sécurité et les opérations, en équilibrant les objectifs de livraison fonctionnelle avec la fiabilité et la réduction des risques.

Stratégie DevSecOps qui combine les pratiques de développement traditionnelles avec des techniques Agile.

Cette amélioration incrémentielle continue doit être appliquée à la production de travail (code logiciel produit dans le cycle de vie) ainsi qu’à la maturité du cycle de vie de développement lui-même.

Définir un processus DevSecOps

Development Security est généralement implémenté par le biais d’un modèle d’exploitation DevSecOps qui évolue au fil du temps plutôt que d’apparaître entièrement formé. DevSecOps rassemble le développement, la sécurité et les opérations pour obtenir de meilleurs résultats grâce à une amélioration continue.

La plupart des organisations progressent à travers ces étapes :

Développement (Développement) : la première version de production se concentre sur la fourniture d’un produit minimalement viable (MVP) qui répond aux exigences métier principales. DevOps : après la publication initiale, les équipes se concentrent sur l’itération rapide, la stabilité opérationnelle et la gouvernance par le biais d’une livraison continue. DevSecOps : à mesure que la collaboration mûrit, le développement, la sécurité et les opérations fonctionnent ensemble pour affiner en continu les processus et équilibrer la vitesse, le risque et la fiabilité.

Stratégie DevSecOps qui combine les contrôles de qualité traditionnels et le développement agile.

Cette progression permet aux organisations d’améliorer les résultats de sécurité sans sacrifier l’agilité ou l’innovation.

Établir une base de référence MVP sécurisée

Une étape clé de ce modèle consiste à définir ce qui constitue un produit minimum viable (MVP) du point de vue du développement, de la sécurité et des opérations. L’établissement de cette base de référence partagée crée une clarté entre les équipes et permet une amélioration cohérente au fil du temps.

Composant Détails
Dev(elopment) Assurez-vous que le logiciel répond aux exigences métier et fonctionnelles minimales.
Sec(urity) Assurez-vous que les logiciels répondent aux exigences de sécurité et de conformité minimales.
Op(eration)s Assurez-vous que les logiciels répondent aux exigences minimales de qualité, de fiabilité et de préparation opérationnelle.

Les exigences du MVP varient selon l’organisation et l’industrie et sont influencées par l’appétit des risques, l’exposition réglementaire et la critique de l’entreprise. Ces exigences évoluent souvent à mesure que l’organisation, le paysage des menaces et les modèles de distribution changent.

Amélioration continue des logiciels

Après la mise en production initiale, les charges de travail passent en cycles d’amélioration continue. Dans cette phase, le développement, la sécurité et les opérations affinent à la fois le logiciel et le processus de livraison. Les efforts de sécurité se concentrent sur :

  • Intégrer la sécurité en mode natif dans les workflows de développement, à l’aide des mêmes outils et modèles de hiérarchisation que d’autres travaux d’ingénierie
  • Identifiez, hiérarchiser et corriger rapidement les bogues de sécurité dans le cadre des cycles de publication standard.

Cette approche s’aligne sur les apprentissages Microsoft Secure Future Initiative (SFI), tels que prPaved Paths, où les pratiques sécurisées sont intégrées aux plateformes et processus plutôt qu’appliquées en externe.

Au fil du temps, cet apprentissage continu aide les équipes à affiner les exigences, à rationaliser la collaboration et à mieux équilibrer la vitesse de livraison, la sécurité et la fiabilité.

Rôles par discipline et collaborateurs

La discipline Dev Security est généralement exécutée par les équipes qui effectuent le développement d’applications et de produits.

Les rôles principaux de cette discipline sont généralement les suivants :

  • Gestionnaires de produits et de livraison de technologies
  • Développeurs de logiciels (y compris le développement IA)
  • Ingénieurs de sécurité logicielle
  • Ingénieurs DevOps et plateforme
  • Tests et rôles d’ingénierie de qualité
  • Rôles de sécurité de la chaîne logistique et des dépendances

Les collaborateurs clés sont les suivants :

  • Leadership commercial et technique – Fournir un parrainage et une hiérarchisation
  • Rôles d’architecture – Guider les décisions de conception et d’intégration sécurisées
  • Stratégies de sécurité, intégration et discipline de gouvernance : fournir des politiques, une éducation et une supervision
  • Équipes d’infrastructure et de plateforme : activer des environnements de développement sécurisés
  • Opérations de sécurité (SecOps) : surveiller et répondre lorsque les applications sont attaquées

Alignement avec d’autres disciplines

Development Security est étroitement intégré à d’autres disciplines SAF :

  • Accès et identités : protège les identités de développement, de charge de travail et de service.
  • Sécurité de l’infrastructure : sécurise les plateformes exécutant des applications et des pipelines.
  • Sécurité des données : garantit la protection des données sensibles tout au long du cycle de vie du logiciel.
  • SecOps : détecte et répond aux attaques au niveau de l’application.
  • Stratégie de sécurité, intégration et gouvernance : aligne les pratiques de développement sur les priorités des risques d’entreprise.

Ensemble, ces disciplines garantissent que la sécurité logicielle prend en charge des résultats métier et de sécurité plus larges.

Alignement avec les piliers technologiques

L’exécution de la stratégie pour la discipline de sécurité de développement nécessite des contrôles de sécurité sur plusieurs piliers technologiques.

Sécurité du développement : mappage aux piliers technologiques.

L’alignement avec les piliers technologiques comprend :

  • Identités : protège les identités de développeur et de charge de travail et les informations d’identification.
  • Points de terminaison : sécurise les stations de travail des développeurs et crée des systèmes.
  • Infrastructure : protège les plateformes hébergeant du code, des pipelines et des charges de travail.
  • Applications: constituent l’axe principal des pratiques de sécurité du développement.
  • Données : protège les données utilisées, générées et stockées par les applications.
  • Réseau : conçoit des logiciels pour fonctionner en toute sécurité sur des réseaux non approuvés.
  • IA : sécurise les composants et les modèles IA utilisés dans les applications modernes.

Cette étendue garantit que la discipline traite des chemins d’attaque réels.

Quelle est l’étape suivante ?

Des conseils supplémentaires sur la stratégie de sécurité de développement sont fournis dans la stratégie de sécurité de développement.

Prendre un atelier

Microsoft Unified propose des ateliers dirigés par des experts pour aider les organisations à moderniser leur discipline de sécurité dev. Ces ateliers sont les suivants :

  • Ateliers sur l’architecture et la stratégie - Le Cadre d’adoption de la sécurité (SAF) - Session de conception architecturale : atelier sur la sécurité de l’infrastructure et du développement vise à accélérer la modernisation de la sécurité du développement et son intégration à la sécurité de l’infrastructure. Cet atelier est disponible sous la forme d’une discussion de moins de quatre heures axée sur les apprentissages clés et les meilleures pratiques.
  • Ateliers d’adoption de la technologie : Microsoft Unified propose des ateliers pour aider les organisations à en savoir plus sur, planifier, implémenter et optimiser l’utilisation de Microsoft Technologie de sécurité du développement, comme illustré dans ce diagramme.

Ateliers d’adoption des technologies de développement

Passez en revue la Microsoft Security Development Lifecycle

Le cycle de vie Microsoft développement continu de la sécurité fournit une méthodologie permettant de développer en toute sécurité des logiciels. Le cycle de vie du développement de la sécurité (SDL) est l’approche que Microsoft utilise pour intégrer la sécurité dans les processus DevOps (parfois appelée approche DevSecOps). Les conseils de sécurité de développement SAF vous aident à adapter l’approche et les pratiques SDL à votre organisation.

Vous pouvez appliquer les pratiques décrites dans l’approche SDL à tous les types de développement de logiciels et à toutes les plateformes, de la cascade classique aux approches DevOps modernes. Cette approche de sécurité logicielle généralement applicable fonctionne sur n’importe quel type de logiciel et de plateforme.

Pour plus d’informations, consultez Microsoft Security Development Lifecycle (SDL).

Une sécurité de développement efficace nécessite le suivi d’un cycle de vie de développement de sécurité (SDL) tel que le Microsoft Security Development Lifecycle (SDL)

Étapes suivantes

Découvrez le passage de DevOps à DevSecOps.