Scanner des secrets dans du texte — Détecteur

Scannez du texte collé pour des motifs de secrets (clés AWS, PAT GitHub, PEM, etc.). Sous-ensemble documenté — pas un scanner de dépôt type gitleaks.

…
Scan de secrets (collage)
Recherche des motifs de secrets dans du texte collé. Liste fixe de détecteurs documentée ci-dessous — pas un équivalent gitleaks.

Notes développeur

Détecteurs v1 : pem_private_key, aws_access_key_id, github_pat, slack_token, generic_assignment, jwt_compact (opt-in), high_entropy_string (opt-in). Redaction : 4 premiers + 4 derniers caractères dans match et excerpt ; Copy n’exporte que des colonnes masquées. validate-env (DevOps) regarde surtout les noms de clés .env — complementary. Limite 512 Ko.

Options

Seuil de sévérité
all = tous les hits ; high = uniquement les sévérités high.
Indices d’entropie
Active des heuristiques d’entropie (bruyant) — désactivé par défaut.
Inclure JWT
Détecte des jetons JWT compact (sévérité low). Préférez jwt-decode pour lire un JWT.

Cas d’usage

Contrôle rapide d’un collage avant de le poster dans un ticket. Repérer un PAT GitHub ou une clé AWS évidente. Filtrer le bruit en mode high only.

Exemples

Extrait .env staging

Avant

# Déploiement staging — faux secrets pour la démo APP_NAME=payments-api NODE_ENV=staging LOG_LEVEL=info # AWS (faux AKIA de la doc AWS) AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE AWS_REGION=eu-central-1 # Déploiement GitHub Actions GITHUB_TOKEN=ghp_TESTONLYabcdefghijklmnopqrstuv # Bot Slack alertes SLACK_BOT_TOKEN=xoxb-0000000000-0000000000000-abcdefghijklmnopqrstuvwx # Base de données DATABASE_HOST=db.internal.example DATABASE_PORT=5432 password=notarealsecret123 # Callback auth (JWT — activer Include JWT) AUTH_JWT=eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJkZW1vIn0.sig # Blob haute entropie (Entropie — activer le toggle) Aa1!xY9zxY9zxY9zxY9zxY9zxY9zxY9zxY9z # Santé — pas de secret HEALTHCHECK_PATH=/health

Après (hits)

4 hits par défaut : aws_access_key_id (L7) · github_pat (L11) · slack_token (L14) · generic_assignment (L19, medium). Activez JWT (+ jwt_compact L22) et Entropie (+ high_entropy_string L25) pour 6 hits au total.

severityFloor=high

Avant

password=notarealsecret123 AKIAIOSFODNN7EXAMPLE

Après (hits)

Seul aws_access_key_id (high) ; generic_assignment omis

Outils liés

Pour les noms de clés .env utilisez validate-env. Pour un JWT compact : jwt-decode. Hub : outils sécurité.

FAQ Scan secrets

Sous-ensemble documenté

Quand utiliser validate-env ?

validate-env valide la structure .env et signale des noms de clés suspects. scan-secrets cherche des motifs de valeurs secrètes dans n’importe quel texte collé. Un .env vide n’est pas le même signal qu’un soft-empty ici.

Quand utiliser jwt-decode ?

Pour lire le header/payload d’un JWT, utilisez jwt-decode. L’option includeJwt de ce scanner est désactivée par défaut pour éviter les faux positifs.

Est-ce un scanner de dépôt complet ?

Non. C’est un sous-ensemble de motifs pour du texte collé, pas un scan de dépôt ni un pack de règles entreprise.

Quels détecteurs sont inclus ?

pem_private_key, aws_access_key_id, github_pat, slack_token, generic_assignment ; jwt_compact et high_entropy_string en opt-in.

JWKS, certificats X.509 et scan de secrets — locaux navigateur.