Mercredi 07 mai 2025 à 23:53

Je viens de publier un playground au sujet de Gitleaks : gitleaks-playground.

Mes objectifs étaient les suivants :

  • Tester la détection d'une clé privé ssh
  • Tester la détection d'un password
  • Tester la configuration de Gitleaks dans un git hook pre-commit
  • Tester comment ignorer les secrets présents dans certains fichiers

J'ai compris que les règles de détections de secrets sont définies dans le fichier /config/gitleaks.toml.

J'ai constaté que par défaut, Gitleaks ne détecte pas ce password :

export PASSWORD="aeFeaxoo3phaikae"

pour corriger ce problème, j'ai été obligé de modifier le niveau de sensibilité de l'entropy de la règle generic-api-key dans le fichier /.gitleaks.toml:

[[rules]]
id = "generic-api-key"
entropy = 2

Le paramètre entropy est définit ici par défaut à 3.5.

J'ai compris qu'il est possible d'ignorer la détection d'un secret soit en ajoutant les Fingerpritn dans .gitleaksignore ou alors en ignorant totalement des fichiers, comme ceci dans .gitleaks.toml :

[[allowlists]]
description = "Ignore README"
paths = [
    "README.md"
]

[[allowlists]]
description = "Ignore .secret"
paths = [
    ".secret"
]

Pour configurer le git hooks, j'ai préféré de ne pas utiliser pre-commit afin de ne pas dépendre d'un projet en python. J'utilise un simple script shell : /git-hooks/pre-commit.

Pour activer ce hook, j'utilise la commande git config core.hooksPath git-hooks.

Je trouve cela plutôt simple avec aucune dépendance.