principes_devesops

4 avril 2023

La mise en pratique du DevOps a permis aux entreprises d'accélérer la livraison de leurs logiciels tout en veillant à ce que les aspects critiques du développement et des opérations soient pris en compte. Je vous explique ici comment la sécurité s'ajoute à cette méthodologie, on parle de DevSecOps

Qu'est-ce que le DevSecOps ?

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 à :

  • favoriser la collaboration entre les équipes DevOps et les équipes de sécurité
  • mettre en place un principe de Security as a Code et intégrer les préoccupations de sécurité dans le processus de développement logiciel

 

Comment adopter une approche DevSecOps ?

Pour adopter une approche DevSecOps, vous devrez vous concentrer sur 3 axes : les personnes, les processus et la technologie.

Les personnes

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.

Processus

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 :

  • des séances de travail collaboratives avec les équipes DevOps et de sécurité sur les modèles de vulnérabilité de l’entreprise
  • l'audit régulier des tests automatisés par des experts en sécurité
  • l'inclusion de fonctionnalités de sécurité dans le backlog de livraison des logiciels : 
    • inclure une évaluation de la sécurité de la fonctionnalité dans la”definition of ready” (liste des prérequis d’une tâche).
    • inclure un feu vert donné par les outils de test automatiques de sécurité dans la “definition of done” (liste des critères de validation d’une tâche).

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.

Technologie

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 :

  • les tests de sécurité automatisés
  • linters
  • les suites DAST/IAST/SAST
  • vérifications de vulnérabilité
  • outils de journalisation et de surveillance

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 :

  • les normes OWASP
  • Pratiques de codage sécurisé
  • l'activation du cryptage TLS (Transport Layer Security) par défaut 
  • forcer l'authentification API pour tous les clients (y compris les nœuds, les proxies...)

Quels sont les avantages que mon organisation peut attendre ?

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é.

Conclusion

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.