Connexion / Inscription Account
Jump to section

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

Copier l'URL

Le « DevSecOps » désigne à la fois le développement, la sécurité et l'exploitation. C'est une approche de la culture, de l'automatisation et de la conception des plateformes qui intègre la sécurité en tant que responsabilité partagée tout au long du cycle de vie informatique.

Le modèle DevOps ne s'adresse pas uniquement aux équipes de développement et d'exploitation. 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.

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. Cela ne posait pas de problème à une époque où 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.

image

À 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 » pour souligner la nécessité d'intégrer la sécurité aux projets DevOps.

image

L'approche DevSecOps implique de réfléchir à la sécurité des applications et de l'infrastructure dès le départ. Il convient également d'automatiser certaines passerelles de sécurité afin d'éviter tout ralentissement des workflows 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é. Toutefois, pour que la sécurité DevOps soit efficace, il faut bien plus que de nouveaux outils. Il est nécessaire de mettre en œuvre les changements culturels du DevOps au sein des équipes chargées de la sécurité, et ce, au plus tôt.

Que l'approche soit nommée « DevOps » ou « DevSecOps », il a toujours été préférable de faire de la sécurité une partie intégrante du cycle de vie des applications. L'approche DevSecOps repose sur une sécurité intégrée et non sur un périmètre de sécurité qui protège les applications et les données. Lorsque la sécurité est reléguée à la fin du processus de développement, les entreprises qui adoptent l'approche DevOps peuvent se retrouver confrontées à de longs cycles de développement, ce qu'elles essayaient justement d'éviter.

Le DevSecOps met notamment en évidence la nécessité d'impliquer les équipes chargées de la sécurité et les partenaires dès le début des projets DevOps, en vue d'y intégrer les fonctions de sécurité des informations et de planifier l'automatisation de cette sécurité. Cette approche souligne également la nécessité d'aider les développeurs à coder en gardant la sécurité à l'esprit. Pour ce faire, les équipes de sécurité doivent partager la visibilité dont elles bénéficient, ainsi que leurs commentaires et leurs informations sur les menaces identifiées. Comme la sécurité n'a pas toujours été considérée comme une priorité dans le développement d'applications traditionnel, il peut être utile de proposer des formations en la matière aux développeurs.

En quoi consiste réellement la sécurité intégrée ? Pour commencer, une bonne stratégie DevSecOps implique de déterminer la tolérance aux risques et de réaliser une analyse des risques/bénéfices. Combien de contrôles de sécurité nécessite une application donnée ? Quelle est l'importance de la rapidité de mise sur le marché pour les différentes applications ? Puisque l'exécution de contrôles de sécurité manuels peut prendre beaucoup de temps, l'automatisation des tâches répétées est un élément clé de l'approche DevSecOps.

Voici les objectifs à atteindre : conserver des cycles de développement courts et fréquents, intégrer des mesures de sécurité aux processus d'exploitation avec un minimum d'interruptions, rester en phase avec les technologies novatrices telles que les conteneurs et les microservices, tout en encourageant une collaboration plus étroite entre les équipes habituellement isolées. Cela représente un défi de taille pour les entreprises. Toutes ces initiatives débutent au niveau humain, avec les tenants et aboutissants de la collaboration au sein de votre entreprise. Pour faciliter l'évolution des comportements dans le cadre du DevSecOps, il existe une solution : l'automatisation.

image

Mais que faut-il automatiser ? Et comment procéder ? Les réponses à ces questions se trouvent dans ce guide. Les entreprises doivent prendre du recul et considérer l'ensemble de l'environnement de développement et d'exploitation, notamment : les référentiels de contrôle des sources, les registres de conteneurs, le pipeline d'intégration et de déploiement continus (CI/CD), la gestion des API, l'automatisation de l'orchestration et des versions, ainsi que la gestion et la surveillance de l'exploitation.

Les nouvelles technologies d'automatisation ont aidé les entreprises à adopter des pratiques de développement plus agiles, et ont par ailleurs joué un rôle dans les progrès réalisés en matière de mesures de sécurité. Cela dit, l'automatisation n'est pas le seul domaine du paysage informatique qui ait changé au cours de ces dernières années. En effet, les technologies cloud-native, telles que les conteneurs et les microservices, font désormais partie intégrante de la plupart des projets DevOps, et les stratégies de sécurité DevOps doivent s'y adapter.

Les infrastructures plus étendues et plus dynamiques, qui ont vu le jour grâce aux conteneurs, ont totalement transformé les méthodes de travail de nombreuses entreprises. De ce fait, les pratiques de sécurité DevOps doivent s'adapter au nouveau paysage informatique et s'aligner sur les recommandations de sécurité propres aux conteneurs.

Les technologies cloud-native ne sont pas compatibles avec les listes de vérification et les politiques de sécurité statiques. La sécurité doit au contraire être continue et intégrée à chaque étape du cycle de vie de l'application et de l'infrastructure.

Le modèle DevSecOps implique d'intégrer la sécurité au processus de développement des applications, du début à la fin. Ceci nécessite d'une part de nouveaux outils et, d'autre part, l'adoption d'une nouvelle culture d'entreprise. 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 continue. Pour ce faire, elles devront probablement aussi sécuriser les microservices dans des conteneurs.

Grâce à cette série de webinars, profitez du point de vue de spécialistes de la sécurité pour le cycle de vie et la pile d'applications conteneurisées.

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

  • Standardiser et automatiser l'environnement : chaque service devrait disposer d'un minimum de privilèges, afin de limiter les connexions et accès non autorisés.
  • Centraliser les identités d'utilisateurs et les fonctionnalités de contrôle d'accès : ces mécanismes stricts de contrôle d'accès et d'authentification centralisée sont indispensables à la sécurisation des microservices, puisque l'authentification est déclenchée en plusieurs points.

  • Isoler les conteneurs qui exécutent des microservices les uns des autres et du réseau : ces mesures s'appliquent aux données en transit et au repos, étant donné que ces deux types de données sont des cibles très prisées des pirates.

  • Chiffrer les données entre les applications et les services : une plateforme d'orchestration de conteneurs avec fonctions de sécurité intégrées permet de minimiser le risque d'accès non autorisé.

  • Introduire des passerelles d'API sécurisées : les API sécurisées améliorent la visibilité sur les autorisations et les routages. En réduisant le nombre d'API exposées, les entreprises peuvent réduire leurs surfaces d'attaques.

Sécurité des processus CI/CD

  • Intégrer des analyseurs de sécurité pour les conteneurs : cette démarche devrait faire partie du processus d'ajout de conteneurs au registre.

  • Automatiser les tests de sécurité dans le processus CI : cette démarche implique l'exécution d'outils d'analyse statique de la sécurité dans le cadre du processus de création des versions, ainsi que l'analyse de toute image de conteneur préconçu, afin d'identifier les failles de sécurité connues avant leur ajout au pipeline de versions.

  • Ajouter des tests automatisés de la sécurité au processus de test d'acceptation : il faut automatiser les tests de validation d'entrée, ainsi que les fonctions d'authentification et d'autorisation de vérification.

  • Automatiser les mises à jour de sécurité, comme les correctifs pour les failles connues : à réaliser dans le pipeline DevOps. Cette approche devrait permettre aux administrateurs de ne plus avoir à se connecter à des systèmes de production, tout en créant un journal des modifications documenté et traçable.

  • Automatiser les capacités de gestion de configuration des systèmes et des services : cette approche permet d'assurer la conformité vis-à-vis des politiques de sécurité et élimine par ailleurs les erreurs manuelles. Les audits et corrections devraient également être automatisés.

Les outils DevSecOps dont vous avez besoin

Red Hat Ansible Automation

Technologie d'automatisation informatique simple, sans agent, capable d'améliorer vos processus existants, d'assurer la migration des applications pour une optimisation plus efficace et de créer un langage commun à toutes les pratiques DevOps de l'entreprise.

Red Hat OpenShift

Plateforme qui intègre des fonctions de sécurité pour les applications conteneurisées, notamment des contrôles d'accès basé sur les rôles, des options d'isolation SELinux et des contrôles tout au long du processus de création du conteneur.

Illustration - mail

Ce type de contenu vous intéresse?

Inscrivez-vous à notre newsletter Red Hat Shares.