Skip to main content

Analyser les modèles ARM à la recherche d’erreurs de configuration avec Snyk CLI

Écrit par

Lauren Place

blog feature iac cli arm

10 novembre 2021

0 minutes de lecture

Gérer des ressources applicatives à grande échelle peut s’avérer complexe. C’est pourquoi de nombreuses équipes DevOps et AppSec privilégient un framework déclaratif plutôt que d’écrire des scripts individuels pour déployer et gérer leurs ressources, et en contrôler les accès.

Dans les environnements Azure, Azure Resource Manager (ARM) est la couche de gestion qui permet aux équipes de gérer leur infrastructure as code (IaC) à l’aide de modèles ARM déclaratifs. Elle permet de centraliser la gestion, le déploiement et la sécurité des ressources Azure, et sa popularité n’a cessé de croître au fil des ans. Selon notre dernier rapport sur l’état de la sécurité des applications cloud natives, plus de 30 % des équipes déclarent utiliser Azure Resource Manager comme outil IaC de prédilection.

Compte tenu de la grande popularité d’ARM, nous sommes ravis d’annoncer que vous pouvez désormais utiliser Snyk Infrastructure as Code (Snyk IaC) pour détecter et corriger les erreurs de configuration dans les fichiers JSON ARM. En corrigeant ces problèmes tôt dans le cycle de développement logiciel, les équipes de sécurité et de développement peuvent éviter les revues de code lentes et manuelles, ainsi que le processus fastidieux de correction d’une vulnérabilité beaucoup plus tard dans le cycle.

Découvrons quelques exemples de workflows avec Snyk IaC et ARM.

Analyser des modèles ARM avec Snyk CLI

Pour effectuer des tests, nous avons préparé cet exemple de dépôt, qui contient des fichiers de modèles ARM aux formats JSON et Bicep. Vous pouvez cloner le dépôt, puis tester les fichiers ARM avec Snyk CLI.

Pour commencer avec Snyk CLI, vous pouvez créer un compte gratuit, puis installer Snyk CLI avec npm. Si Node.js est installé sur votre machine, vous pouvez l’installer en exécutant : npm install snyk@latest -g

Si vous utilisez Yarn : yarn global add snyk

Sortie du terminal d’une analyse Snyk IaC affichant six problèmes de sécurité dans un modèle Azure ARM, notamment des déploiements FTP et une version obsolète de TLS.

Détecter les erreurs de configuration dans les fichiers Bicep ARM

Bicep est un langage spécifique à un domaine (DSL) qui utilise une syntaxe déclarative pour déployer des ressources Azure. Il offre une syntaxe concise, une sécurité des types fiable et la possibilité de réutiliser le code. En plus d’analyser les fichiers JSON ARM, vous pouvez également analyser les fichiers Bicep en les convertissant en JSON à l’aide de Bicep CLI.

Commencez par vérifier que Bicep CLI est installé, puis utilisez la commande az bicep build -f {file_name}.bicep pour convertir un fichier de configuration ARM du format Bicep au format JSON. Une fois le fichier converti, vous pouvez l’analyser comme n’importe quel autre fichier JSON ARM.

Sortie du terminal de Snyk IaC testant wordpress.json et signalant un problème de jeton SAS de gravité moyenne, lié à l’utilisation de HTTP non sécurisé.

Tirer parti des règles de sécurité de configuration de Snyk

Bien sûr, la fonctionnalité d’analyse IaC ne suffit pas. La profondeur et l’étendue des règles de sécurité sont essentielles pour vous fournir des retours de sécurité complets et détecter les erreurs de configuration avant le déploiement de vos ressources. L’équipe dédiée de Snyk en ingénierie de la sécurité étudie, valide et ajoute de nouvelles règles : plus de 100 règles sécurisent votre environnement Azure, et ce nombre continue d’augmenter.

Nos équipes d’ingénierie de la sécurité associent les bonnes pratiques reconnues à la recherche de première main pour ajouter continuellement de nouvelles règles. Ces bonnes pratiques s’appuient sur les normes des fournisseurs cloud et des communautés, telles que les référentiels CIS, ainsi que sur les bonnes pratiques Azure. Côté recherche en sécurité, nous appliquons des techniques de modélisation des menaces aux principaux modes d’utilisation. Par exemple, nous examinons les paramètres des offres Kubernetes gérées afin de déterminer comment éviter les faiblesses en renforçant correctement l’IaC.

Pour consulter les règles Snyk IaC, accédez aux Paramètres de votre organisation Snyk, puis sélectionnez Infrastructure as Code dans le menu de gauche. Pour limiter l’affichage à Azure, sélectionnez Azure dans les onglets sous Paramètres de gravité. Nous nous efforçons de rédiger des règles indépendantes du format ; la plupart de celles que vous voyez s’affichent donc quels que soient les filtres sélectionnés.

Paramètres de gravité des règles Azure Terraform et ARM, affichant des résultats pour API Management et App Service avec les niveaux de gravité Faible et Moyen sélectionnés.

Vous pouvez également consulter la liste complète de nos règles de sécurité ARM dans la section Règles de sécurité de notre site.

Page Snyk sur ARM présentant des problèmes de sécurité liés à Azure API Management et App Service, avec les tags Terraform, ARM, Azure et CIS

Évitez les erreurs de configuration ARM avec Snyk IaC

Ces nouvelles fonctionnalités sont accessibles à tous, y compris aux utilisateurs de l’offre gratuite de Snyk. Pour commencer, rien de plus simple :

Pour en savoir plus sur les différentes options d’analyse proposées, consultez la documentation de Snyk ou la documentation de la CLI en exécutant : snyk iac --help

Nous aimerions connaître votre avis sur la prise en charge d’ARM dans Snyk CLI. Publiez vos commentaires ou retours sur le forum de la communauté Snyk.

Sécurisez votre infrastructure dès la source

Snyk automatise la sécurité et la conformité de l’IaC dans vos workflows, et détecte les ressources dont la configuration a dérivé ou qui sont manquantes.

Publié dans: