La méthode DevOps a éliminé le goulot d'étranglement des ops dans le circuit de livraison, permettant ainsi un déploiement plus rapide en production. Elle a aussi amélioré la boucle de feedback des opérations, donnant aux développeurs plus de contrôle sur leur code en production. Cependant, l'accélération de la livraison peut également signifier un déploiement plus rapide des failles de sécurité.
Cela oblige l'organisation à repenser ses politiques de sécurité, en répondant à la nécessité d'une surveillance constante des failles de sécurité tout en évitant que cette surveillance ne devienne un goulot d'étranglement.
Le DevSecOps c'est donc une extension de >l'approche DevOps, qui considère la sécurité comme une responsabilité partagée qui doit être intégrée au processus de développement dès le début.
On peut la considérer simplement comme du "DevOps bien fait" : le modèle de travail collaboratif du DevOps vise à créer une culture qui rassemble les développeurs et les ops pour briser les silos. Le DevSecOps ajoute l'équipe de sécurité à la discussion, pour permettre une livraison rapide, efficace et sécurisée du software.
En substance, le DevSecOps vise à :
Pour adopter une approche DevSecOps, vous devrez vous concentrer sur 3 axes : les personnes, les processus et la technologie.
Aucun investissement en formation et en outils ne permettra à votre organisation de passer à une approche DevSecOps si les personnes au cœur de cette collaboration ne sont pas intéressées.
La première étape consiste à désigner un "security champion" volontaire dans chaque équipe. Cette personne est un développeur qui estintéressé par le renforcement de la posture de sécurité de l'entreprise mais qui n’a pas nécessairement de formation dessus.
Il sera le référent pour les choix de sécurité dans l'équipe, chargé de soulever les questions en rapport à la sécurité lors de la définition du backlog et répondra aux interrogations de l’équipe en matière de sécurité.
La deuxième étape consiste à créer un réseau de security champions au sein de l'organisation. Le but est ainsi de partager leurs connaissances et répondre aux questions des autres, par exemple sous la forme d'une guilde de la sécurité. Dans les grandes organisations (plus de 10 équipes), des rôles de défenseurs de la sécurité peuvent émerger des security champions pour ajouter une couche de coordination et d'expertise.
Les questions de sécurité remonteront alors la chaîne d'Andon, de l'équipe aux champions/conseillers en sécurité, et finalement à l'équipe de sécurité si nécessaire. Ce système garantit que chaque couche en apprenne le plus possible sur les problèmes rencontrés. Cela permet de s'améliorer continuellement (kaizen), d'accroître la sensibilisation aux problèmes de sécurité et de réduire le temps nécessaire pour les résoudre.
Les résultats entraînés par l’approche DevSecOps sont rendus possible par la modification des processus existants pour permettre la collaboration entre les équipes DevOps et de sécurité.
En particulier, les mesures qui auront le plus d'impact pour votre organisation sont les suivantes :
Plus généralement, l'élaboration du process DevSecOps est un effort itératif. Cela commence par l'expérimentation d'un process collaboratif entre les deux équipes à une étape donnée de la livraison du software. Il est suivi par l'encadrement du process convenu résultant de cette expérimentation et enfin par un audit de sécurité du process standard établi.
Ce process peut ensuite être appliqué par une variété d'équipes dans une variété de contextes, et affiné selon les principes de la méthodologie agile. L'utilisation d'un process standard réduit le risque d'introduire des failles de sécurité dans la méthodologie.
L'adoption d'une approche DevSecOps implique d'ajouter une variété de solutions et de meilleures pratiques de sécurité à la boîte à outils DevOps.
Tout d'abord, vous souhaitez automatiser la sécurité à toutes les étapes de la livraison du software. Pour ce faire, vous devez ajouter des outils de sécurité, agiles et devops, à votre pipeline CI/CD, tels que :
Ensuite, vous souhaitez intégrer la sécurité dès la conception dans votre gouvernance. Pour ce faire, vous devez mettre en œuvre des normes et des bonnes pratiques, telles que :
Premièrement, l'adoption d'une approche DevSecOps améliore la sécurité globale de votre produit. Cela se traduit par une augmentation de la qualité et de la robustesse de ce dernier.
Le déplacement à la marge des contrôles de vulnérabilité permet ensuite à votre organisation de les découvrir et de les corriger à un stade précoce. Il en résulte des corrections moins stressantes et moins complexes, ainsi qu'une réduction des coûts encourus.
Enfin, l'intégration de la sécurité dans le process de delivery renforce également votre posture de sécurité et permet des déploiements plus fréquents avec moins d'opérations manuelles : 61 % des organisations ayant une culture DevSecOps mature déclarent être en mesure de déployer à la demande, contre 46 % (voir le rapport 2019 State of DevOps de Puppet) en moyenne. En supprimant le goulot d'étranglement de la sécurité, l'adoption d'une approche DevSecOps accélère la livraison de vos produits, ainsi que les transformations liées à la sécurité et à la conformité.
Le DevSecOps est une culture qui considère la collaboration entre les équipes de développement, d'exploitation et de sécurité comme le fondement d'une livraison efficace et robuste des produits.
Sa mise en œuvre nécessite un changement de culture, de technologie et de process. Mais elle représente une étape vers une plus grande collaboration entre les parties prenantes du projet et l'utilisation de l'automatisation pour garantir que les pratiques de sécurité sont intégrées par défaut dans le produit.
Outre une meilleure sécurité pour le produit lui-même, une approche DevSecOps permet également une meilleure coopération, une livraison plus rapide des produits et une confiance accrue dans la posture de sécurité globale.