GitGuardian fait la chasse aux secrets dans les dépôts de code

Le Français GitGuardian s’est fait une place sur le marché de la détection de secrets dans le code source et compte élargir son expertise à d’autres vulnérabilités.

Plus de 203 000, c’est le nombre de fois que la solution gratuite de GitGuardian a été installée depuis la marketplace de GitHub, faisant d’elle la plus populaire de sa catégorie jusqu’à ce jour.

Derrière ce service se cache une startup française installée à Paris, se préparant à ouvrir un bureau à Austin, Texas, aux États-Unis d’ici à la fin de l’année. Fondée en novembre 2017, GitGuardian développe une solution de détection de secrets inscrits en dur dans le code présent dans des dépôts Git. La société est animée par 90 collaborateurs.

En 2018, la startup lance GitGuardian Public Monitoring pour scanner et détecter les secrets dans les dépôts de code accessibles publiquement depuis le Web. Deux ans plus tard, elle déployait sa deuxième offre commerciale, GitGuardian Internal Monitoring, pour surveiller les dépôts privés des entreprises. Internal Monitoring est disponible sur site et en mode SaaS. Les deux offres sont payantes quand plus de 25 développeurs les utilisent dans une organisation.

« Notre spécialité, c’est la détection automatisée de secrets dans le code et l’accompagnement des développeurs dans les processus de remédiation », résume Ziad Ghalleb, responsable marketing produit chez GitGuardian.

L’enjeu est identifié, mais il est loin d’être maîtrisé. En 2021, Gitguardian a détecté plus de 6 millions de secrets, soit deux fois plus qu’en 2020. La même année, en moyenne 3 commits sur 1000 exposaient au moins un secret, selon l’analyse de la startup.

Le fait qu’un seul compte GitHub donne accès à des dépôts de code personnels et professionnels, les inattentions, les failles des outils CI/CD qui exposent les secrets, la multiplication des copies de dépôts ou encore le fait certaines équipes confondent le dépôt de code avec un coffre-fort de secrets sont autant de fuites possibles qui menacent les entreprises. Et une aubaine pour les attaquants. « Les développeurs peuvent faire l’effort de chiffrer les clés, mais il arrive que la clé maîtresse stockée dans un KMS fuite, soit par erreur, soit parce que ces développeurs la partagent via un canal de communication non protégé », remarque Ziad Ghalleb.

Comment fonctionne GitGuardian ?

Encore faut-il savoir de quels secrets on parle. « L’on entend par secrets des clés d’authentification numérique, mais aussi parfois des certificats ou des fichiers de configurations qui peuvent contenir plusieurs clés privées », explique-t-il. GitGuardian assure détecter 350 types de clés différentes en sus d’une quinzaine de fichiers dits sensibles.

Chez GitGuardian, chacun de ces secrets est couvert par un détecteur, c’est-à-dire un « ensemble d’instructions que le moteur de détection de GitGuardian va exécuter pour trouver un secret ».

Certains de ces détecteurs sont spécifiques, par exemple les clés d’accès AWS IAM. Certains sont développés à la demande d’un client, d’autres sont génériques. Il peut s’agir de clés de chiffrement, de clés API, des clés privées, d’accès à des bases de données, etc.

Les détecteurs se composent de trois parties. Selon l’éditeur, le « prévalidateur » permet d’écarter les documents qui ne contiennent « sûrement pas » de secrets. Le « matcheur » doit permettre d’extraire des chaînes de caractères « candidates » pouvant contenir un secret, par exemple des expressions régulières ou des chaînes de connexions. Enfin, le « postvalidateur » filtre ces candidats pour s’assurer qu’ils disposent de certaines propriétés, suivant le contexte ou l’entropie de la chaîne de caractères.

La gestion de la profusion de détecteurs et de leur efficacité est un défi pour GitGuardian.

« Tout l’enjeu pour nous est à la fois de détecter des éléments en quantité et en même temps faire de la ségrégation », indique Carole Winqwist, Chief Marketing Officer chez GitGuardian. « Sinon, vous avez trop de faux positifs ou de faux négatifs. C’est un équilibre subtil à atteindre ».

La CMO évoque ici une notion spécifique à l’algorithmie, et un des problèmes récurrents pour les spécialistes de la détection de vulnérabilités. Dans le domaine de la classification automatique, les notions d’accuracy, de précision et de rappel sont particulièrement prégnantes. L’accuracy permet de mesurer le taux de prédictions correctes sur l’ensemble des valeurs présentes dans une matrice de confusion. La précision est une métrique pour indiquer les performances d’un modèle de machine learning dans une catégorie spécifique, tandis que le rappel permet d’évaluer combien de fois un modèle est capable de détecter un objet d’une catégorie spécifique.

Selon GitGuardian, l’accuracy n’est pas une mesure idéale pour évaluer la performance de son moteur de règles. La startup cherche donc à avoir un haut taux de précision et un haut taux de rappel, c’est-à-dire un faible nombre de fausses alertes, et un faible nombre de secrets non identifiés.

« Nous ne voulons pas atteindre le zéro faux positif, ça n’existe pas, c’est même dangereux ».
Carole WinqwistCMO, GitGuardian

Suivant les cas, GitGuardian détecte 80 à 90 % des secrets. « Nous ne voulons pas atteindre le zéro faux positif, ça n’existe pas, c’est même dangereux », prévient Carole Winqwist. « Faire zéro faux positif, cela veut dire que vous faites trop de ségrégation, vous allez potentiellement laisser passer certains faux positifs qui n’en sont pas ».

La précision serait plus faible sur les secrets génériques, qui ont besoin d’être contextualisés. Le développeur a alors le choix de valider ou non la détection.

Le fait que GitGuardian teste son moteur de règles sur des dépôts publics lui permet de rapidement éprouver ses détecteurs sur de gros jeux de données. En 2021, il affirmait scanner 2,5 millions de commits publics… par jour. « Cela nous permet également de voir apparaître et d’intégrer les nouvelles technologies », affirme la CMO.

La startup utilise par ailleurs plusieurs techniques heuristiques pour trouver les clés chiffrées présentes dans les dépôts afin de ne pas les notifier comme des fuites.

Généralement, les analyses sont réalisées en amont d’un nouveau commit par un développeur (pré-push, pré-commit). GitGuardian permettrait d’abaisser « jusqu’à 80 % le volume de secrets » qui atterrissent dans les dépôts.

 Si GitGuardian détecte une fuite, il prévient rapidement le responsable de cette erreur, peu importe si l’utilisateur dispose la version gratuite ou payante de la solution. En entreprise, la solution peut être connectée aux produits ITSM, SIEM, aux messageries et autres systèmes de tickets via des connecteurs dédiés (Slack, Splunk, PagerDuty) ou des webhooks.

En outre, GitGuardian propose une interface pour aider les équipes DevOps et AppSec à piloter la remédiation. Elle doit permettre d’identifier les applications concernées par un secret, de suivre les équipes ou les individus les plus susceptibles de fuiter des clés, de prévoir les étapes de remédiation avant une rotation des secrets compromis.

En revanche, la remédiation n’est jamais automatique. « La rotation d’une clé ne peut pas s’effectuer sans prévenir les autres équipes, il y a le risque de faire tomber une ou plusieurs applications en production », signale Ziad Ghalleb.

Une dimension supplémentaire s’ajoute : la profondeur d’analyse appliquée par la startup. GitGuardian se dit agnostique des systèmes de gestion de versions (VSC) tant qu’ils reposent sur le projet Git. Plus précisément, son offre est compatible avec GitHub, GitHub Enterprise, GitLab, Azure DevOps et Bitbucket. La startup s’apprête également à scanner les fichiers de configuration d’Infrastructure as Code, des images Docker et se penche sur les flux Jira.

« Ce qui est un peu complexe avec Git, c’est que le secret est toujours là. Même si l’on retire un secret dans une version du code, quelqu’un qui manipule assez bien Git pourrait le retrouver dans une version précédente », explique Ziad Ghalleb. « Il faut donc effectuer la détection sur plusieurs couches pour ensuite enlever toute trace du secret, l’invalider, le révoquer et effectuer la rotation de la clé ».

GitGuardian recommande d’effectuer un scan de l’historique du VSC afin de trouver les secrets présents dans les dépôts. Ceux-ci pourraient être encore actifs.

« Ce n’est pas parce que le secret n’est plus présent dans la dernière version de la branche master qu’il a disparu ».
Carole WinqwistCMO, GitGuardian

« Ce n’est pas parce que le secret n’est plus présent dans la dernière version de la branche master qu’il a disparu », renchérit Carole Winqwist.

Aussi, l’éditeur insiste sur le fait qu’un système de gestion de versions privé n’est pas à l’abri des attaquants.

« Le ratio de secrets dans le code par dépôt est largement supérieur en dépôts internes qu’en dépôts publics », remarque la CMO. « Il y a l’illusion d’être protégé, d’être chez soi. Mais le jour où un attaquant s’introduit chez vous, c’est fini ».

Un train d’avance aux États-Unis, une prise de conscience en France

Personne ne serait à l’abri des fuites de secrets. Pas même les géants de la technologie. Ziad Ghalleb cite les cas de Nvidia, d’Uber, de Samsung, de Twitch (filiale d’Amazon), ou encore de Microsoft. Ces cas ont été fortement médiatisés.

Il faut toutefois noter que les grands groupes et les entreprises américaines ont pris la mesure du problème, selon GitGuardian. Environ 75 % de ses revenus sont réalisés aux États-Unis. En premier lieu, ce sont les éditeurs et les fournisseurs qui se sont mis à utiliser la solution. Datadog, Talend, Snowflake ou encore Mirantis font partie des « early adopters ».

« En France, les entreprises sous-traitent beaucoup aux ESN. Il y a une espèce d’ignorance du client final qui considère que ces aspects sont gérés par son intégrateur : c’est la boîte noire ! ».
Carole WinqwistChief Marketing Officer, GitGuardian

En France, la prise de conscience, et le démarrage commercial de GitGuardian ont été plus lents. « En France, les entreprises sous-traitent beaucoup aux ESN. Il y a une espèce d’ignorance du client final qui considère que ces aspects sont gérés par son intégrateur : c’est la boîte noire ! », signale Carole Winqwist. « Elles se rendent compte qu’elles sont désormais exposées ».

De manière générale, GitGuardian remarque une croissance des déploiements. La startup indique que ses clients entreprise comptaient en moyenne entre 200 et 1 000 développeurs. « Nous avons signé des comptes à plus de 8 000 développeurs », note la CMO.

Cependant, les clients de GitGuardian qui se lancent dans cet inventaire sur les dépôts privés doivent assimiler une nouvelle logique. « Il y a réellement deux dynamiques différentes entre les dépôts publics et privés. D’un côté, il faut agir rapidement pour réduire la fenêtre d’exposition du secret. De l’autre, cela implique plusieurs parties prenantes et des projets d’envergure », remarque Ziad Ghalleb.

« L’installation de GitGuardian est généralement rapide. Quand nous avons connecté les 8 000 développeurs, ça a été l’avalanche », raconte Carole Winqwist. « Tout à coup, ils ne pouvaient plus ignorer le problème. Il faut traiter l’historique : que faire après avoir détecté 20 000 secrets ? »

Suivant les conseils de GitGuardian, l’entreprise assainit d’abord ses pratiques quotidiennes pour éviter au maximum l’empilement de nouveaux secrets. « Ensuite, nous mettons en place des bonnes pratiques pour sélectionner les champions, pour traiter les problématiques de secrets orphelins, pour hiérarchiser les efforts, etc. », illustre la Chief Marketing Officer. Un tel nettoyage n’est pas une sinécure. « Cela peut prendre des mois, voire des années ».  

Toutefois, la startup n’a pas vocation à conseiller les entreprises. Pour ce faire, elle se rapproche d’Orange Business Services et de sa filiale OCD, ou encore d’Atos. GitGuardian a déjà mis un partenariat similaire au Japon avec un distributeur.

GitGuardian a levé 12 millions de dollars en série A en 2019, puis 44 millions en série B en 2021.

Pour approfondir sur Gestion des vulnérabilités et des correctifs (patchs)

Close