SecDevOps ou DevSecOps : définitions et différences
La sécurité occupe une place de plus en plus prépondérante dans les projets, et selon l'approche DevSecOps ou SecDevOps, son intégration varie significativement. Dans une démarche SecDevOps, la sécurité guide le projet en imposant un ensemble de règles, qu'elles soient juridiques ou spécifiques à une entreprise, plaçant ainsi la sécurité au cœur du développement de logiciel ou d'application.
L'approche DevSecOps se définit par l'intégration de la sécurité à chaque phase du cycle de développement, en partant d'une initiative originale de l'équipe de développement et en y intégrant progressivement la sécurité tout au long du processus.
La grande différence entre les approches DevSecOps et SecDevOps réside dans la manière de concevoir la sécurité : le DevSecOps prône l'automatisation et l'intégration systématique des meilleures pratiques de sécurité au sein des cycles de développement, favorisant la collaboration et l'innovation sans pour autant compromettre la vitesse des processus. L'automatisation devient alors un pilier clé de cette approche. En revanche, le SecDevOps peut requérir une refonte radicale des processus de développement, ainsi que de la partie opérationnelle qui en découle, afin de satisfaire des normes de sécurité strictes qui ne s'intègrent pas toujours aisément dans les processus préexistants d'une entreprise.
Dans le domaine de l'intégration de la sécurité au sein du processus de développement, l’interaction entre les équipes joue un rôle crucial. Le modèle DevSecOps promeut une collaboration équilibrée entre développeurs, opérationnels et experts en sécurité. Le modèle SecDevOps accorde quant à lui une prédominance à l'équipe de sécurité dans le processus de développement.
Si nous abordons les outils et les pratiques, les deux approches utilisent des ressources similaires, mais avec des orientations différentes. Le SecDevOps favorise des méthodes qui placent la sécurité au centre, conduisant parfois à des processus plus contrôlés, plus restrictifs, et pouvant ralentir le développement. L'objectif du DevSecOps est de trouver un équilibre entre rapidité et sécurité pour atteindre un délai de mise sur le marché qui répond aux besoins commerciaux.
Le SecDevOps, quant à lui, est intransigeant sur la sécurité, la faisant passer avant toute autre considération, ce qui est caractéristique des entreprises dans les secteurs de la défense, de l'aéronautique et de la banque. Néanmoins, c'est le DevSecOps qui reste le plus visible et le plus répandu dans l'univers du DevOps, symbolisant l'adaptation et l'agilité dans la sécurisation des développements informatiques.
Pour aller plus loin : Comment piloter le DevSecOps de demain ?
DevSecOps by Design : qu'est-ce que c'est ?
Le DevSecOps s'enracine dans la culture collaborative du DevOps, étendue à la sécurité. Il s'agit de commencer les échanges dès les premières phases du projet, établissant les normes de sécurité et de gouvernance pour anticiper les besoins et les problématiques de sécurité dès le démarrage. Cela permet de concevoir des solutions partagées, et même des stratégies de contournement si nécessaire, en tenant compte des contraintes budgétaires qui pourraient influencer le coût global du projet.
Il est essentiel d'adapter le niveau de sécurité aux enjeux business du projet. Pour les initiatives critiques et réglementées, le SecDevOps pourrait être plus pertinent, privilégiant la sécurité dès le départ. En revanche, pour les projets avec des risques sécuritaires moins élevés, la pratique du DevSecOps pourrait être privilégiée, intégrant la sécurité de manière plus fluide et adaptable à la progression du projet.
Définition du DevSecOps : les 5 piliers de la démarche
L’approche DevSecOps va répondre à cinq piliers qui permettent de répondre aux exigences de la sécurité dans le cycle DevOps :
- Réduction de la vulnérabilité et des surfaces d'attaques : L'objectif est de minimiser autant que possible les vulnérabilités dès le début du développement, afin d'éviter les failles de sécurité qui pourraient survenir après coup.
- Accélération du time to market : L'ambition est d'accélérer la livraison des projets. Avec DevSecOps, la sécurité est prise en compte dès le début du processus et non après, évitant ainsi les retours en arrière coûteux et chronophages.
- Collaboration accrue entre les équipes : DevSecOps promeut une synergie entre les développeurs, les opérateurs de sécurité et les autres membres de l'équipe projet, favorisant ainsi un travail d'équipe fluide et efficace. Cela implique également un top management qui soutient et encourage ces pratiques.
- Réponse aux exigences réglementaires : Que ce soit pour répondre à des réglementations spécifiques à certains secteurs comme la santé, la défense ou la finance, ou à des règles propres à une entreprise, DevSecOps permet de répondre adéquatement aux exigences réglementaires variées, adaptées à chaque contexte.
- Confiance du client : Au cœur de DevSecOps, il y a la volonté de renforcer la confiance des clients, souvent ébranlée par les risques de cyberattaques ou de pertes de données. Cela s'étend également aux exigences des compagnies d'assurance qui demandent désormais des garanties importantes concernant la sécurité des données, des accès...
L'approche DevSecOps dans la chaîne CI/CD
Selon le principe de DevSecOps, la sécurité intervient à chaque étape du cycle CI/CD, comme l’exprime le schéma ci-dessous :

La méthodologie d'implémentation dans la chaîne de développement CI/CD est la suivante :
- Définir un état des lieux : dans l’élaboration d’une stratégie DevSecOps efficace, il est crucial de commencer par un audit de votre situation actuelle pour déterminer le niveau de maturité sur les différents aspects du cycle de déploiement CI/CD. Cela permet de savoir à quel niveau notre équipe sécurité est mature pour pouvoir s'intégrer aux équipes de développement et aux équipes opérationnelles.
- Prioriser les chantiers : cela permet de définir les chantiers en fonction des priorités stratégiques de l'entreprise, en mettant en avant les initiatives critiques qui génèrent le plus de valeur.
- Adopter une approche itérative : les menaces de sécurité évoluent, tout comme les outils pour les contrer. S'enfermer dans un long projet de mise en conformité qui s’étendrait sur des mois, voire des années, pourrait vous laisser à la traîne, avec des solutions obsolètes avant même le déploiement.
- Formation et sensibilisation : il s'agit d'un processus continu. Les équipes doivent être constamment formées à collaborer et à intégrer la sécurité dans chaque phase du développement et de l'opérationnel.
- Amélioration continue : l'amélioration continue, testée et ajustée par les retours continus des utilisateurs et des clients, est fondamentale pour une adaptation fluide et efficace aux exigences évolutives. C’est en restant à l’écoute et en ajustant les pratiques que l’on parvient à un alignement parfait entre la sécurité, l’efficacité et les besoins des utilisateurs.
L’analyse des risques
Deux éléments sont souvent négligés au démarrage d'un projet :
- Le paysage des menaces : en fonction de l'outil qui va être déployé, du service concerné, de sa zone géographique, etc. Dans le DevSecOps, différents facteurs doivent être étudiés dans le cadre de la définition du paysage des menaces. L'équipe sécurité, ou une équipe dédiée à l'analyse des risques, doit établir cette étude pour anticiper les menaces potentielles.
- La Compliance Validation qui englobe toutes les normes de sécurité nécessaires à la livraison du projet suivant les exigences internes et légales.
Il faut démarrer par une analyse de risque approfondie où tous les risques sont identifiés et priorisés. Une gouvernance prédéfinie par l'équipe de sécurité dictera les règles à suivre pour couvrir les menaces.
Bien sûr, l'étendue de cette analyse de risque dépend de l'ampleur du projet. Un changement majeur à apporter à une solution nécessitera une réévaluation complète des risques, contrairement à des modifications mineures qui ne justifieraient pas une nouvelle analyse approfondie.
Une analyse de risque peut coûter cher, c’est pourquoi elle doit être pondérées par rapport aux moyens de l'entreprise. Chaque projet mérite une évaluation du risque, mais il revient au chef de projet et aux équipes de définir la profondeur nécessaire de cette étude.
Enfin, rassembler les différentes parties prenantes pour une première évaluation des risques est une étape simple et peu coûteuse. Avant de s'engager dans une analyse de risque plus élaborée et onéreuse, il est judicieux d'évaluer si les bénéfices justifieraient son coût et sa complexité ajoutée.
Pour aller plus loin
Article - NoOps et hyper-automatisation : suite logique du DevOps ?
Article - AWS : quels outils pour implémenter le DevSecOps ?