Si la pratique DevOps est maintenant bien connue et s’installe petit à petit dans beaucoup d’entreprises, elle n’est pas parfaite, et laisse certains aspects du développement de côté. C’est notamment le cas de la sécurité informatique, toujours séparée de la chaîne de production.
C’est pour combler ce manque qu’est apparue une nouvelle pratique : le DevSecOps ! Vous voulez en savoir plus sur ce paradigme, qui place la cybersécurité au centre du développement ? Comment cela fonctionne, et comment le mettre en place au sein d’une équipe ?
Suivez le guide !
DevOps et DevSecOps : le point sur ces pratiques
DevOps, la définition
Avant de parler de DevSecOps et de comment mettre en place ce concept, il est important de faire le point sur ce sur quoi il repose : le DevOps.
Le DevOps, contraction de dev (développement) et ops (opérationnel) est une pratique visant à simplifier et fluidifier les processus de développement et de déploiement.
On sépare souvent ces éléments : l’équipe de développement développe, et un expert ou une équipe spécifique s’occupe de l’infrastructure et du déploiement du produit.
Le DevOps vient casser cette barrière en mettant en place divers outils, comme des chaînes de déploiement CI/CD (intégration continue, déploiement continu), pour faire fusionner ces deux acteurs.
DevSecOps, qu’est-ce que c’est ?
Si le DevOps fait le lien entre le développement et l’opérationnel, le DevSecOps vient rajouter une troisième composante à cette chaîne : la sécurité.
Dans du développement classique, on gère séparément la sécurité informatique d’un produit du développement en lui-même. Ce sont des experts en cybersécurité, ou l’équipe QA (Quality Assurance) qui viennent vérifier qu’il n’y ait pas de faille.
Si cela permet de s’assurer de la bonne sécurité de ce qui est codé, l’expérience de développement n’est pas optimale. En cas de faille de sécurité, le produit doit retourner à l’étape du développement, pour être corrigé et repartir en test.
L’idée derrière le DevSecOps est de casser cette autre barrière, et d’inclure la couche sécurité dès le développement. La responsabilité du respect des règles de cybersécurité est dans ce cas partagée entre les développeurs et les experts en sécurité informatique.
Pourquoi et comment faire passer son équipe de DevOps à DevSecOps
Pourquoi évoluer vers du DevSecOps ?
Avant d’expliquer comment passer du DevOps au DevSecOps, il est important de comprendre en quoi cette pratique est intéressante.
Un gain de temps et d’argent
Le premier avantage de l’intégration de la politique DevSecOps au sein de l’équipe de développement, c’est un gain de temps et d’argent pour l’entreprise qui crée le produit.
Un gain de temps, car on évite ainsi les allers-retours entre le Dev et le Sec. En effet, chaque faille de sécurité détectée impose un retour à la case développement. Et chaque retour à la case développement prend du temps. On repart pour une boucle complète : identification du problème, recherche de la bonne pratique à implémenter, ajout du correctif, retour aux tests.
L’ajout de la couche sécurité dès le développement diminue, voire supprime, cette boucle fermée.
Cela génère aussi une économie financière. Non seulement via le gain de temps, mais aussi via un besoin moindre en QA.
Une sécurité des produits améliorée
Cela tombe sous le sens, l’intégration du DevSecOps à la logique de développement améliore la sécurité des produits.
Les développeurs connaissent mieux que quiconque leur code, et, s’ils sont formés à la cybersécurité, ils pourront le sécuriser de manière à éviter des failles qui pourraient même échapper aux testeurs chargés de s’assurer de la bonne sécurité du produit.
L’intégration de la sécurité dès la phase de développement permet de couvrir les failles les plus importantes, comme les 10 plus gros failles de sécurité informatique, listées chaque année par l’OWASP.
Une meilleure collaboration interne
Le dernier avantage principal à l’intégration du DevSecOps, c’est une meilleure collaboration entre les membres d’une équipe, ou entre les différentes équipes de production d’un produit.
La fusion du développement, de la sécurité et de l’opérationnel, notamment via du CI/CD, permet en effet d’améliorer la communication et la collaboration entre ces expertises, d’habitude compartimentées.
Au final, c’est le produit qui s’en voit amélioré.
Quels freins au DevSecOps ?
Si les avantages à se mettre au DevSecOps sont nombreux, cette transition est rarement fluide.
Casser les barrières entre ces 3 différentes étapes de développement, et surtout entre les trois équipes qui en sont responsables, n’est pas simple.
Au delà de l’utilisation de nouveaux outils et de l’implémentation de nouvelles pratiques techniques, c’est l’organisation complète qui doit changer. Les développeurs doivent inclure à leurs développements la couche sécurité, et les équipes QA et déploiement doivent s’intégrer à ce nouveau processus.
Tout cela peut provoquer de la friction et un temps d’adaptation conséquent. Aussi faut-il suivre quelques étapes pour effectuer cette transition sans heurts.
Les 3 étapes pour passer en DevSecOps
1 – Faire le point sur les besoins
La première étape pour mettre en place efficacement le concept DevSecOps, est de faire le point sur ses besoins !
Toutes les entreprises ou organismes ne développent pas les mêmes produits, et n’ont donc pas les mêmes problèmes ni besoins. Le niveau de sécurité à implémenter est complètement dépendant du projet. Un petit site e-commerce n’est pas aussi sensible que le système informatique d’une administration, par exemple.
Il est donc important de lister les besoins, les outils à mettre en place et les pratiques à changer.
Tout ce qui sera listé devra être expliqué clairement à ceux que ce changement va impacter (chefs de projet, développeurs, testeurs, etc.)
2 – Former les parties prenantes
La deuxième étape de la transition vers le DevSecOps consiste à former toutes les parties prenantes à cette nouvelle pratique.
Les développeurs freelance, par exemple, qui ne sont pas tous bien formés à la cybersécurité, vont devoir apprendre les bonnes pratiques et les outils pour les implémenter.
L’opérationnel va également devoir inclure les tests automatiques de sécurité à sa chaîne de déploiement. Et l’équipe Sec devra aussi changer ses méthodes de tests et de feedbacks.
3 – Itérer sur les nouvelles pratiques
Mettre en place le DevSecOps est une bonne chose, mais cette pratique nécessite un suivi constant. Implémenter un système de feedbacks est essentiel pour plusieurs raisons :
- le monde de la cybersécurité et ses menaces évoluent sans cesse, il faut s’y adapter ;
- de nouveaux outils de sécurité, de tests et d’automatisation apparaissent constamment ;
- le processus est rarement fluide dès le début, des retours constants permettent de rendre la chaîne de fonctionnement plus fluide.
Bref, le DevSecOps doit suivre une itération constante, au moins jusqu’à arriver à un fonctionnement fluide et qui convienne à toute les parties.
Conclusion
Le DevSecOps est donc une nouvelle pratique qui vient encore améliorer le DevOps, déjà créé pour fluidifier les différentes étapes de développement.
Comme nous l’avons vu, ce concept vient mettre la couche sécurité plus en avant dans la chaîne de production. Ainsi, on améliore la vélocité de développement, réduit les coûts et assure une meilleure cybersécurité du produit.
Il convient cependant de suivre quelques étapes pour mettre en place le DevSecOps, que nous avons détaillées dans cet article. De cette façon, la transition de DevOps vers DevSecOps se fera avec le minimum de frictions, et le maximum d’efficacité.