27.10.2022 - Les développeurs de logiciels utilisent souvent et volontiers le logiciel open source Git pour gérer les codes sources et leurs différentes versions. De tels outils sont en effet très pratiques et facilitent le travail. Cependant, l'utilisation imprudente de Git peut menacer la sécurité des systèmes et, par conséquent, compromettre la confidentialité des données sensibles. En observant les sites Internet suisses, nous constatons que les dépôts Git dotés d'une protection insuffisante et les risques qu'ils présentent sont aussi une réalité dans notre pays.
Les développeurs de logiciels se trouvent depuis toujours face au défi que constitue le travail à plusieurs sur un seul et même projet – la pandémie de COVID-19 n'a rien apporté de nouveau à cet égard. Dans l'idéal, cette collaboration se fait simultanément et à distance, depuis n'importe quel endroit du monde. À l'aide d'outils de gestion de versions, plusieurs développeurs peuvent travailler sur le même code source et le modifier, car tous les changements opérés sont recensés, et les différentes versions du code apparaissent dans un historique. L'outil de gestion de versions le plus connu et le plus répandu s'appelle «Git» et a été lancé par le développeur Linus Torvalds en tant que logiciel en libre accès. Il existe cependant beaucoup d'autres logiciels de gestion de versions, tels que Mercurial, Apache Subversion, CVS ou BitKeeper.
Les dépôts Git, leurs failles, les risques
Si les dépôts Git sont mal configurés ou s'ils ne sont pas suffisamment protégés, n'importe qui peut avoir accès en quelques clics sur Internet aux jeux de données qu'ils contiennent. Une protection insuffisante peut être due, entre autres, à une erreur des administrateurs ou des développeurs, mais aussi à certaines lacunes dans le processus de création du projet de développement. En effet, au début d'un nouveau projet, les développeurs clonent souvent un dépôt existant, sans prêter attention aux jeux de données qu'il contient ni à la manière dont ces dernières sont protégées. Or plusieurs outils proposent dans chaque dépôt un dossier dédié à la gestion et au suivi des versions. Dans le cas de Git, celui-ci se nomme «.git». Il contient non seulement le code source entier de l'application ou du site Internet, mais aussi toutes ses versions précédentes, les modifications qui ont été apportées et parfois même des fichiers de configuration dans lesquels se trouvent des informations système sensibles devant être protégées, telles que les mots de passe de banques de données ou les clés API. L'accès au code source donne aussi la possibilité à un cybercriminel potentiel de chercher de manière ciblée les vulnérabilités de l'application ou du système, puis de compromettre l'une des pages Internet qui y sont liées.
Les dépôts Git en Suisse
À l'été 2022, dans le cadre du programme «Annonce d'une faille ou divulgation coordonnée d'une vulnérabilité» (Coordinated Vulnerability Disclosure), un journaliste de la plateforme dnip.ch a attiré l'attention du Centre national pour la cybersécurité (NCSC) sur le problème des dépôts Git dotés d'une protection insuffisante. Le NCSC a donc mené l'enquête sur les dépôts Git en libre accès en Suisse. Il a recensé 1300 systèmes dont certaines données potentiellement sensibles, telles que le code source, les données d'accès ou les mots de passe, étaient accessibles au travers de dossiers .git mal protégés.
Le contrôle de sécurité, une nécessité
En octobre 2022, le NCSC a envoyé un courriel aux entreprises concernées ou aux responsables de l'exploitation de sites Internet afin de réduire les risques et empêcher tout usage abusif des jeux de données exportés. Les 400 destinataires étaient soit les responsables techniques, soit les propriétaires des domaines. L'enquête du NCSC n'offre qu'un aperçu ponctuel et probablement partiel de la situation. Internet étant en constante évolution, il est essentiel que les responsables des systèmes effectuent des contrôles fréquents. C'est pourquoi le NCSC recommande de vérifier régulièrement le contenu et la configuration des dépôts Git.
Recommandations
Le dossier .git d'un système productif ne devrait jamais être en libre accès sur Internet. Le cas échéant, s'il n'est pas possible de le supprimer rapidement, il est nécessaire d'en protéger et d'en limiter au moins l'accès (par exemple à l'aide de règles .htaccess ou, selon la technologie utilisée, à l'aide de restrictions d'accès techniques similaires).
Plus efficaces encore seraient des mesures préventives, telles que la vérification et l'adaptation du processus de développement, afin que seules les données souhaitées et destinées au projet en question (mentionnées dans le fichier «build») figurent dans le dépôt. Les données sensibles ou confidentielles, c'est-à-dire les mots de passe, clés API, etc., ne devraient jamais être intégrées directement au code source ou à l'application (hardcoded). En tout cas, elles ne devraient pas être enregistrées dans le dépôt Git et ignorées (dans le dossier «gitignore»). Malheureusement, ces mesures de sécurité fondamentales et les bonnes pratiques du domaine ne sont souvent pas respectées dans les faits.
Exemple d'un dossier .git
Git n'est qu'un exemple parmi d'autres. Le même problème se pose pour les fichiers .env et .DS_Store non protégés : Certains logiciels enregistrent leur configuration dans des variables d'environnement, et sur le système d'exploitation Apple, les paramètres des dossiers sont stockés dans des fichiers DS_Store (Desktop Service Store) cachés. Ces fichiers peuvent également contenir des données sensibles.
Liens
Dernière modification 27.10.2022