Prevalence of Cross-File Dependencies in Terraform and Their Resolution by Security Scanners
Cet article analyse un ensemble de données Terraform à grande échelle pour révéler que les dépendances entre fichiers sont prévalentes et impliquent souvent des ressources sensibles en matière de sécurité, tout en démontrant, par des expériences contrôlées, que les scanners de sécurité modernes possèdent des capacités variables mais significatives pour résoudre ces relations inter-fichiers complexes, remettant ainsi en question l'hypothèse selon laquelle ils ne pourraient pas gérer le raisonnement multi-fichiers.
Article original sous licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Dans le monde numérique moderne, les serveurs et réseaux massifs qui alimentent nos applications, nos banques et nos services de streaming ne sont plus construits à la main. Au lieu de cela, les ingénieurs écrivent des instructions dans un langage informatique pour dire au cloud exactement ce qu'il doit construire. Cette pratique est appelée l'Infrastructure as Code (Infrastructure en tant que code). Elle permet aux équipes de définir des systèmes complexes dans des fichiers texte, garantissant que chaque serveur, pare-feu et compartiment de stockage est créé avec la même précision à chaque fois. L'un des outils les plus populaires pour cette tâche s'appelle Terraform. Il fonctionne comme un lecteur de plans, prenant ces instructions textuelles et les transformant en une technologie réelle et fonctionnelle. Cependant, tout comme un plan de maison peut être réparti sur des dizaines de pages avec des notes renvoyant à d'autres pages, ces fichiers de code sont rarement isolés. Ils sont tissés ensemble, un fichier appelant un autre, transmettant des valeurs de l'un à l'autre, et construisant un système qui n'existe que lorsque toutes les pièces sont assemblées.
La sécurité de ces systèmes dépend de l'exactitude de ces instructions. Une seule erreur dans le code, comme laisser accidentellement une porte numérique déverrouillée, peut exposer des données sensibles à l'ensemble d'Internet. Pendant des années, les chercheurs et les experts en sécurité se sont inquiétés du fait que les outils conçus pour scanner ces plans à la recherche d'erreurs pourraient être aveugles aux connexions entre les fichiers. La croyance prédominante était que ces scanners ne pouvaient lire qu'un seul fichier à la fois, manquant ainsi les secrets dangereux cachés dans les interstices entre eux. Si un fichier disait « utiliser le paramètre par défaut » et qu'un autre fichier définissait ce défaut comme étant « ouvert à tous », le scanner pourrait voir le premier fichier comme sûr et le second comme sûr de manière isolée, échouant à repérer la combinaison dangereuse. Ce document visait à tester cette hypothèse face à une vaste collection de codes réels et à voir si les outils étaient réellement aussi limités que tout le monde le pensait.
Les chercheurs ont commencé par rassembler une vaste bibliothèque de plus de 62 000 projets publics utilisant Terraform. Ils voulaient comprendre la fréquence à laquelle ces projets dépendent réellement de connexions entre différents fichiers. En cartographiant les relations dans ces projets, ils ont découvert que les connexions entre fichiers ne sont pas des exceptions rares, mais une partie standard de la construction de ces systèmes. En fait, plus d'un tiers de tous les projets étudiés contenaient au moins une connexion où un fichier dépendait d'un autre. Ces connexions n'étaient pas réparties uniformément ; elles étaient fortement concentrées dans un plus petit nombre de projets complexes, tandis que de nombreux projets plus simples en avaient très peu ou aucun. Le moyen le plus courant dont ces fichiers étaient liés était de pointer vers des dossiers partagés, où un projet cherchait dans sa structure de répertoire pour trouver un morceau de code commun dont il avait besoin. Ce modèle montre que la façon dont les ingénieurs organisent leur travail crée naturellement un réseau de dépendances qui s'étend sur de nombreux fichiers.
L'étude a ensuite posé une question critique : ces connexions mènent-elles souvent aux parties les plus sensibles d'un système ? Les chercheurs ont cherché des cas où un fichier dépendait d'un autre fichier contrôlant les paramètres de sécurité, tels que qui pouvait accéder à une base de données ou quels ordinateurs étaient autorisés à communiquer entre eux. Ils ont découvert que dans plus de 9 000 des projets, ces connexions entre fichiers pointaient effectivement vers ces contrôles de sécurité critiques. Cela signifiait que la sécurité de ces systèmes reposait souvent sur la capacité de tracer une valeur d'un fichier, à travers une connexion, jusqu'à une règle de sécurité dans un autre fichier. Si un outil ne pouvait pas suivre ce chemin, il regarderait la mauvaise image, manquant potentiellement une vulnérabilité qui n'existait qu'en raison de la façon dont les fichiers étaient cousus ensemble.
Une fois l'ampleur du problème établie, les chercheurs se sont tournés vers les outils eux-mêmes pour voir s'ils pouvaient réellement suivre ces chemins. Ils ont conçu une expérience contrôlée utilisant quatre des scanners de sécurité les plus populaires disponibles. Ils ont créé une série de cas de test qui imitaient les connexions du monde réel qu'ils avaient trouvées, allant de liens simples entre des fichiers dans le même dossier à des chaînes complexes où une valeur passe à travers plusieurs modules avant d'atteindre sa destination finale. Ils ont testé si les scanners pouvaient détecter une faille de sécurité lorsqu'un paramètre dangereux était caché dans un fichier différent, ou si les scanners ne verraient le danger que lorsqu'il était écrit directement dans le même fichier.
Les résultats ont remis en question la croyance de longue date selon laquelle ces outils seraient fondamentalement aveugles aux connexions entre fichiers. L'étude a révélé que les capacités des outils n'étaient pas un simple oui ou non, mais un spectre. Chaque outil testé a été capable de suivre les connexions les plus simples, telles qu'une variable définie dans un fichier et utilisée dans un autre au sein du même dossier. Ils ont tous détecté avec succès le danger dans ces scénarios de base. Cependant, à mesure que les connexions devenaient plus complexes, les outils commençaient à diverger. Un seul des quatre scanners, Checkov, était capable de suivre les chemins les plus intriqués, y compris ceux où les valeurs passaient par plusieurs couches de modules ou là où les paramètres étaient écrasés par des fichiers de configuration spéciaux. Les autres outils pouvaient gérer les liens directs mais perdaient souvent la trace lorsque la connexion impliquait des étapes intermédiaires ou des types de fichiers spécifiques comme les fichiers de surcharge de variables.
Cette conclusion suggère que l'hypothèse commune selon laquelle les scanners ne peuvent pas suivre les références entre fichiers est trop large pour être exacte. Il ne s'agit pas que les outils soient incapables de la tâche, mais plutôt que leur capacité à le faire varie considérablement selon l'outil spécifique et la complexité de la connexion. Pour les équipes s'appuyant sur les outils qui ne gèrent que les cas les plus simples, il existe un risque réel qu'elles passent à côté de problèmes de sécurité cachés dans le câblage plus complexe de leur code. Les chercheurs ont conclu que, bien que les outils aient progressé, l'industrie doit être plus précise sur ce que chaque outil peut et ne peut pas voir. Plutôt que de supposer qu'un outil détectera chaque erreur, les équipes devraient comprendre les limites spécifiques de leur scanner choisi, surtout lorsque leur code repose sur des couches profondes de connexions. L'étude fournit une carte claire de ces limites, montrant que si les dangers les plus simples entre fichiers sont captés, les plus profonds et les plus complexes nécessitent soit un outil plus capable, soit une approche différente pour garantir la sécurité.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.