Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
credactor — Scannez. Expurgez. Committez proprement. | Kitploit
Outils/GitHubGitHub/rxb06/credactor
Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeDevSecOpsDétection de SecretsSécurité de la Chaîne Logistique
GitHubrxb06/credactor

credactor

Scannez. Expurgez. Committez proprement.

Voir le dépôt
8il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PyPI CI License

Credactor

Trouvez le secret. Corrigez-le. Commitez proprement.

Les scanners de secrets savent bien donner l'alerte, mais ne servent pas à grand-chose pour l'éteindre. Ils vous remettent une liste d'identifiants divulgués et vous laissent le nettoyage sur les bras. Credactor ferme la boucle : il détecte un secret codé en dur et le réécrit sur place, si bien qu'une fuite passe de la détection à la correction en une seule commande.

Garder les identifiants hors du code source est une pratique de sécurité élémentaire, pas facultative. Credactor rend ce socle facile à respecter, sur votre machine avant un commit ou en CI avant un merge. Utilisez-le seul, ou aux côtés des scanners auxquels vous faites déjà confiance.

Credactor : scannez, réécrivez, validez proprement
root@kitploit:~
# Credactor finds this:
db_password = "h8Tq2vKp9mRz4Wd"

# By default it rewrites the secret as a sentinel that fails loudly at runtime:
db_password = "REDACTED_BY_CREDACTOR"

# With --replace-with env, it writes a reference that reads from the environment:
db_password = os.environ["DB_PASSWORD"]

La réécriture modifie les fichiers de votre arbre de travail. Si un secret a déjà été commité, effectuez une rotation de la clé et nettoyez aussi l'historique (par exemple avec git filter-repo). Réécrire un fichier ne remplace pas la révocation d'un identifiant divulgué.


Pourquoi Credactor

  • Réécriture, pas seulement détection. La plupart des scanners s'arrêtent à la détection. Credactor remplace le secret sur place : une sentinelle REDACTED_BY_CREDACTOR qui échoue bruyamment à l'exécution par défaut, ou une référence de variable d'environnement adaptée au langage (Python, JavaScript/TypeScript, Go, Java/Kotlin, Ruby, PHP et shell) comme os.environ["KEY"]. Le remplacement est du code valide. Si le fichier ne contient pas déjà l'import correspondant (par exemple import os), ajoutez-le.
  • Sûr par défaut. Écritures atomiques, sauvegardes automatiques .bak, garde-fous contre les traversées de liens symboliques et les permissions de fichiers, et masquage complet du secret dans toutes les sorties. Si une sauvegarde sûre ne peut pas être écrite, Credactor ignore le fichier plutôt que de le réécrire à l'aveugle, et un crash en plein écriture laisse l'original intact.
  • Zéro dépendance d'exécution. Bibliothèque standard Python 3.11+ pure, plus un extra optionnel pour les encodages non-UTF-8.
  • Conçu pour le pipeline. Sortie SARIF pour GitHub Code Scanning, un contrôle --ci en lecture seule avec des codes de sortie précis, un hook pre-commit (bêta) et l'ingestion de rapports Gitleaks ou TruffleHog (BÊTA, avec d'autres à venir). Détectez avec Gitleaks ou TruffleHog, corrigez avec Credactor.

Installation

root@kitploit:~
pip install credactor

Requiert Python 3.11+. Aucune autre dépendance. Fonctionne sur Linux, macOS et Windows (testé en CI sur Linux et Windows).

Depuis les sources :

root@kitploit:~
git clone https://github.com/rxb06/credactor.git
cd credactor
pip install -e .

credactor fonctionne ensuite depuis n'importe quel répertoire.

Démarrage rapide

Exécutez --dry-run d'abord et examinez les résultats avant de réécrire. Les faux positifs sont possibles, et avec --fix-all un faux positif est réécrit. Excluez les valeurs connues comme sûres avec # credactor:ignore ou une entrée .credactorignore.

root@kitploit:~
credactor --dry-run .                 # scan, change nothing
credactor .                           # scan, then redact interactively (y/n per finding)
credactor --fix-all .                 # redact everything after one confirmation
credactor --fix-all --yes .           # redact non-interactively (CI / scripts)
credactor --ci .                      # read-only gate: exit 1 on findings
credactor --replace-with env .        # redact to env-var references instead of the sentinel

Hook pre-commit (bêta)

L'intégration du hook est en bêta. Exécutez credactor --dry-run . manuellement avant de vous y fier seul.

root@kitploit:~
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/rxb06/credactor
    rev: v2.5.0   # pin to the latest release tag
    hooks:
      - id: credactor

Détection

Credactor détecte les types d'identifiants qui fuient le plus souvent et attribue à chacun une sévérité pour un tri rapide.

Les jetons de fournisseurs déterministes (les préfixes ci-dessus) sont signalés indépendamment de l'entropie. Les détecteurs heuristiques (JWT, chaînes de connexion, hexadécimal, Base64) doivent franchir un seuil d'entropie. Une valeur hexadécimale ou Base64 isolée n'est signalée que lorsqu'elle est entre guillemets. Une valeur à haute entropie sans guillemets n'est détectée que sur une variable nommée comme un identifiant, ce qui épargne les SHA de git et les sommes de contrôle. Pour l'ensemble des règles de détection et de sévérité, consultez le Manuel.

L'ensemble de règles natif de Credactor est plus restreint que celui d'un scanner dédié, et certains formats de fournisseurs (par exemple SendGrid, Twilio et les webhooks Slack) ne sont pas détectés. Son atout est la remédiation : associez-le à Gitleaks ou TruffleHog pour la détection la plus large, ou exécutez-le seul.

Associez-le à un autre scanner, réécrivez le tout (BÊTA)

Credactor fonctionne seul, et il devient plus fort en compagnie. Vous utilisez déjà Gitleaks ou TruffleHog ? Passez leur rapport à Credactor et il réécrit l'ensemble combiné, dédupliqué par rapport à ses propres résultats (en cas de chevauchement, la sévérité la plus élevée l'emporte). Une seule passe de remédiation couvre votre scan et le leur :

root@kitploit:~
gitleaks dir . -f json -r gitleaks.json
credactor --from-gitleaks gitleaks.json --fix-all --yes .

--from-gitleaks / --from-trufflehog (ou une table [ingest] dans .credactor.toml) nécessitent un répertoire cible. Voir le guide d'intégration CI.

Autres fonctionnalités

  • Réécriture interactive ou par lot ; une chaîne de remplacement personnalisée via --replacement ; --scan-history pour scanner l'historique des commits git
  • Sauvegardes sécurisées : --secure-delete (écrase et supprime le .bak ; augmente la difficulté d'une récupération occasionnelle, sans garantie forensique) ou --secure-backup-dir pour stocker les sauvegardes hors du dépôt
  • Listes blanches en ligne # credactor:ignore et .credactorignore (globs, file:line, littéraux de valeurs)
  • Configuration par dépôt via .credactor.toml
  • 29 types de fichiers source/config/notes pris en charge par défaut (.txt inclus) ; --scan-json pour inclure le JSON ; --fail-on-error pour échouer quand un fichier ne peut pas être lu

Types de fichiers scannés

.py .js .ts .jsx .tsx .sh .bash .env .cfg .ini .toml .yaml .yml .rb .go .java

Plus les variantes .env.* / .env-* (.env.local, .env.production) et les fichiers SSH / clés privées (id_rsa, id_dsa, id_ecdsa, id_ed25519), tous détectés par nom de fichier plutôt que par extension. Le JSON est exclu par défaut car les réponses d'API produisent un taux de faux positifs élevé ; ajoutez --scan-json pour l'inclure. Un fichier nommé directement en ligne de commande est scanné même si son extension ne figure pas dans cette liste.

Codes de sortie

CodeSignification
0

Durcissement de la chaîne d'approvisionnement

Un outil de sécurité devrait être sûr à installer, et pas seulement sûr à exécuter. Le pipeline de construction et de publication de Credactor est durci de bout en bout ; tous les détails dans la documentation sécurité.

  • Zéro dépendance d'exécution. Une installation par défaut pip install credactor n'ajoute aucun paquet tiers (seulement l'extra optionnel [encoding]), il n'y a donc rien à vérifier au moment de l'installation.
  • Chaîne d'outils épinglée par hash. Les builds CI et de publication installent les dépendances depuis un lockfile --require-hashes, backend de build inclus (python -m build --no-isolation avec un setuptools épinglé), de sorte qu'une dépendance altérée fait échouer la construction.
  • Artefacts vérifiés octet par octet par rapport aux sources. À chaque push et avant chaque publication, scripts/audit_wheel.py compare la wheel et le sdist aux sources commitées octet par octet (sha256 contre git HEAD) ; tout fichier ajouté, manquant ou modifié fait échouer le contrôle, si bien qu'une étape de build ne peut pas injecter du code sans être vue.
  • CI épinglée par SHA et moindre privilège. Les GitHub Actions sont épinglées aux SHA de commit, et les jetons de workflow restent limités — contents: read par défaut, id-token: write uniquement pour le job de publication.

Documentation

Licence

Apache 2.0. Voir LICENSE.

Télécharger l’outil
CatégorieExemplesSévérité
Clés de fournisseurs cloudAWS (AKIA…), GCP (AIza…), Stripe (sk_live_…), Slack (xoxb-…)Critique
Jetons de plateformeGitHub (ghp_, github_pat_), GitLab (glpat-), npm (npm_), PyPI (pypi-)Critique
Clés privéesBlocs PEM (-----BEGIN … PRIVATE KEY-----)Critique
JWTJetons à trois segments eyJ…Élevée
Chaînes de connexionURL avec identifiants intégrés (scheme://user:pass@host)Élevée
Variables d'identifiantspassword = "…", api_key = "…", secret_key = "…"Élevée/Moyenne/Faible
Attributs XML<add key="Password" value="…" />Élevée/Moyenne/Faible
Chaînes à haute entropiehexadécimal entre guillemets (32–64 caractères) / Base64 (60+ caractères)Moyenne/Faible
.php
.cs
.kt
.tf
.hcl
.conf
.config
.properties
.xml
.pem
.key
.crt
.txt
Aucun résultat, ou tout a été résolu
1Résultats non résolus
2Erreur (par exemple : chemin invalide, --replacement dangereux, --ci --fix-all, ou --fail-on-error avec un fichier illisible)
DocumentDescription
Guide de configurationInstallation, configuration, intégration CI/CD
ManuelRéférence complète : chaque option, mode et combinaison, comportement de remplacement et de sauvegarde, détection et sévérité, codes de sortie et limitations (comportement vérifié par des tests)
ExemplesCas d'usage courants avec sorties
Intégration CIHooks pre-commit, pipelines CI
SécuritéModèle de menaces, mesures de durcissement, limitations connues
ChangelogHistorique des versions
ContribuerConfiguration de développement, style de code, processus de PR
AvertissementLimitations, utilisation sûre, garantie