DevSecOps, l'importance d'une culture collaborative
Pour mettre en œuvre le DevSecOps, outre le changement des mentalités, il existe deux prérequis : automatiser les vérifications et mettre en place des garde-fous.
L'adoption de l'approche DevSecOps nécessite un changement radical de la culture au sein des entreprises. Or, rien n'est moins simple. Pour cela, les développeurs doivent désormais être placés au cœur de la stratégie de sécurité et les équipes dédiées doivent les considérer comme des clients. Il n’est donc plus exclusivement question de mise en conformité mais clairement d’une mission d’un genre nouveau dont l’objectif est de veiller à ce que la solution la plus simple pour les développeurs soit également celle qui respecte les meilleures pratiques. C’est en cela que réside toute la valeur ajoutée du DevSecOps qui permet de concevoir des produits pour faire des développeurs, des champions dans leurs domaines. Et, pour ce faire, outre le changement des mentalités, il existe deux prérequis : automatiser les vérifications et mettre en place des garde-fous.
Vérifications automatisées
Grâce à tout le suivi réalisé dans une chaîne d’approvisionnement logicielle sécurisée, il est possible d’automatiser l’essentiel de la vérification et de la gouvernance nécessaires aux équipes dédiées pour contrôler et lancer des applications en production. Pendant des années, ces vérifications se sont faites manuellement ; or, ce processus est consommateur de temps, fastidieux, et surtout source de bon nombre d’erreurs.
Heureusement, dans le cas du DevSecOps, l’automatisation réduit le niveau de gouvernance nécessaire. Il est dès lors plus simple de créer, par exemple, une nomenclature et de signer des images de conteneurs. Tous ces éléments peuvent être stockés dans un référentiel, voire inclus dans le processus de contrôle des versions suivantes. Ainsi, les équipes de sécurité peuvent créer des conceptions d’applications toujours plus intelligentes et des configurations respectant les meilleures pratiques en vigueur sans pénibilité.
L’automatisation de ces activités est simplifiée par la standardisation des infrastructures inhérente à Kubernetes. En effet, l’un des principaux objectifs de ce système est de définir une norme commune pour le cycle de vie des conteneurs mais également la configuration et l’application des politiques réseau ainsi que la personnalisation de l’environnement d’exécution. Ce modèle de développement permet à Kubernetes de gérer l’état des applications afin de refléter la configuration de l’application et de l’infrastructure en production. Il est même possible de le stocker et d’assurer un suivi des versions. Le simple fait de connaître l’état actuel du système est un grand pas en avant par rapport au sac de nœuds auquel la plupart des systèmes de production finissent par ressembler.
L’application des configurations effectuée par Kubernetes renforce entre autres les capacités de sécurité. Ainsi, en cas de dérive de configuration, la plateforme peut généralement arrêter, puis redéployer les applications dans leur état fiable et sécurisé. Sans résoudre tous les problèmes, cette fonctionnalité facilite le nettoyage de l’environnement de production et accélère le déploiement des correctifs. En outre, en redéployant ou en rebâtissant régulièrement l’environnement de production de A à Z, on laisse moins de temps aux acteurs malveillants pour sévir.
Des garde-fous pour plus de sécurité
L’adoption d’une plateforme DevSecOps permet aux équipes de sécurité de mettre en place des garde-fous afin qu’il soit plus simple pour les développeurs de suivre les meilleures pratiques. L’idée est de fournir des modèles de base d’applications sécurisées, et d’inclure des outils pour scanner le code et les images de la chaîne d’approvisionnement logicielle afin de de garantir l’intégration de code et de frameworks sécurisés.
De même, la journalisation des évènements est primordiale. Il s’agit d’une fonctionnalité cruciale de sécurité à incorporer à une plateforme donnée. Souvent, chaque équipe chargée des applications utilise ses propres formats et pratiques en la matière. Mais avec une plateforme DevSecOps centralisée, il est possible de standardiser la façon dont les fichiers journaux sont créés, stockés et récupérés. Ainsi, il n’y a plus besoin de perdre du temps à apprendre et à s’adapter au mode de journalisation de chaque application, à trouver des expressions régulières ingénieuses à la recherche d’erreurs, ou tout simplement à chercher comment mettre la main sur ces fichiers.
Enfin, le modèle Zero Trust offre lui aussi son lot de fonctionnalités de premier plan à intégrer à toute plateforme faisant de la sécurité un produit à part destiné aux développeurs. La plupart des applications sont conçues pour s’appuyer sur d’autres composants et services avec lesquels elles communiquent à travers un réseau. Auparavant, ces connexions étaient essentiellement sécurisées, car le réseau était considéré comme tel. Mais ce n’est plus vraiment le cas aujourd’hui, les développeurs utilisant toujours plus de services tiers. Il est donc nécessaire de s’assurer du bon fonctionnement de bout en bout du processus en réduisant les risques de sécurité de façon drastique.
Arriver à ce stade de perfectionnement nécessite un véritable changement culturel au sein des entreprises ainsi qu’un investissement dans des outils permettant d’améliorer la satisfaction du développeur et son rôle au sein de la structure valorisé. En effet, le cabinet IDC prévoit une pénurie de quatre millions de développeurs d’ici 2025 alors que le développement d’applications devient un enjeu stratégique pour les entreprises ; les talents se font de plus en plus rares et volatiles. Si une entreprise souhaite fidéliser ses développeurs, il est donc essentiel de libérer leur potentiel créatif pour donner toutes ses lettres de noblesse à une fonction qui est restée trop longtemps dans l’ombre. Le DevSecOps s’y emploie !