Source et contexte — Truffle Security Co. publie un billet invité de Luke Marshall détaillant un scan exhaustif d’environ 5,6 millions de dépôts publics GitLab Cloud (initialisé le 10/09/2025) à l’aide de TruffleHog, qui a permis d’identifier 17 430 secrets « live » vérifiés et de récolter plus de 9 000 $ en primes, pour un coût d’infrastructure d’environ 770 $ et une durée d’exécution d’un peu plus de 24 h.
📊 Résultats clés
- Échelle: ~5,6 M de dépôts scannés sur GitLab; comparaison Bitbucket: ~2,6 M.
- Découvertes: 17 430 secrets valides sur GitLab vs 6 212 sur Bitbucket, soit ~35 % de densité de fuites par dépôt en plus côté GitLab.
- Temporalité: plateau des expositions sur Bitbucket depuis 2018, mais « explosion » sur GitLab, probablement corrélée à la montée de l’IA et la prolifération de clés API.
- Ancienneté: des « zombie secrets » toujours valides jusqu’à des commits datés du 16/12/2009.
- Types de secrets: GCP est la catégorie la plus fuitée; environ 1 dépôt sur 1 060 contenait des identifiants GCP valides.
- Localité de plateforme: 406 clés GitLab valides trouvées sur GitLab contre 16 sur Bitbucket (≈25×), illustrant que les secrets d’une plateforme fuient majoritairement sur cette même plateforme.
- Cas marquant: un token Slack attribué à une organisation (confirmé via l’URL d’équipe et page de login Okta) classé P1 et rémunéré 2 100 $.
🧰 Méthodologie technique
- Découverte: pagination de l’API publique GitLab (https://gitlab.com/api/v4/projects) pour l’énumération complète des dépôts publics.
- Architecture: script Python local alimentant une file AWS SQS avec 5,6 M de tâches; AWS Lambda conteneurisée exécute TruffleHog et journalise les résultats, avec reprise sans doublons.
- Container: image AWS Python (RIC intégré), binaire TruffleHog copié; installation Git; handler Python personnalisé.
- Commande: exécution TruffleHog « git » avec options « –json », « –no-update », « –only-verified », « –allow-verification-overlap », « –log-level=-1 »; concurrence 1000.
🤖 Triage et divulgation
- Automatisation: utilisation d’un LLM (Claude Sonnet 3.7) pour rechercher et classifier les voies de divulgation (Bug Bounty, VDP, contacts sécurité), en inspectant security.txt, pages /security et plateformes (HackerOne, Bugcrowd, Intigriti, YesWeHack, Synack).
- Notifications: génération d’e-mails de divulgation à partir des métadonnées TruffleHog; recours aux adresses génériques (security@, support@, contact@) en l’absence de canal dédié.
- Portée de la divulgation: plus de 120 organisations contactées et plus de 30 fournisseurs SaaS engagés pour révoquer des clés clientes. Note de prudence: n’utiliser « trufflehog analyze » que sur ses propres secrets ou si explicitement autorisé par un programme.
🔎 Enseignements
- Plus de volume, impact similaire: malgré 3× plus de secrets valides sur GitLab, les primes totales sont comparables à Bitbucket (≈9 000 $ vs 10 000 $).
- Problème des « zombie secrets »: des identifiants restent valides pendant plus d’une décennie s’ils ne sont pas explicitement révoqués/rotés.
- Localité de plateforme: forte corrélation entre l’écosystème hébergeur et le type de secrets exposés.
- Coût/effort de divulgation: le succès repose sur une industrialisation du triage et des notifications à grande échelle.
IOCs et TTPs
- IOCs: aucun indicateur de compromission spécifique n’est fourni.
- TTPs:
- Énumération exhaustive via l’API publique GitLab avec pagination.
- Scan massif des historiques Git avec TruffleHog en mode « only-verified ».
- Orchestration serverless (AWS Lambda + SQS), conteneur personnalisé, forte concurrence.
- Triage assisté par LLM pour identifier les canaux de divulgation et automatisation d’e-mails.
Type d’article: publication de recherche démontrant, à des fins de mesure et de sensibilisation, la distribution et la persistance des secrets exposés sur GitLab, avec comparaison à Bitbucket et description détaillée de la méthodologie et des résultats.
🧠 TTPs et IOCs détectés
TTP
[‘Énumération exhaustive via l’API publique GitLab avec pagination’, ‘Scan massif des historiques Git avec TruffleHog en mode « only-verified »’, ‘Orchestration serverless (AWS Lambda + SQS), conteneur personnalisé, forte concurrence’, ‘Triage assisté par LLM pour identifier les canaux de divulgation et automatisation d’e-mails’]
🔗 Source originale : https://trufflesecurity.com/blog/scanning-5-6-million-public-gitlab-repositories-for-secrets