zsv3207 - stock.adobe.com
GitHub chasse gratuitement les secrets dans les dépôts publics
GitHub a annoncé la disponibilité générale d’un système gratuit de détection de secrets dans les dépôts publics. Une étape de plus pour tenter de sécuriser les projets open source.
En décembre 2022, GitHub a lancé la bêta publique d’un système pour alerter gratuitement de la présence de secrets dans les dépôts publics. Jusqu’à l’année dernière, GitHub réservait la détection de secrets à ses clients Enterprise souscrivant à l’option Advanced Security.
Pour rappel, les secrets sont des mots de passe, des clés IAM, des tokens API… bref, un ensemble de moyens utilisés pour s’identifier auprès d’une plateforme, d’une application ou d’une base de données.
Il est fortement conseiller de stocker ces clés à l’aide d’un gestionnaire de secrets, un KMS, un coffre-fort de type Hashicorp Vault ou même à l’aide d’un service intégré d’un Bastion. Or, des milliers de clés permettant d’accéder à des services critiques pour les entreprises se retrouvent chaque année dans les dépôts Git publics.
Les attaquants peuvent s’en servir pour tenter de s’emparer de données d’une entreprise (le premier vecteur de brèches de données en 2022, selon IBM security) ou de ressources IT servant à mener certaines attaques.
Le 28 février, GitHub a donc officialisé la disponibilité générale des alertes de scans de secrets gratuites pour les dépôts publics. Depuis le lancement de la bêta en décembre, GitHub assure que plus de 70 000 dépôts disposent de la fonctionnalité activée.
Une centaine de fournisseurs de services de la partie
L’exercice a d’abord été mené auprès d’une centaine de « partenaires fournisseurs » sur lequel GitHub s’est appuyé pour identifier plus de 200 formats (patterns) de Token ou de clés privées, principalement des clés API. Cela lui aurait permis de détecter 1,7 million de secrets potentiels exposés dans des dépôts publics.
Ce partenariat avec des acteurs, dont Adobe, Azure, Databricks, DigitalOcean, AWS, Atlassian ou encore Google Cloud, permet en principe de les prévenir en premier lieu.
Documentation GitHub
En arrière-plan, un algorithme compare les formes de secrets avec le code contenu dans un dépôt fraîchement mis en public ou à chaque modification du code. « Si le scan détecte un secret potentiel, nous en informons le fournisseur de services qui a émis le secret », explique GitHub dans sa documentation. « Le fournisseur de services valide la chaîne de caractères et décide ensuite s’il doit révoquer le secret, émettre un nouveau secret ou vous contacter directement ».
Puis, quand ce n’est pas possible, par exemple dans le cas où un gestionnaire de secrets est géré en propre par un utilisateur, GitHub le prévient directement, par notification et par mail.
Dans le cas où le dévoilement d’un secret réclame l’association de plusieurs éléments, GitHub n’émettra d’alertes que si le dépôt les contient tous. « Cela garantit que les fuites les plus critiques ne sont pas cachées derrière des informations sur des fuites partielles », justifie l’éditeur.
Dans ce cadre, GitHub a prévu de réaliser périodiquement des scans entiers des dépôts à la recherche de secrets. Au risque de trouver (des milliers ?) de mauvaises surprises dans les historiques de publication.
Tout administrateur ou propriétaire d’un dépôt GitHub peut activer la fonction depuis les paramètres de sécurité de la plateforme. Cela devrait fluidifier la remédiation de telles failles, et simplifier l’adoption de l’approche DevSecOps/zero-trust.
Les secrets, un enjeu de taille pour le berceau de l’open source
Du côté de GitHub, cette initiative complète Dependabot, un outil de gestion automatique et de mises à jour des dépendances, et s’inscrit dans une démarche élargie de sécurité incluant la mise en place progressive, mais inévitablement obligatoire du 2FA d’ici à la fin de l’année 2023.
Bien conscient que l’écosystème open source dépend largement de sa plateforme, l’éditeur a compris qu’il doit renforcer les mesures pour encourager les utilisateurs à protéger leur code. D’autant que l’Administration américaine veille désormais au grain.
Pour autant, certaines entreprises et certains éditeurs n’ont pas attendu la réaction de GitHub pour mettre à disposition de ce type d’outils gratuitement. C’est notamment ce que propose le Français GitGuardian, avec son application téléchargée plus de 242 000 fois sur la Marketplace de GitHub. La startup fondée en 2017 couvre plus de 350 patterns différents.