QimTech

DevSecOps : intégrez la sécurité dans le DevOps

Sommaire

Vous avez déjà mis en place l’approche DevOps dans vos équipes et souhaitez renforcer la sécurité en évoluant vers le DevSecOps ?
Cet article vous présentera le DevSecOps, ses enjeux et ses avantages. Avec un ensemble de bonnes pratiques et quelques conseils, vous pourrez intégrer la sécurité dans vos processus d’entreprise.

Qu'est-ce que le « DevSecOps » ?

Le DevSecOps, Development Security and Operations, est une évolution de l’approche DevOps. Mise en lumière à la suite de l’augmentation de la cybercriminalité, cette nouvelle culture a pour but d’intégrer la sécurité plus tôt et à chaque étape du cycle de vie DevOps.

Le DevSecOps repose sur une stratégie appelée « Shift Left », visant à prendre en compte les problématiques de sécurité dès les premières étapes du cycle de vie du développement logiciel.

La stratégie « Shift Right », opposée à celle du « Shift Left », permet de se focaliser sur la sécurité après le déploiement. Cela permet d’identifier des vulnérabilités difficilement prévisibles et n’étant pas apparues dans l’environnement de développement.

Ce schéma est un aperçu des multiples processus et mesures qu’il est possible de mettre en place, mais dans un premier temps apprenons à bien différencier DevOps et DevSecOps.

DevOps et DevSecOps : quelles différences ?

Un objectif supplémentaire

La différence majeure entre DevOps et DevSecOps est l’ajout de l’objectif de sécurité.
Dans le DevOps, l’application de la sécurité est un processus distinct. En général, elle consiste en une checklist vérifiée juste avant ou après le déploiement pour valider en une fois le respect des critères de sécurité.
Cependant, avec le DevSecOps la conformité aux exigences de sécurité doit s’effectuer le plus tôt possible et être intégrée à la chaine.

Proactif VS réactif

Le type de mesures de sécurité change également.
Dans l’approche DevOps, les mesures sont réactives. Dans une majorité des cas leur mise en place fait suite à des incidents de sécurité.
Cependant, le DevSecOps est une approche de la sécurité proactive. La planification et l’implémentation de mesures préventives a pour but de réduire les risques.

Décloisonnement d'un troisième silo

La dernière différence est humaine et organisationnelle.
Le DevOps vise à abattre le mur de la confusion entre Devs et Ops afin de favoriser leur communication et collaboration. Cependant, les Secs restent à l’écart.
Dans l’approche DevSecOps, les trois équipes sont toutes responsables de la sécurité. Pour cela, les Secs doivent être intégrés au cycle DevOps, et la responsabilité de la sécurité doit être partagée entre les différents acteurs du cycle. La communication et la collaboration doit être entre trois et non plus deux équipes.

Les enjeux majeurs du DevSecOps

Le premier enjeu du DevSecOps est d’adopter une culture de la sécurité. En effet, chaque intervenant de la chaine DevSecOps doit en être un acteur. Cependant, de nombreux métiers et personnes se côtoient, tous avec un rapport et un vécu différent avec la sécurité. L’objectif est donc de sensibiliser et d’apporter à chacun des connaissances de base et adaptées à leur domaine.

Un autre défi est la sécurisation de systèmes toujours plus complexes. Selon un rapport Cisco de 2022, 82% des personnes interrogées avaient un environnement cloud hybride et 92% utilisaient un modèle multi-cloud. Ceci ajouté à l’augmentation depuis plusieurs années du nombre de conteneurs et de leur orchestration, les systèmes rassemblent aujourd’hui de multiples briques technologiques à sécuriser. L’objectif est donc de faciliter la sécurisation avec une mise en place plus ciblée et progressive.

Le dernier enjeu est la conciliation de fortes contraintes de sécurité avec un Time to Market (TTM) le plus faible possible. La diminution du TTM est en effet un des objectifs du DevOps. Cependant, il peut être augmenté si des tests de sécurité pré-déploiement détectent des vulnérabilités nécessitant de lourds changements et des retours en arrière. L’objectif du DevSecOps est donc de mieux maitriser et anticiper le TTM en mettant en place la sécurité de manière progressive.

Maintenant que nous avons conscience de ses enjeux, voyons quels sont les avantages du DevSecOps.

Les avantages à travailler selon cette approche

La mise en œuvre de cette nouvelle approche peut apporter de nombreux avantages.Le premier est la meilleure maitrise des temps et de coûts. Une considération en amont des problématiques de sécurité et de leur résolution permet d’éviter les mauvaises surprises. Avec le DevSecOps l’instauration des mesures de sécurité est planifiée et chiffrée, évitant les correctifs coûteux et chronophages.

Le DevSecOps permet également d’augmenter la confiance et la satisfaction client. En effet, la sécurité est maintenant une priorité et est considérée comme un critère de qualité. Les clients ont l’assurance d’avoir un produit conforme aux obligations légales et autres exigences de sécurité.

Cette approche est également bénéfique pour les équipes techniques car elle fluidifie la mise en œuvre de la sécurité. Des retours en arrière avec des changements conséquent peuvent être mal accueillis et mal compris par les équipes. La mise en place progressive de mesures légères permet de conserver l’agilité des équipes.

Enfin, n’oubliez pas que le principal avantage est l’augmentation et l’amélioration de la sécurité. Evitez les conséquences désastreuses que votre entreprise pourrait subir, par exemple lorsqu’elle devra faire face à un vol ou une perte de données.

Bénéficier de ces avantages nécessite cependant la mise en œuvre des bonnes pratiques suivantes.

Les bonnes pratiques DevSecOps

Sensibiliser et former les équipes

Le DevSecOps étant une nouvelle culture, l’implication des équipes dans sa mise en place est indispensable. Pour cela, il est important qu’elles soient sensibilisées et formées aux thématiques les concernant. Elles intégreront alors de nouvelles habitudes de sécurité, par exemple une bonne gestion des secrets. Celle-ci est moins complexe à mettre en œuvre que d’autres pratiques mais peut néanmoins générer des vulnérabilités critiques.


Cas Uber

Uber a subi une fuite de données en 2016 à la suite de l’utilisation d’un identifiant et d’un mot de passe d’accès à AWS dans du code stocké sur GitHub. L’entreprise a payé 100 000$ aux hackers pour la non divulgation des données.

Planifier la sécurité

Afin d’intégrer la sécurité le plus tôt possible dans le cycle, il est nécessaire d’anticiper sa mise en œuvre. Pour cela, effectuer une phase de réflexion et d’analyse permet d’identifier les potentielles menaces et risques du projet, et de déterminer si des contre-mesures sont nécessaires. C’est lors de cette étape que les tests de sécurité sont choisis et planifiés.

Automatiser des tests de sécurité

Ils permettent l’identification de vulnérabilités aussi bien dans les images de conteneurs et le code tiers, que dans le formalisme et le comportement en exécution du code source.

Leur automatisation tout au long du cycle permet d’allouer plus de temps aux équipes pour la réalisation de tâches à forte valeur ajoutée.

Mettre en place un monitoring de sécurité

Il est également nécessaire de surveiller les évènements de sécurité. Pour cela, le système de monitoring doit obtenir diverses informations et les corréler, afin de détecter les menaces et les incidents de sécurité. Après leur identification, le système de monitoring doit être en mesure d’émettre des alertes. Enfin, l’état de la sécurité du système doit pouvoir être visualisé.
Intégrer ces bonnes pratiques ne garantit cependant pas la bonne mise en œuvre du DevSecOps.

Comment mettre en oeuvre cette approche dans votre entreprise ?

La mise en place de l’approche DevSecOps est similaire à celle du DevOps. Il faudra donc adopter cette nouvelle culture et intégrer ses nouveaux processus et outils.

Cas Datadog

Des ingénieurs en sécurité ont intégré temporairement des équipes de développement afin de sensibiliser à la sécurité. Cela a permis de faire comprendre aux Devs que les Secs étaient là en support, pour les aider à améliorer la qualité de leur code en améliorant leur sécurité. Ceci a également permis de faire prendre consciences aux Secs qu’ils pouvaient manquer d’agilité et être bien trop lents par rapport au rythme de production des développeurs. 

L’objectif a alors été d’automatiser la sécurité grâce à des outils. Plusieurs constats se sont imposés : 

  • Les feedbacks de tests de sécurité doivent être rapide pour garder le rythme des Devs.
  • Les alertes ne doivent pas forcément être envoyées aux équipes de sécurité. Certaines peuvent être envoyées aux Devs avec des indications de résolution. 


Après avoir utilisé les outils du marché, ils ont décidé de créer leurs propres outils de tests statiques et d’analyses de la composition logicielle, plus adaptés à leurs besoins. 

Conclusion

L’approche DevSecOps a donc pour objectif d’intégrer la sécurité tout au long de la chaine DevOps. Cela facilite la sécurisation de systèmes critiques ou complexes et améliore la satisfaction client ainsi que la maitrise des coûts.

Cependant, cette approche n’est pas adaptée à tous les projets. Le choix de sa mise en œuvre doit s’effectuer après avoir analysé le système et ses besoins de sécurité. De plus, tous les outils et processus DevSecOps ne conviennent pas à tous les projets. Le niveau de sa mise en œuvre dépendra également d’autres facteurs tels que les compétences des équipes, le temps et les moyens alloués au projet.

Notre département Cloud & DevOps Solutions se tient à disposition pour échanger à propos de vos projets concernant le DevSecOps et vous accompagner dans sa mise en place.

Ces articles peuvent également vous intéresser…