Les options de sécurité IaC aident à réduire les risques de développement logiciel
Avec le passage au développement d’applications cloud natives, les développeurs utilisent de plus en plus l’infrastructure en tant que code pour provisionner leur propre infrastructure et leurs propres applications. Bien que l’IaC apporte une facilité et une rapidité sans précédent au provisionnement, il a des implications en matière de sécurité qui doivent être prises en compte pour réduire les risques.
Contexte et développement d’IaC
Avant l’avènement du cloud, le provisionnement de l’infrastructure nécessitait que les administrateurs système configurent manuellement l’infrastructure informatique pour provisionner les serveurs et configurer les paramètres de réseau et de sécurité, les sous-réseaux et les passerelles. Au début de l’utilisation du cloud, des outils IaC tels qu’Ansible (qui fait désormais partie de Red Hat), Puppet, Chef et Salt se sont concentrés sur la simplification de la gestion et du déploiement de l’infrastructure pour les environnements cloud. Ces outils géraient les ressources des applications, y compris les serveurs, les bases de données, les réseaux, les journaux, les détails de déploiement des applications et les configurations. Ces outils IaC ont été conçus pour les ingénieurs en infrastructure, mais pas pour les équipes de développement d’applications.
Les nouveaux outils disponibles aujourd’hui, tels que Terraform de HashiCorp, CloudFormation d’AWS, les manifestes Kubernetes et Helm Charts, permettent aux développeurs d’applications de créer et d’utiliser des fichiers de configuration déclaratifs IaC pour gérer les services cloud via des API. Les développeurs peuvent écrire du code eux-mêmes ou utiliser des modèles, des scripts et des politiques préexistants provenant de communautés et de bibliothèques.
Les développeurs peuvent utiliser IaC dans leurs processus de développement lorsqu’ils écrivent, testent et exécutent leur code logiciel, améliorant ainsi ces nouveaux outils pour les processus d’intégration et de déploiement continus et les principes DevOps. IaC fournit un flux de travail d’interface de ligne de commande pour gérer les ressources cloud des développeurs. Si les développeurs souhaitent apporter des modifications ou démonter l’infrastructure, ils peuvent coder, tester et déployer les modifications eux-mêmes.
La question de la sécurité, cependant, n’a pas été abordée – pour le moment.
Défis de sécurité IaC
Les développeurs ont une solide expertise dans la création d’applications, mais leur expérience varie en termes de provisionnement et de test d’IaC et de sécurisation de l’utilisation d’IaC. Bien qu’il soit facile d’extraire du code à partir de modèles prédéfinis, le résultat peut être un mélange de code copié-collé. À moins que les développeurs ne soient des experts dans une base de code IaC donnée, il peut être difficile de trouver des problèmes, et même de petites erreurs peuvent laisser des données précieuses exposées. Et, à mesure que l’utilisation de l’IaC augmente dans toutes les équipes, le risque d’erreurs augmente.
Des outils de test IaC open source sont disponibles, mais la plupart des développeurs ne veulent pas avoir à les identifier et à apprendre à les utiliser, ni à devenir des experts en IaC ou en sécurité.
Les équipes de sécurité doivent travailler avec les développeurs pour garantir une mise à l’échelle sûre de l’utilisation d’IaC. La définition de normes de sécurité et l’automatisation des tests peuvent aider les développeurs à détecter et à corriger les erreurs de configuration avant leur déploiement. Cela permet également de réduire les charges de travail en diminuant le nombre d’erreurs de configuration qui se retrouvent dans les environnements de production.
Produits de sécurité IaC
Il est important que les développeurs appliquent de manière cohérente des pratiques sécurisées tout au long du cycle de vie du développement logiciel. Les produits de sécurité IaC peuvent fournir aux équipes de sécurité une visibilité et un contrôle pour la définition de politiques et de normes afin d’éviter les erreurs de configuration, tout en automatisant simultanément les tests dans les flux de travail des développeurs. Cela garantit non seulement que les développeurs utilisent IaC en toute sécurité, mais empêche également les erreurs de configuration, réduit les vulnérabilités qui pourraient exposer les données et réduit les cycles de travail de correction coûteux.
Alors que certains fournisseurs et outils open source se concentrent sur les tests de sécurité IaC et la création de politiques, il est plus courant de considérer la sécurité IaC comme une fonctionnalité des produits de sécurité des applications, de gestion de la posture de sécurité du cloud ou de gestion des vulnérabilités. Les fournisseurs intègrent la sécurité IaC dans leurs offres de produits en acquérant des startups, en créant leurs propres produits ou parfois en utilisant des outils open source disponibles. Les fonctionnalités de sécurité IaC intégrées peuvent aller des tests de sécurité des applications statiques de base (SAST) à la gestion des politiques, en passant par l’émission de mesures correctives et le partage des données collectées à partir d’autres produits de sécurité.
Voici quelques exemples de mouvements de sécurité IaC sur le marché :
- Snyk a ajouté des capacités IaC à ses offres.
- Checkmarx a créé Keeping IaC Secure, ou KICS, un outil de test IaC open source.
- Synopsys Inc. a déployé Rapid Scan SAST pour IaC.
- L’acquisition de DivvyCloud par Rapid7 en 2020 incluait la sécurité IaC.
- Palo Alto Networks a acquis Bridgecrew en 2021 pour ajouter des capacités IaC à Prisma Cloud.
- Tenable Inc. a acquis Accurics.
- Lacework a acquis Soluble.
- Qualys Inc. a annoncé ses propres fonctionnalités de sécurité IaC dans son produit de surveillance cloud CloudView.
Alors que l’utilisation d’IaC continue de croître, nous considérons les listes de contrôle de sécurité IaC comme un moyen efficace de réduire les risques pour le développement de logiciels modernes. En mettant en œuvre les bons outils et produits de sécurité IaC, les organisations peuvent empêcher le déploiement de mauvaises configurations, ce qui réduit le risque d’exposer des données précieuses de l’entreprise ou des clients.