Secret Gate
Un garde-fou de publication qui connaît vos secrets réels : rien n'est déployé tant qu'il ne trouve rien.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Ce qu'il fait
Secret Gate répond à une seule question avant que quoi que ce soit ne quitte vos mains, qu'il s'agisse d'un zip de version, d'une copie client, d'un push open source ou du prochain commit : ceci contient-il un de mes secrets ? Il sait quels sont vos secrets, car il lit les fichiers où ils se trouvent, et il n'en affiche jamais un : une détection indique le fichier, la ligne et l'origine de la valeur.
- Vos valeurs exactes. Chaque valeur de vos fichiers env, configurations JSON et YAML, fichiers
.netrcet clés, recherchée telle qu'écrite, encodée en base64 et en URL. Un mot de passe qui ressemble à un mot ordinaire, ou un jeton interne sans préfixe connu, est détecté comme les autres. - Secrets provenant de machines sur lesquelles il ne tourne pas. Générez des empreintes sur votre ordinateur portable ; le serveur de build trouve ces valeurs sans jamais les détenir.
- Les autres machines vérifient par rapport à leurs propres secrets. Les fichiers sont envoyés sur chaque machine via SSH, y sont scannés puis supprimés. Les secrets ne bougent jamais, et une machine incapable de répondre bloque la version.
- Formes, noms et bruit aussi. 25 formats de jetons, vos noms, hôtes, domaines et identifiants de compte, adresses IP privées, adresses e-mail personnelles, numéros de téléphone, IBAN, chemins de dossiers personnels, et chaînes aléatoires à côté de noms évoquant des secrets.
- Il se prouve à chaque fois. Chaque scan commence par placer des canaris de chaque type ; si un contrôle manque son canari, le scan ne s'exécute pas.
- Là où vous travaillez déjà. Dossiers, archives zip et tar, un hook git pre-commit ou pre-push, des codes de sortie pour la CI, un rapport JSON.
Testé sur ce que nous livrons
- Chaque Kit que nous vendons : les 8 archives publiées scannées par rapport aux 133 valeurs secrètes sur notre machine de build et 16 259 empreintes de notre ordinateur portable. Toutes ont passé, en 5,4 secondes au total.
- Un vrai secret planté dans une copie de version a été détecté en clair et encodé en base64, nommé à chaque fois par le fichier d'origine. La valeur n'apparaissait nulle part dans la sortie ni dans le rapport.
- Un scan distant via SSH a vérifié une version par rapport aux 499 valeurs secrètes d'une seconde machine en 1,4 seconde, et a détecté un jeton planté dans une copie qui n'existait que sur cette machine.
Ce qui est inclus
La barrière
Les quatre contrôles, l'auto-test, le scan d'archives et de fichiers git stagés, un rapport lisible et un rapport JSON.
Empreintes
Empreintes des secrets d'une machine, pour un scan sur une autre, sans les valeurs.
Analyses à distance
Les mêmes fichiers vérifiés sur chaque machine contenant des secrets, avec les règles de votre projet incluses.
Configuration et CI
Un détecteur pour vos fichiers de secrets, des hooks git et un workflow GitHub Actions pour les archives de publication.
Prérequis
- Linux ou macOS avec Python 3.9 ou version ultérieure ; rien à installer via pip.
- Git pour les hooks, SSH pour les analyses à distance.
À savoir
- Il lit les fichiers tels qu’ils sont actuellement. Un secret déjà présent dans votre historique git y reste : faites-le tourner.
- Les archives situées dans un dossier analysé ne sont pas ouvertes ; analysez chaque archive séparément.
- Gardez les fichiers d’empreinte aussi privés que les secrets : ils contiennent les 4 premiers caractères de chaque valeur de 16 caractères ou plus.
Questions
En quoi cela diffère-t-il de gitleaks ou TruffleHog ?
Ces outils recherchent l’apparence habituelle des secrets, et ils le font bien. Secret Gate sait aussi quels sont réellement vos secrets : il lit vos propres fichiers de secrets et recherche ces valeurs exactes, de sorte qu’un mot de passe de base de données ou un jeton interne sans forme reconnaissable est également détecté. Il est conçu pour un moment précis, avant la publication, et échoue en mode sécurisé (fail closed).
Envoie-t-il mes secrets quelque part ?
Non. Les valeurs sont lues depuis vos fichiers en mémoire pour l’analyse et ne sont jamais affichées, écrites ni envoyées ; un fichier d’empreinte, si vous en créez un, contient un hash et les 4 premiers caractères de chaque valeur. Les analyses à distance envoient les fichiers que vous êtes sur le point de publier vers votre propre machine ; les secrets de cette machine y restent.
Et les fausses alertes ?
Une détection signifie « regardez ceci ». Si tout est normal, ajoutez une règle d’autorisation précise pour ce type de détection dans la configuration du projet, par exemple votre propre adresse de support. Il n’y a pas d’interrupteur pour désactiver une vérification.
Peut-il analyser mon historique git ?
Non. Il vérifie ce que vous êtes sur le point de publier : un dossier, une archive ou le prochain commit. Pour un secret déjà présent dans l’historique, faites tourner le secret.
Mis à jour: