<  Retour au portail Polytechnique Montréal

Exploring Security Practices in Infrastructure as Code: An Empirical Study

Alexandre Verdet

Mémoire de maîtrise (2023)

[img] Accès restreint: Personnel autorisé jusqu'au 13 novembre 2024
Conditions d'utilisation: Tous droits réservés
Afficher le résumé
Cacher le résumé

Résumé

L’infonuagique est populaire en partie parce que les outils d’Infrastructure as Code (IaC) permettent d’utiliser des scripts facilitant la gestion et configuration d’infrastructures dans le cloud. Cependant, rien dans le processus de création de scripts n’empêche automatiquement les ingénieurs ou les développeurs d’appliquer des configurations erronées, introduisant des vulnérabilités ou des risques pour la sécurité et le respect de la vie privée. La sécurité dépend de leur compréhension et de l’application de politiques, de directives ou de bonnes pratiques explicites. Ce mémoire analyse la mise en oeuvre réelle, par les ingénieurs et les développeurs, des bonnes pratiques en matière de sécurité dans les scripts IaC. Nous avons collecté 121 extraits de configuration Terraform pour AWS et les avons analysés afin de catégoriser les bonnes pratiques. Ensuite, nous avons mené une étude empirique sur 401 projets GitHub impliquant des infrastructures AWS décrites via Terraform, afin d’étudier l’adoption des bonnes pratiques dans de véritables projets. Les résultats montrent qu’un manque de chiffrement et un manque de l’utilisation de log et de surveillance des ressources sont les défauts de configuration les plus fréquents dans les fichiers Terraform pour AWS. En revanche, les failles admin par default (c’est-à-dire l’octroi par défaut de privilèges administrateurs à tous les utilisateurs) ainsi que les secrets en clair sont rares. Pour déterminer si les résultats obtenus dans la première expérience sont universels et applicables à d’autres fournisseurs populaires de cloud public, nous avons étendu notre étude à Azure (84 politiques de sécurité, 137 projets) et Google Cloud (82 politiques, 274 projets). La comparaison de l’adoption des bonnes pratiques entre les fournisseurs généralise les résultats en matière de Politiques d’accès et l’absence de Secrets en clair, tout en soulignant l’impact des choix de conception des services cloud sur l’adoption des pratiques de sécurité par le biais des configurations par défaut. Enfin, une deuxième expérience a permis d’explorer les corrélations potentielles entre les mesures de popularité des projets et l’adoption des bonnes pratiques de sécurité. Grâce à une analyse statistique, une corrélation a pû être trouvée entre le nombre d’étoiles d’un projet GitHub et l’adoption des pratiques dans son infrastructure cloud, mais pas nécessairement par le biais des forks et/ou du nombre de contributeurs. Sur la base de notre étude, nous proposons des lignes directrices aux praticiens de l’infonuagique afin de limiter la vulnérabilité des infrastructures.

Abstract

Cloud computing is popular in part because Infrastructure as Code (IaC) tools let us use convenient scripts to manage and configure cloud infrastructure. However, nothing in the scripting process automatically prevents engineers or developers from pushing misconfigurations; introducing vulnerabilities or privacy risks. Security depends on their understanding and application of explicit policies, guidelines, or best practices. This thesis analyzes engineers’ and developers’ real-world implementation of IaC scripted security best-practices through two experiments. First, we collected 121 AWS Terraform configuration snippets from recognized catalogs and analyzed them in order to categorize best practices. Then, we conducted an empirical study of 401 GitHub projects involving Terraform AWS infrastructures, to measure the actual adoption of the security configuration previously collected. The results show that a lack of encryption and a lack of logging and resource monitoring are the most neglected security best-practices in AWS Terraform files. By contrast, admin by default (i.e., granting administrative privileges to all users by default) and hard-coded secrets misconfigurations are rare. To investigate whether the results obtained in the first experiment are universal and applicable to other popular public cloud providers, we expanded our study to include Azure (84 security policies, 137 real-world projects) and Google Cloud (82 policies, 274 projects). Comparing the adoption of best practices between providers generalizes findings in Access policies and the absence of Hard-coded secrets, while highlighting the impact of cloud services design on security practice through default configurations. Finally, a second experiment explores potential correlations between the popularity metrics of repositories and the adoption of security best practices. Through statistical analysis, a correlation can be found between a repository number of stars and the adoption of practices in its cloud infrastructure, but not necessarily through forks and contributor numbers. Based on our investigation, we offer guidelines for cloud practitioners to limit infrastructure vulnerability.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Mohammad Hamdaqa
URL de PolyPublie: https://publications.polymtl.ca/54136/
Université/École: Polytechnique Montréal
Date du dépôt: 13 nov. 2023 10:27
Dernière modification: 07 avr. 2024 06:26
Citer en APA 7: Verdet, A. (2023). Exploring Security Practices in Infrastructure as Code: An Empirical Study [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/54136/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document