Le défi
Alors que l’équipe d’Helvetia entamait sa transition d’une pile de développement interne vers le cloud, il lui fallait accorder une attention renouvelée aux exigences de sécurité et obtenir une vue d’ensemble des risques liés à l’exécution de logiciels développés en interne sur une infrastructure cloud. La sécurité de leurs applications était gérée manuellement, notamment à l’aide de contrôles des dépendances OWASP et d’audits de sécurité externes. Cependant, leur environnement comptant de nombreuses nouvelles applications, le processus était trop lent. Dans le cadre du développement logiciel, l’équipe mettait en place des intergiciels et avait besoin d’un outil couvrant l’ensemble des dépendances. Elle souhaitait passer d’une approche de « protection », avec des tests de sécurité effectués tardivement, à la « détection » en amont du cycle de développement logiciel (SDLC), autrement dit décaler la sécurité vers la gauche. Pour cela, il lui fallait un outil capable de générer des rapports automatiquement. De plus, l’équipe juridique voulait une solution offrant une visibilité sur l’utilisation des licences dans leurs logiciels. La plateforme de détection devait répondre aux exigences suivantes :
Génération automatique de rapports sur :
Les vulnérabilités des dépendances utilisées
La gestion du cycle de vie
L’utilisation des licences
Une intégration au cycle de développement
Prise en charge native de :
L’analyse des images de conteneurs
L’analyse des dépendances du code
Des informations sur la correction des problèmes
L’intégration à Kubernetes / Openshift
L’analyse des dépendances dans leurs principaux langages de programmation
La conformité au SMSI et à la norme ISO 27001
La solution
Pour migrer les environnements d’exécution et de développement d’Helvetia vers une infrastructure cloud, l’équipe savait qu’elle devait disposer d’une vue d’ensemble et d’un état de santé de toutes les applications exécutées sur sa plateforme. Après avoir évalué plus de 20 fournisseurs au regard de ses critères, elle a compris qu’il lui fallait des plateformes matures comme AWS, Openshift et Snyk pour créer et développer la plateforme de conteneurs Helvetia.
Snyk répondait le mieux à leurs besoins, notamment en matière de gestion du cycle de vie et des licences. L’équipe d’Helvetia a également constaté que Snyk prenait en charge ses principales dépendances, notamment Java/Maven, TypeScript/NPM, Python et .NET. Pour les développeurs, elle souhaitait un outil utilisable simplement via une CLI et intégré à leur IDE, IntelliJ. L’intégration à Bitbucket Server était également essentielle pour analyser directement les dépôts depuis Bitbucket. Enfin, l’intégration complète au pipeline CI/CD était indispensable pour tester chaque build et les avertir en cas de non-respect de leurs exigences internes.
De plus, le modèle tarifaire de Snyk permettait à Helvetia de commencer modestement, en fonction du nombre d’utilisateurs, puis de monter en charge au fil du temps. C’était important, car l’entreprise pouvait ainsi effectuer sa transition progressive vers le cloud et faire évoluer Snyk à mesure que ses besoins augmentaient.
L’impact
Depuis le déploiement de Snyk, l’équipe peut détecter automatiquement les problèmes de cycle de vie dans les logiciels développés en interne et utiliser les rapports Snyk pour contrôler certaines dépendances. Elle peut également intégrer les dépendances utilisées à un niveau d’abstraction supérieur dans son outil de gestion du cycle de vie, LeanIX. Cela lui permet de suivre l’utilisation des dépendances et de repérer les problèmes liés à leur fin de vie.
Le directeur technique exige la réalisation d’un test de sécurité avant chaque audit. Ces tests peuvent révéler de nombreux problèmes, mais leur gestion prend du temps. Snyk permet désormais de traiter les problèmes les plus faciles à corriger, afin que l’équipe puisse donner la priorité aux tests d’intrusion et aux audits des applications critiques.
L’équipe d’Helvetia dispose désormais d’une visibilité sur l’état de santé de ses applications, et ses équipes de développement ont les outils nécessaires pour mieux évaluer les composants tiers utilisés dans leurs applications. Cette approche permet d’assurer la sécurité en continu. Pour reprendre les mots de Björn :
« Nous devons assurer la qualité pendant le développement, et Snyk nous y a aidés. Nous ne serions pas arrivés aussi loin sans un outil comme Snyk. »
Intégration de Red Hat OpenShift à Snyk
L’équipe utilise actuellement l’intégration de Snyk Container à OpenShift pour analyser les charges de travail exécutées dans des conteneurs et travaille à la définition de l’architecture des applications exécutées sur OpenShift.
Comme l’équipe d’Helvetia n’a pas d’expérience du cloud sur AWS ou Azure, elle a cherché une plateforme capable de lui indiquer ce que fait son fournisseur cloud et comment il fonctionne. Elle ne voulait pas être liée à un fournisseur cloud. Comme l’explique Björn : « Openshift nous apporte cette solution. Nous avons peu d’expérience des conteneurs, et Openshift nous permet de les gérer avec des mécanismes de sécurité intégrés, ce qui est essentiel pour une entreprise comme la nôtre. »
Openshift est l’un des environnements d’exécution de conteneurs qui évite à l’équipe de devoir tout créer elle-même. La plateforme offre également de nombreux avantages pour améliorer l’expérience des développeurs. Elle permet de masquer ou d’abstraire certains détails de l’infrastructure cloud dans l’interface cloudshift, sans avoir à se soucier de ce qui se passe en coulisses. Cela a dissipé les inquiétudes liées aux bibliothèques et aux bases de données, tout en offrant davantage de visibilité aux développeurs.
