In this article
DevOps devient DevSecOps !
On entend parfois dire que DevOps est surestimé. Mais imaginez l’alternative : ne pouvoir publier des mises à jour d’applications qu’une fois par mois, voire une fois par trimestre.
Les consommateurs d’aujourd’hui attendent des entreprises qu’elles répondent rapidement à leurs demandes sans sacrifier la qualité. De même, les entreprises doivent pouvoir s’adapter rapidement aux attentes des clients et du marché tout en restant rentables. Ces exigences ont favorisé l’adoption des méthodes de développement Agile, qui ont à leur tour donné naissance à DevOps : une communication et une collaboration étroites entre les équipes de développement logiciel et d’exploitation informatique, au service de cycles de développement plus courts et d’une livraison continue.
DevOps a apporté de nombreux avantages aux organisations, notamment une fréquence de déploiement accrue et une meilleure efficacité. Le problème, c’est la place de la sécurité. Il est nécessaire de dépasser une approche purement DevOps et d’intégrer la sécurité au cycle de développement. Cette combinaison a naturellement fait évoluer DevOps vers DevSecOps.
Pourquoi DevSecOps est l’avenir de la cybersécurité
Le concept même de « DevOps » est apparu en 2009, lors d’une présentation intitulée « 10+ Deploys a Day: Dev and Ops Cooperation at Flickr ». Toutefois, les pratiques et la culture DevOps sont issues de la méthode de production au plus juste mise au point par Toyota. Le système de production Toyota repose sur plusieurs principes clés que l’on retrouve dans DevOps : l’automatisation avec une intervention humaine, l’amélioration continue et la production juste-à-temps.
Comme dans l’industrie automobile, ces principes ont permis de déployer rapidement du code à grande échelle tout en préservant la qualité. Cependant, pour plusieurs raisons, les processus de sécurité traditionnels ne permettent pas de sécuriser efficacement les applications modernes développées selon les pratiques DevOps.
Rythme du changement : l’adoption de DevOps, conjuguée aux infrastructures cloud, a considérablement accéléré le rythme des changements dans un environnement donné. Les technologies et processus de sécurité traditionnels ont été conçus pour les infrastructures sur site et les mises en production en cascade.
Développement cloud-native : la sécurité des réseaux sur site reposait sur l’hypothèse d’un périmètre bien défini. L’architecture cloud présente une surface d’attaque plus étendue et un périmètre moins clairement délimité.
Conteneurisation et Infrastructure as Code : la généralisation de la conteneurisation et de l’Infrastructure as Code (IaC) signifie que les applications définissent généralement la configuration des conteneurs et de l’infrastructure sur lesquels elles s’exécutent. Cela crée un risque de mauvaise configuration, mais les processus de sécurité traditionnels ne prennent pas en compte la sécurité des conteneurs et de l’IaC. L’accélération des changements, la nature cloud-native des applications modernes ainsi que la conteneurisation et l’IaC font que les développeurs sont de plus en plus responsables de la sécurité du code qu’ils publient. La sécurité joue donc désormais un rôle central dans DevOps.
Comment la culture a-t-elle évolué de DevOps à DevSecOps ?
Voici plusieurs aspects de l’évolution de DevOps vers DevSecOps et de son impact sur les workflows et les outils de développement modernes.

Sécurité Agile
L’approche en cascade fait progresser efficacement les logiciels, de la conception et du codage jusqu’aux tests. Mais si ceux-ci révèlent des problèmes, de sécurité ou autres, les développeurs doivent revenir à la phase de conception. Cette approche peut retarder les projets et contraint également les développeurs à utiliser des fonctionnalités de sécurité conçues au début du processus.
La sécurité Agile intègre la sécurité et d’autres pratiques de test logiciel le plus tôt possible dans le cycle de développement, ce qui permet de détecter les vulnérabilités pendant le codage. Elle permet aussi aux équipes DevOps d’intégrer la sécurité et la modélisation des menaces à chaque sprint, réduisant ainsi la complexité des mesures de sécurité.
Automatisation
L’automatisation est souvent associée aux pipelines d’intégration continue et de livraison continue (CI/CD), qui permettent d’intégrer le code dans une branche unique, puis de le déployer en production de façon rationalisée. Ces processus étant répétitifs, ils se prêtent particulièrement bien à l’automatisation. Les pipelines CI/CD automatisés réduisent le risque d’erreurs manuelles, permettent aux développeurs d’intégrer les tests plus tôt dans le cycle de développement (et donc de détecter les problèmes plus rapidement) et facilitent la publication de changements de moindre ampleur, qui présentent moins de risques pour le système. En revanche, les pipelines CI/CD et les innovations connexes, comme les logiciels open source et les conteneurs, ont multiplié le volume de logiciels à gérer.
Tester et vérifier manuellement chaque composant logiciel n’est ni pratique ni fiable. Il est donc important d’intégrer une forme d’automatisation de la sécurité aux pipelines CI/CD. Celle-ci peut être mise en œuvre à l’aide d’outils SAST et SCA qui analysent le code et transmettent leurs résultats aux développeurs. Ces tests automatisés évitent que les retours sur la sécurité ne deviennent un obstacle ou ne ralentissent le pipeline, et constituent une base pour adopter une approche DevSecOps de la livraison d’applications.
Sécurité de l’IaC et des conteneurs
Les conteneurs et l’IaC permettent aux développeurs de configurer l’infrastructure et les conteneurs dans lesquels s’exécutent les applications. Ils maîtrisent ainsi davantage les environnements de déploiement, sans avoir à demander aux équipes d’infrastructure de créer de nouveaux serveurs ou de configurer manuellement les systèmes. Cela aide à éviter les erreurs difficiles à repérer dans la configuration et la maintenance de l’infrastructure, mais introduit aussi de nouveaux vecteurs d’attaque potentiels, comme les mauvaises configurations et les images de base non sécurisées.
Dans une approche DevSecOps, la sécurité de l’IaC et des conteneurs implique de vérifier le code et d’appliquer des politiques directement dans les workflows des développeurs. Cela comprend les tests continus de l’IaC pour détecter les mauvaises configurations, l’analyse des images de conteneurs, leur mise à niveau automatique vers des images plus sécurisées lorsque c’est possible, ainsi que la surveillance des environnements en production pour repérer les dérives de configuration et transmettre directement les résultats aux développeurs.
Sécurisez vos applications gratuitement
Sécurisez votre code, vos dépendances, vos conteneurs et votre infrastructure as code avec Snyk
Politiques sous forme de code
Traditionnellement, les politiques que doivent respecter les développeurs et les administrateurs étaient rédigées et appliquées à l’aide de workflows et d’outils manuels. Elles couvraient notamment l’allocation des ressources, les utilisateurs autorisés à accéder à ces ressources, et bien d’autres aspects. Les politiques sous forme de code intègrent les politiques de sécurité à DevSecOps en les documentant sous forme de code. Elles permettent d’automatiser les procédures de correction, l’analyse, les contrôles d’accès et d’autres politiques de sécurité tout au long du pipeline CI/CD.
Des outils pensés pour les développeurs
Il est important de noter que, comme DevOps, DevSecOps n’impose aucun outil particulier. C’est avant tout une approche culturelle de la sécurité des applications. Toutefois, certains outils sont indispensables à sa mise en œuvre efficace, en particulier ceux qui donnent aux développeurs les moyens d’assumer la responsabilité de la sécurité des applications et ceux qui favorisent la collaboration entre les équipes de développement, de sécurité et d’exploitation. Ils favorisent une approche de sécurité intégrée dès le début du cycle, avec des tests et des retours le plus tôt possible dans les pipelines de développement existants.
Intégrer la sécurité plus tôt facilite la correction des problèmes détectés dans le code et en réduit le coût. Cela permet de définir et d’appliquer des normes de codage sécurisé, afin de détecter et de corriger les vulnérabilités plus tôt. En outre, cette approche réduit les frictions entre les équipes de développement et de sécurité, qui surviennent lorsque ces dernières découvrent des problèmes en production et doivent solliciter les développeurs pour les corriger.

L’importance de donner la priorité aux développeurs en matière de sécurité
Snyk a reconnu le rôle grandissant des développeurs dans l’évolution de l’approche DevSecOps en matière de sécurité et a conçu ses solutions de sécurité des applications cloud-native pour leur fournir les outils adaptés à leur mission. L’approche traditionnelle, qui consiste à faire examiner le code par les équipes de sécurité à la fin du processus de développement — ou en production — crée des goulots d’étranglement et des inefficacités incompatibles avec le modèle DevOps. Les applications elles-mêmes ont évolué et intègrent désormais des composants open source ainsi que des configurations pour les conteneurs et l’IaC. Les outils de Snyk permettent aux développeurs d’intégrer la sécurité au processus de développement et d’améliorer automatiquement et de manière intégrée la posture de sécurité de chaque composant d’une application.
Pour découvrir des exemples concrets d’organisations qui ont adopté DevSecOps, découvrez notre page « Share the Journey ».
FAQ :
Qu’est-ce que DevOps ?
DevOps est une culture et une méthodologie de développement modernes qui favorisent une communication et une collaboration étroites entre les équipes de développement logiciel et d’exploitation informatique. Les développeurs peuvent ainsi publier des logiciels selon un modèle Agile, caractérisé par des cycles de développement plus courts, une livraison continue et des boucles de rétroaction rapides.
Qu’est-ce que DevSecOps ?
DevSecOps est l’évolution naturelle de DevOps. Les approches de sécurité traditionnelles ne permettent pas de sécuriser efficacement les applications développées selon les méthodes DevOps. DevSecOps intègre les équipes de sécurité aux processus DevOps afin que la sécurité soit intégrée aux applications dès leur développement.
Quelle est la différence entre DevOps et DevSecOps ?
DevOps vise à améliorer le processus de développement des applications du point de vue des développeurs, tandis que DevSecOps intègre la sécurité au processus DevOps. DevSecOps est une approche plus moderne et pérenne du développement logiciel pour les applications cloud-native d’aujourd’hui.
Quels sont les avantages de DevSecOps par rapport à DevOps ?
Les méthodes DevOps accélèrent les cycles de publication et aident les développeurs à répondre à des attentes client toujours plus élevées, mais relèguent souvent la sécurité au second plan. DevSecOps remédie à cela en intégrant la sécurité aux workflows et aux outils de développement.
DevOps vs DevSecOps vs SecDevOps
DevSecOps intègre la sécurité aux processus DevOps, tout en donnant la priorité au développement. SecDevOps, en revanche, veille à ce que les processus de développement intègrent la sécurité dès les premières phases de planification et de conception, jusqu’au déploiement. SecDevOps est l’évolution naturelle de DevSecOps, qui répond à la nature changeante et rapide des menaces modernes en matière de cybersécurité.