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