Jump to section

Le DevSecOps, qu'est-ce que c'est ?

Copier l'URL

Le DevSecOps est un modèle qui englobe le développement (Dev), la sécurité (Sec) et l'exploitation (Ops). Cette approche de la culture, de l'automatisation et de la conception des plateformes intègre la sécurité en tant que responsabilité partagée tout au long du cycle de vie informatique.

Le DevOps ne s'adresse pas uniquement aux équipes de développement et d'exploitation. Pour tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, il est nécessaire d'intégrer la sécurité informatique au cycle de vie complet des applications.

Pourquoi ? Par le passé, les processus liés à la sécurité étaient isolés et confiés à une équipe spécifique, à l'étape finale du développement. Cette méthode ne posait pas forcément de problèmes quand les cycles de développement duraient des mois, voire des années, mais cette époque est révolue. Si une approche DevOps efficace garantit des cycles de développement rapides et fréquents (parfois quelques semaines ou jours), des pratiques de sécurité dépassées peuvent réduire à néant les bénéfices des projets DevOps les plus efficaces.

 

Illustration representing a linear progression from Development to Security and then to Operations

À présent, dans le cadre de travail collaboratif du modèle DevOps, la sécurité est une responsabilité partagée, intégrée du début à la fin. Cette notion est si importante qu'elle a donné naissance à l'expression « DevSecOps » qui souligne la nécessité d'intégrer la sécurité aux projets DevOps.

 

Illustration representing collaboration between Development, Security, and Operations roles

L'approche DevSecOps implique de réfléchir à la sécurité des applications et de l'infrastructure dès le départ, et d'automatiser certaines passerelles de sécurité afin d'éviter tout ralentissement du workflow DevOps. Pour atteindre ces objectifs, il faut commencer par sélectionner les outils capables d'assurer l'intégration continue de la sécurité, par exemple avec un environnement de développement intégré commun qui offre des fonctions de sécurité. L'utilisation de nouveaux outils ne suffit toutefois pas à améliorer l'efficacité de la sécurité DevOps. Il faut également intégrer plus en amont le travail des équipes de sécurité.

Ces pratiques visant à accorder la priorité à la sécurité dès les premières phases de planification et de développement jusqu'à l'exécution sont communément appelées Shift Left et Shift Right. La mise en œuvre de pratiques DevSecOps automatisées dans le cadre d'une approche Shift Left permet aux équipes de développement de mettre en place facilement des mécanismes de sécurité, pour réduire le risque d'erreurs des utilisateurs lors des étapes de création et de déploiement ainsi que pour protéger les charges de travail pendant l'exécution. L'approche Shift Right consiste à continuer les processus de test, d'assurance qualité et d'évaluation des performances dans l'environnement de post-production.

« DevOps » ou « DevSecOps », quel que soit le nom donné à cette approche, il a toujours été préférable de faire de la sécurité une partie intégrante du cycle de vie des applications. Le DevSecOps implique une intégration totale de la sécurité. Il ne suffit pas de l'ajouter après le développement pour protéger les applications et données. En reléguant la sécurité à la fin du pipeline de développement, les entreprises qui adoptent le DevOps sont susceptibles de retrouver les longs cycles de développement qu'elles tentaient d'éviter en premier lieu.

Le DevSecOps met notamment l'accent sur la nécessité d'impliquer les équipes chargées de la sécurité et les partenaires dès le début des projets DevOps, afin d'y intégrer la sécurité des informations et d'en planifier l'automatisation. Cette approche souligne également la nécessité d'encourager le codage axé sur la sécurité. Pour ce faire, les équipes de sécurité doivent partager la visibilité dont elles bénéficient, ainsi que leurs observations et leurs informations sur les menaces identifiées telles que les menaces internes ou la présence potentielle de logiciels malveillants. L'approche DevSecOps se concentre également sur l'identification des risques liés à la chaîne d'approvisionnement des logiciels, en renforçant la sécurité des composants et des dépendances des logiciels Open Source très tôt dans le cycle de vie de développement logiciel. Pour assurer une adoption efficace du modèle DevSecOps, il est aussi possible de former les équipes de développement à la sécurité, car celle-ci n'a jamais fait partie des préoccupations principales dans le développement traditionnel d'applications.

À quoi la sécurité intégrée ressemble-t-elle concrètement ? Pour commencer, une stratégie DevSecOps efficace consiste à déterminer la tolérance en matière de risques et de réaliser une analyse bénéfice-risque. Quel est le niveau de contrôle de sécurité nécessaire dans une application donnée ? Quelle est l'importance du délai de mise sur le marché pour différentes applications ? L'automatisation des tâches répétitives est essentielle pour le DevSecOps, car les contrôles de sécurité manuels dans le pipeline peuvent devenir chronophages.

Chaque entreprise doit répondre à quelques exigences clés : maintenir des cycles de développement courts et fréquents, intégrer des mesures de sécurité avec un minimum d'interruptions, suivre le rythme des technologies innovantes telles que les conteneurs et les microservices, et favoriser une collaboration étroite entre les équipes généralement isolées. Toutes ces initiatives débutent au niveau humain, avec les tenants et aboutissants de la collaboration au sein de l'entreprise. Pour faciliter l'évolution des comportements, le modèle DevSecOps introduit l'automatisation.

Illustrations representing that DevOps plus Automation equals Security

Mais que faut-il automatiser ? Et comment procéder ? Différents guides tentent de répondre à cette question. Il est important pour les entreprises de prendre du recul et d'envisager l'environnement de développement et d'exploitation dans son intégralité : ce processus peut s'appliquer aux référentiels de contrôle des sources, aux registres de conteneurs, au pipeline d'intégration et de déploiement continus (CI/CD), à la gestion des interfaces de programmation d'applications (API), à l'automatisation de l'orchestration et des lancements ainsi qu'à la gestion et la surveillance de l'exploitation.

Les nouvelles technologies d'automatisation ont permis aux entreprises d'adopter des pratiques de développement plus agiles et ont joué un rôle dans la mise en œuvre de nouvelles mesures de sécurité. L'automatisation n'est cependant pas le seul composant du paysage informatique qui a évolué ces dernières années : les technologies cloud-native telles que les conteneurs et les microservices font désormais partie intégrante de la plupart des initiatives DevOps, et la sécurité du modèle DevOps doit également s'adapter pour en tenir compte.

Les conteneurs ont amélioré l'évolutivité et le dynamisme du développement et du déploiement, ce qui a transformé la manière dont la plupart des entreprises innovent. Pour cette raison, les pratiques de sécurité DevOps doivent s'adapter au nouveau paysage et se conformer aux instructions de sécurité propres aux conteneurs.

Les technologies cloud-native ne sont pas compatibles avec des politiques et des listes de contrôle de sécurité statiques. Il est nécessaire que la sécurité soit continue et intégrée à chaque étape du cycle de vie de l'application et de l'infrastructure.

Le DevSecOps incorpore la sécurité du début à la fin du processus de développement des applications. Cette intégration au pipeline implique un changement d'état d'esprit dans l'entreprise autant que de nouveaux outils. Les équipes DevOps doivent automatiser la sécurité pour protéger l'environnement global et les données, ainsi que le processus d'intégration et de distribution continues. Pour ce faire, elles devront probablement aussi sécuriser les microservices dans des conteneurs.

La solution Red Hat® Advanced Cluster Security for Kubernetes intègre la sécurité en amont et automatise les meilleures pratiques DevSecOps. Cette plateforme fonctionne avec tous les environnements Kubernetes et s'intègre aux processus DevOps et aux outils de sécurité pour permettre aux équipes d'exploiter et de mieux sécuriser leur chaîne d'approvisionnement, leur infrastructure et leurs charges de travail.

Sécurité de l'environnement et des données

  • Standardisation et automatisation de l'environnement : chaque service doit disposer du privilège le plus bas possible pour minimiser les connexions et accès non autorisés.
  • Centralisation des identités utilisateur et du contrôle des accès : des mécanismes stricts de contrôle des accès et d'authentification centralisée sont essentiels pour sécuriser les microservices, car l'authentification est initiée à plusieurs stades.
  • Isolation des conteneurs exécutant des microservices entre eux et vis-à-vis du réseau : ce processus inclut à la fois les données en transit et au repos, car elles représentent des cibles de haute valeur pour les pirates informatiques.
  • Chiffrement des données entre les applications et les services : l'utilisation d'une plateforme d'orchestration des conteneurs avec des fonctions de sécurité intégrées permet de minimiser les risques d'accès non autorisés.
  • Mise en œuvre de passerelles d'API sécurisées : les API sécurisées augmentent la visibilité des autorisations et du routage. En réduisant les API exposées, les entreprises peuvent réduire les surfaces d'attaque.

Sécurité du processus CI/CD

  • Intégration d'outils d'analyse de sécurité pour les conteneurs : cette étape doit faire partie du processus d'ajout de conteneurs au registre.
  • Automatisation des tests de sécurité du processus CI : ce processus inclut l'exécution d'outils d'analyse statique de la sécurité dans le cadre de la création de versions, ainsi que l'analyse de toutes les images de conteneurs préconçues pour identifier les vulnérabilités de sécurité connues à mesure qu'elles sont intégrées au pipeline de création de versions.
  • Ajout de tests automatisés pour les fonctionnalités de sécurité au processus de test d'acceptation : cette étape vise à automatiser les tests de validation de saisie ainsi que les fonctions de vérification, d'authentification et d'autorisation.
  • Automatisation des mises à jour de sécurité, notamment les correctifs pour les vulnérabilités connues : ce processus peut s'effectuer dans le cadre du pipeline DevOps. Il doit être en mesure d'éliminer le besoin pour les administrateurs de se connecter aux systèmes de production tout en créant un journal des changements documenté et traçable.
  • Automatisation des fonctionnalités de gestion des configurations du système et des services : ce processus garantit la conformité avec les politiques de sécurité et l'élimination des erreurs manuelles. Les audits et corrections devraient également être automatisés.

En savoir plus sur la sécurité CI/CD 

Image de couverture du livre numérique Culture et pratiques DevOps avec OpenShift

Découvrir la culture et les pratiques DevOps avec OpenShift

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources