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
trufflehog — Trouver, vérifier et analyser les identifiants divulgués | Kitploit
Outils/GitHubGitHub/trufflesecurity/trufflehog
Scanners de VulnérabilitésAnalyse Dynamique (Sandboxing)Analyse de CodeSécurité CloudDevSecOpsDétection de SecretsRenseignement sur les MenacesSécurité de la Chaîne LogistiqueRéponse aux Incidents
GitHubtrufflesecurity/trufflehog

trufflehog

Trouver, vérifier et analyser les identifiants divulgués

27.4k2.5k2il y a 5h 22mVérifié par Kitploit

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
Voir le dépôtSite web

Logo GoReleaser

TruffleHog

Trouvez les identifiants divulgués.


Go Report Card Licence Total Détecteurs


🔎 En cours d'analyse

...et plus encore

Pour en savoir plus sur TruffleHog, ses fonctionnalités et ses capacités, visitez notre page produit.

🌐 TruffleHog Enterprise

Êtes-vous intéressé par une surveillance continue de Git, Jira, Slack, Confluence, Microsoft Teams, Sharepoint (et plus) pour des identifiants ? Nous avons un produit entreprise qui peut vous aider ! En savoir plus sur https://trufflesecurity.com/trufflehog-enterprise.

Nous utilisons les revenus du produit entreprise pour financer d'autres projets open source formidables dont toute la communauté peut bénéficier.

Qu'est-ce que TruffleHog 🐽

TruffleHog est l'outil le plus puissant de Découverte, Classification, Validation et Analyse de secrets. Dans ce contexte, un secret fait référence à un identifiant qu'une machine utilise pour s'authentifier auprès d'une autre machine. Cela inclut les clés API, les mots de passe de base de données, les clés de chiffrement privées, etc.

Découverte 🔍

TruffleHog peut rechercher des secrets dans de nombreux endroits, notamment Git, les chats, les wikis, les logs, les plateformes de test d'API, les magasins d'objets, les systèmes de fichiers et plus encore.

Classification 📁

TruffleHog classifie plus de 800 types de secrets, en les reliant à l'identité spécifique à laquelle ils appartiennent. Est-ce un secret AWS ? Un secret Stripe ? Un secret Cloudflare ? Un mot de passe Postgres ? Une clé privée SSL ? Il est parfois difficile de le dire en l'observant, donc TruffleHog classifie tout ce qu'il trouve.

Validation ✅

Pour chaque secret que TruffleHog peut classifier, il peut également se connecter pour confirmer si ce secret est actif ou non. Cette étape est cruciale pour savoir s'il existe un danger actif ou non.

Analyse 🔬

Pour environ 20 des types d'identifiants les plus couramment divulgués, au lieu d'envoyer une seule requête pour vérifier si le secret peut se connecter, TruffleHog peut envoyer de nombreuses requêtes pour apprendre tout ce qu'il y a à savoir sur le secret. Qui l'a créé ? À quelles ressources peut-il accéder ? Quelles autorisations a-t-il sur ces ressources ?

📢 Rejoignez notre communauté

Des questions ? Des retours ? Rejoignez Slack ou Discord et traînez avec nous.

Rejoignez notre Communauté Slack

Rejoignez le Discord Secret Scanning

📺 Démo

Démo de scan GitHub```bash docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity

root@kitploit:~
# :floppy_disk: Installation

Plusieurs options s'offrent à vous :

### Utilisateurs MacOS```bash
brew install trufflehog

Docker:

Assurez-vous que le moteur Docker est en cours d'exécution avant d'exécuter les commandes suivantes :

    Unix```bash

docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys

root@kitploit:~
####     Invite de commandes Windows```bash
docker run --rm -it -v "%cd:/=\%:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys

    Windows PowerShell```bash

docker run --rm -it -v "${PWD}:/pwd" trufflesecurity/trufflehog github --repo https://github.com/trufflesecurity/test_keys

root@kitploit:~
####     M1 et M2 Mac```bash
docker run --platform linux/arm64 --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys

Versions binaires```bash

Download and unpack from https://github.com/trufflesecurity/trufflehog/releases

root@kitploit:~
### Compiler à partir des sources```bash
git clone https://github.com/trufflesecurity/trufflehog.git
cd trufflehog; go install

Utilisation du script d'installation```bash

curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin

root@kitploit:~
### Utiliser le script d'installation pour vérifier la signature du checksum (nécessite que cosign soit installé)```bash
curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -v -b /usr/local/bin

Utilisation du script d'installation pour installer une version spécifique```bash

curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin

root@kitploit:~
# :closed_lock_with_key: Vérification des artefacts

Des sommes de contrôle sont appliquées à tous les artefacts, et le fichier de somme de contrôle résultant est signé à l'aide de cosign.

Vous avez besoin de l'outil suivant pour vérifier la signature :

- [Cosign](https://docs.sigstore.dev/cosign/system_config/installation/)

Les étapes de vérification sont les suivantes :

1. Téléchargez les fichiers d'artefact souhaités, ainsi que les fichiers suivants depuis la page des [versions](https://github.com/trufflesecurity/trufflehog/releases).

   - trufflehog\_{version}\_checksums.txt
   - trufflehog\_{version}\_checksums.txt.pem
   - trufflehog\_{version}\_checksums.txt.sig

2. Vérifiez la signature :   ```shell
   cosign verify-blob <path to trufflehog_{version}_checksums.txt> \
   --certificate <path to trufflehog_{version}_checksums.txt.pem> \
   --signature <path to trufflehog_{version}_checksums.txt.sig> \
   --certificate-identity-regexp 'https://github\.com/trufflesecurity/trufflehog/\.github/workflows/.+' \
   --certificate-oidc-issuer "https://token.actions.githubusercontent.com"
  1. Une fois que la signature est confirmée comme valide, vous pouvez procéder à la validation que les sommes SHA256 correspondent à l'artefact téléchargé : ```shell sha256sum --ignore-missing -c trufflehog_{version}_checksums.txt
    root@kitploit:~

Remplacez {version} par la version des fichiers téléchargés

Alternativement, si vous utilisez le script d'installation, passez l'option -v pour effectuer la vérification de la signature. Cela nécessite que le binaire Cosign soit installé avant d'exécuter le script d'installation.

🚀 Démarrage rapide

1: Analyser un dépôt pour les secrets vérifiés uniquement

Commande:```bash trufflehog git https://github.com/trufflesecurity/test_keys --results=verified

root@kitploit:~
Sortie attendue :```
🐷🔑🐷  TruffleHog. Unearth your secrets. 🐷🔑🐷

Found verified result 🐷🔑
Detector Type: AWS
Decoder Type: PLAIN
Raw result: AKIAYVP4CIPPERUVIFXG
Line: 4
Commit: fbc14303ffbf8fb1c2c1914e8dda7d0121633aca
File: keys
Email: counter <[email protected]>
Repository: https://github.com/trufflesecurity/test_keys
Timestamp: 2022-06-16 10:17:40 -0700 PDT
...

2: Analyser une organisation GitHub pour uniquement les secrets vérifiés```bash

trufflehog github --org=trufflesecurity --results=verified

root@kitploit:~
## 3: Analyser une organisation GitHub en excluant les dépôts archivés```bash
trufflehog github --org=trufflesecurity --exclude-archived

4: Scannez un dépôt GitHub pour les secrets vérifiés uniquement et obtenez une sortie JSON

Commande:```bash trufflehog git https://github.com/trufflesecurity/test_keys --results=verified --json

root@kitploit:~
Sortie attendue :```
{"SourceMetadata":{"Data":{"Git":{"commit":"fbc14303ffbf8fb1c2c1914e8dda7d0121633aca","file":"keys","email":"counter \[email protected]\u003e","repository":"https://github.com/trufflesecurity/test_keys","timestamp":"2022-06-16 10:17:40 -0700 PDT","line":4}}},"SourceID":0,"SourceType":16,"SourceName":"trufflehog - git","DetectorType":2,"DetectorName":"AWS","DecoderName":"PLAIN","Verified":true,"Raw":"AKIAYVP4CIPPERUVIFXG","Redacted":"AKIAYVP4CIPPERUVIFXG","ExtraData":{"account":"595918472158","arn":"arn:aws:iam::595918472158:user/canarytokens.com@@mirux23ppyky6hx3l6vclmhnj","user_id":"AIDAYVP4CIPPJ5M54LRCY"},"StructuredData":null}
...

5: Analyser un dépôt GitHub + ses Issues et Pull Requests```bash

trufflehog github --repo=https://github.com/trufflesecurity/test_keys --issue-comments --pr-comments

root@kitploit:~
## 6: Analyser un compartiment S3 pour des résultats à haute confiance (vérifiés + inconnus)```bash
trufflehog s3 --bucket=<bucket name> --results=verified,unknown

7: Analyser S3 buckets à l'aide de IAM Roles```bash

trufflehog s3 --role-arn=

root@kitploit:~
## 8: Analyser un dépôt GitHub en utilisant l'authentification SSH dans Docker```bash
docker run --rm -v "$HOME/.ssh:/root/.ssh:ro" trufflesecurity/trufflehog:latest git ssh://github.com/trufflesecurity/test_keys

9: Analyser des fichiers ou dossiers individuels```bash

trufflehog filesystem path/to/file1.txt path/to/file2.txt path/to/dir

root@kitploit:~
## 10: Analyser un dépôt git local

Clonez le dépôt git. Par exemple [clés de test](https://github.com/trufflesecurity/trufflehog/blob/HEAD/[email protected]:trufflesecurity/test_keys.git) dépôt.```bash
git clone [email protected]:trufflesecurity/test_keys.git

Exécutez trufflehog depuis le répertoire parent (en dehors du dépôt git).```bash trufflehog git file://test_keys --results=verified,unknown

root@kitploit:~
Pour se prémunir contre les configurations git malveillantes lors de l'analyse locale (voir CVE-2025-41390), TruffleHog clone les dépôts git locaux vers un répertoire temporaire avant l'analyse. Cela suit les [bonnes pratiques de sécurité de Git](https://git-scm.com/docs/git#_security). Si vous souhaitez spécifier un chemin personnalisé pour cloner le dépôt (au lieu de tmp), vous pouvez utiliser l'option `--clone-path`. Si vous souhaitez ignorer le processus de clonage local et analyser directement le dépôt (à faire uniquement pour les dépôts de confiance), vous pouvez utiliser l'option `--trust-local-git-config`.

## 11: Analyser les buckets GCS uniquement pour les secrets vérifiés```bash
trufflehog gcs --project-id=<project-ID> --cloud-environment --results=verified

12: Analyser une image Docker pour les secrets vérifiés uniquement

Utilisez le flag --image plusieurs fois pour analyser plusieurs images.```bash

to scan from a remote registry

trufflehog docker --image trufflesecurity/secrets --results=verified

to scan from the local docker daemon

trufflehog docker --image docker://new_image:tag --results=verified

to scan from an image saved as a tarball

trufflehog docker --image file://path_to_image.tar --results=verified

root@kitploit:~
## 13: Scan dans le CI

Définissez l'indicateur `--since-commit` sur votre branche par défaut vers laquelle les gens fusionnent (ex : "main"). Définissez l'indicateur `--branch` sur le nom de la branche de votre PR (ex : "feature-1"). Selon la plateforme CI/CD que vous utilisez, cette valeur peut être récupérée dynamiquement (ex : [CIRCLE_BRANCH dans Circle CI](https://circleci.com/docs/variables/) et [TRAVIS_PULL_REQUEST_BRANCH dans Travis CI](https://docs.travis-ci.com/user/environment-variables/)). Si le dépôt est cloné et que la branche cible est déjà extraite lors du workflow CI/CD, alors `--branch HEAD` devrait suffire. L'indicateur `--fail` renverra un code d'erreur 183 si des identifiants valides sont trouvés.```bash
trufflehog git file://. --since-commit main --branch feature-1 --results=verified,unknown --fail

14: Analyser un workspace Postman

Utilisez les options --workspace-id, --collection-id, --environment plusieurs fois pour analyser plusieurs cibles.```bash trufflehog postman --token= --workspace-id=

root@kitploit:~
## 15: Scanner un serveur Jenkins```bash
trufflehog jenkins --url https://jenkins.example.com --username admin --password admin

16: Analyser un serveur Elasticsearch

Analyser un cluster local

Il existe deux façons de s'authentifier auprès d'un cluster local avec TruffleHog : (1) nom d'utilisateur et mot de passe, (2) jeton de service.

Se connecter à un cluster local avec nom d'utilisateur et mot de passe```bash

trufflehog elasticsearch --nodes 192.168.14.3 192.168.14.4 --username truffle --password hog

root@kitploit:~
#### Se connecter à un cluster local avec un jeton de service```bash
trufflehog elasticsearch --nodes 192.168.14.3 192.168.14.4 --service-token ‘AAEWVaWM...Rva2VuaSDZ’

Analyser un cluster Elastic Cloud

Pour analyser un cluster sur Elastic Cloud, vous aurez besoin d’un Cloud ID et d’une API key.```bash trufflehog elasticsearch
--cloud-id 'search-prod:dXMtY2Vx...YjM1ODNlOWFiZGRlNjI0NA=='
--api-key 'MlVtVjBZ...ZSYlduYnF1djh3NG5FQQ=='

root@kitploit:~
## 17. Analyser un dépôt GitHub pour les références d'objets entre forks et les commits supprimés

La commande suivante énumérera les commits supprimés et cachés sur un dépôt GitHub, puis les analysera à la recherche de secrets. Il s'agit d'une fonctionnalité en version alpha.```bash
trufflehog github-experimental --repo https://github.com/<USER>/<REPO>.git --object-discovery

En plus de la sortie normale de TruffleHog, le flag --object-discovery crée deux fichiers dans un nouveau répertoire $HOME/.trufflehog : valid_hidden.txt et invalid.txt. Ceux-ci sont utilisés pour suivre l'état lors de l'énumération des commits, ainsi que pour fournir aux utilisateurs une liste complète de tous les commits cachés et supprimés (valid_hidden.txt). Si vous souhaitez supprimer automatiquement ces fichiers après l'analyse, veuillez ajouter le flag --delete-cached-data.

Note : L'énumération de tous les commits valides sur un dépôt en utilisant cette méthode prend entre 20 minutes et quelques heures, selon la taille de votre dépôt. Nous avons ajouté une barre de progression pour vous tenir informé de la durée de l'énumération. L'analyse réelle des secrets est extrêmement rapide.

Pour plus d'informations sur les Cross Fork Object References, veuillez lire notre article de blog.

18. Analyser Hugging Face

Analyser un modèle, dataset, espace ou bucket Hugging Face```bash

trufflehog huggingface
--model <model_id>
--dataset <dataset_id>
--space <space_id>
--bucket <bucket_id>

root@kitploit:~
### Analyser tous les Models, Datasets, Spaces et Buckets appartenant à une organisation ou à un utilisateur Hugging Face```bash
trufflehog huggingface --org <orgname> --user <username>

(Optionnel) Lors de l'analyse d'une organisation ou d'un utilisateur, vous pouvez ignorer une classe entière de ressources avec --skip-all-models, --skip-all-datasets, --skip-all-spaces, --skip-all-buckets OU une ressource particulière avec --ignore-models <model_id>, --ignore-datasets <dataset_id>, --ignore-spaces <space_id>, --ignore-buckets <bucket_id>.

Analyser les discussions et les commentaires de PR```bash

trufflehog huggingface --model <model_id> --include-discussions --include-prs

root@kitploit:~
## 19. Scanner stdin Input```bash
aws s3 cp s3://example/gzipped/data.gz - | gunzip -c | trufflehog stdin

❓ FAQ

  • Tout ce que je vois c'est 🐷🔑🐷 TruffleHog. Unearth your secrets. 🐷🔑🐷 et le programme se termine, qu'est-ce qui se passe ?
    • Cela signifie qu'aucun secret n'a été détecté
  • Pourquoi l'analyse prend-elle beaucoup de temps lorsque je scanne une organisation GitHub ?
    • Les analyses GitHub non authentifiées ont des limites de débit. Pour améliorer vos limites de débit, incluez l'option --token avec un jeton d'accès personnel.
  • Il est dit qu'une clé privée a été vérifiée, qu'est-ce que cela signifie ?
    • Un résultat vérifié signifie que TruffleHog a confirmé que l'identifiant est valide en le testant contre l'API du service. Pour les clés privées, nous avons confirmé que la clé peut être utilisée en direct pour l'authentification SSH ou SSL. Consultez notre article de blog Driftwood pour en savoir plus Article de blog
  • Existe-t-il un moyen simple d'ignorer des secrets spécifiques ?
    • Si la source scannée prend en charge les numéros de ligne, vous pouvez ajouter un commentaire trufflehog:ignore sur la ligne contenant le secret pour ignorer ce secret.

📰 Quoi de neuf dans v3 ?

TruffleHog v3 est une réécriture complète en Go avec de nombreuses nouvelles fonctionnalités puissantes.

  • Nous avons ajouté plus de 700 détecteurs d'identifiants qui prennent en charge la vérification active auprès de leurs API respectives.
  • Nous avons également ajouté un support natif pour l'analyse de GitHub, GitLab, Docker, systèmes de fichiers, S3, GCS, Circle CI et Travis CI.
  • Vérifiez instantanément les clés privées par rapport à des millions d'utilisateurs GitHub et des milliards de certificats TLS en utilisant notre technologie Driftwood.
  • Analysez les binaires, documents et autres formats de fichiers
  • Disponible en tant qu'action GitHub et hook pre-commit

Qu'est-ce que la vérification des identifiants ?

Pour chaque identifiant potentiel détecté, nous avons méticuleusement implémenté une vérification programmatique contre l'API à laquelle nous pensons qu'il appartient. La vérification élimine les faux positifs et fournit trois statuts de résultat :

  • verified : Identifiant confirmé comme valide et actif par test API
  • unverified : Identifiant détecté mais non confirmé valide (peut être invalide, expiré ou vérification désactivée)
  • unknown : Vérification tentée mais échouée en raison d'erreurs, telles qu'une panne réseau ou API

Par exemple, le détecteur d'identifiants AWS effectue un appel API GetCallerIdentity vers l'API AWS pour vérifier si un identifiant AWS est actif.

📝 Utilisation

TruffleHog possède une sous-commande pour chaque source de données que vous souhaitez analyser :

  • git
  • github
  • gitlab
  • huggingface
  • docker
  • s3
  • filesystem (files and directories)
  • syslog
  • circleci
  • travisci
  • gcs (Google Cloud Storage)
  • postman
  • jenkins
  • elasticsearch
  • stdin
  • multi-scan

Chaque sous-commande peut avoir des options que vous pouvez voir avec l'option --help fournie à la sous-commande :``` $ trufflehog git --help usage: TruffleHog [] [ ...]

TruffleHog is a tool for finding credentials.

Flags: -h, --[no-]help Show context-sensitive help (also try --help-long and --help-man). --log-level=0 Logging verbosity on a scale of 0 (info) to 5 (trace). Can be disabled with "-1". --[no-]profile Enables profiling and sets a pprof and fgprof server on :18066. -j, --[no-]json Output in JSON format. --[no-]json-legacy Use the pre-v3.0 JSON format. Only works with git, gitlab, and github sources. --[no-]github-actions Output in GitHub Actions format. --concurrency=12 Number of concurrent workers. --[no-]no-verification Don't verify the results. --results=RESULTS Specifies which type(s) of results to output: verified (confirmed valid by API), unknown (verification failed due to error), unverified (detected but not verified), filtered_unverified (unverified but would have been filtered out). Defaults to verified,unverified,unknown. --[no-]no-color Disable colorized output --[no-]allow-verification-overlap Allow verification of similar credentials across detectors --[no-]filter-unverified Only output first unverified result per chunk per detector if there are more than one results. --filter-entropy=FILTER-ENTROPY Filter unverified results with Shannon entropy. Start with 3.0. --config=CONFIG Path to configuration file. --[no-]print-avg-detector-time Print the average time spent on each detector. --[no-]no-update Don't check for updates. --[no-]fail Exit with code 183 if results are found. --[no-]fail-on-scan-errors Exit with non-zero error code if an error occurs during the scan. --verifier=VERIFIER ... Set custom verification endpoints. --[no-]custom-verifiers-only Only use custom verification endpoints. --detector-timeout=DETECTOR-TIMEOUT Maximum time to spend scanning chunks per detector (e.g., 30s). --archive-max-size=ARCHIVE-MAX-SIZE Maximum size of archive to scan. (Byte units eg. 512B, 2KB, 4MB) --archive-max-depth=ARCHIVE-MAX-DEPTH Maximum depth of archive to scan. --archive-timeout=ARCHIVE-TIMEOUT Maximum time to spend extracting an archive. --include-detectors="all" Comma separated list of detector types to include. Protobuf name or IDs may be used, as well as ranges. --exclude-detectors=EXCLUDE-DETECTORS Comma separated list of detector types to exclude. Protobuf name or IDs may be used, as well as ranges. IDs defined here take precedence over the include list. --[no-]no-verification-cache Disable verification caching --[no-]force-skip-binaries Force skipping binaries. --[no-]force-skip-archives Force skipping archives. --[no-]skip-additional-refs Skip additional references. --user-agent-suffix=USER-AGENT-SUFFIX Suffix to add to User-Agent. --[no-]version Show application version.

Commands: help [...] Show help.

git []

root@kitploit:~
Find credentials in git repositories.

github [] Find credentials in GitHub repositories.

github-experimental --repo=REPO [] Run an experimental GitHub scan. Must specify at least one experimental sub-module to run: object-discovery.

gitlab --token=TOKEN [] Find credentials in GitLab repositories.

filesystem [] [...] Find credentials in a filesystem.

s3 [] Find credentials in S3 buckets.

gcs [] Find credentials in GCS buckets.

syslog --format=FORMAT [] Scan syslog

circleci --token=TOKEN Scan CircleCI

docker [] Scan Docker Image

travisci --token=TOKEN Scan TravisCI

postman [] Scan Postman

elasticsearch [] Scan Elasticsearch

jenkins --url=URL [] Scan Jenkins

huggingface [] Find credentials in HuggingFace datasets, models and spaces.

stdin Find credentials from stdin.

multi-scan Find credentials in multiple sources defined in configuration.

json-enumerator [...] Find credentials from a JSON enumerator input.

analyze Analyze API keys for fine-grained permissions information.

root@kitploit:~
Par exemple, pour analyser un dépôt `git`, commencez par```
trufflehog git https://github.com/trufflesecurity/trufflehog.git

Configuration

TruffleHog permet de définir des détecteurs regex personnalisés et plusieurs sources dans un fichier de configuration fourni via le flag --config. Les détecteurs regex peuvent être utilisés avec n'importe quelle sous-commande, tandis que les sources définies dans la configuration sont uniquement pour la sous-commande multi-scan.

Le format de configuration des sources se trouve sur la page de documentation de configuration des sources de Truffle Security page de documentation de configuration des sources.

Exemple de configuration source GitHub et référence des options:```yaml sources:

  • connection: '@type': type.googleapis.com/sources.GitHub repositories:
    • https://github.com/trufflesecurity/test_keys.git unauthenticated: {} name: example config scan type: SOURCE_TYPE_GITHUB verify: true
root@kitploit:~
Vous pouvez définir plusieurs connexions sous la clé `sources` (voir ci-dessus), et TruffleHog analysera toutes les sources simultanément.

## S3

La source S3 prend en charge l'assomption de rôles IAM pour le scan en plus des utilisateurs IAM. Cela facilite pour les utilisateurs le scan de plusieurs comptes AWS sans avoir besoin de compter sur des identifiants codés en dur pour chaque compte.

L'identité IAM que TruffleHog utilise initialement devra avoir les privilèges `AssumeRole` en tant que principal dans la [politique de confiance](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/) de chaque rôle IAM à assumer.

Pour scanner un bucket spécifique en utilisant des identifiants définis localement ou les métadonnées d'instance si sur une instance EC2 :```bash
trufflehog s3 --bucket=<bucket-name>

Pour analyser un bucket spécifique en utilisant un rôle assumé :```bash trufflehog s3 --bucket= --role-arn=

root@kitploit:~
Plusieurs rôles peuvent être passés comme arguments séparés. La commande suivante tentera de scanner chaque bucket pour lequel chaque rôle a les permissions de lister dans l'API S3 :```bash
trufflehog s3 --role-arn=<iam-role-arn-1> --role-arn=<iam-role-arn-2>

Codes de sortie :

  • 0 : Aucune erreur et aucun résultat trouvé.
  • 1 : Une erreur a été rencontrée. Les sources peuvent ne pas avoir terminé les analyses.
  • 183 : Aucune erreur rencontrée, mais des résultats ont été trouvés. Ne sera renvoyé que si le drapeau --fail est utilisé.

:octocat: TruffleHog Action GitHub

Utilisation générale```

on: push: branches: - main pull_request:

jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Secret Scanning uses: trufflesecurity/trufflehog@main with: extra_args: --results=verified,unknown

root@kitploit:~
Dans l'exemple de configuration ci-dessus, nous recherchons les secrets actifs dans toutes les PR et les push vers `main`. Seules les modifications de code dans les commits référencés sont analysées. Si vous souhaitez analyser une branche entière, veuillez consulter la section "Utilisation avancée" ci-dessous.

### Clonage superficiel

Si vous intégrez TruffleHog dans un workflow autonome et que vous n'exécutez aucun autre outil CI/CD parallèlement à TruffleHog, nous vous recommandons d'utiliser le [clonage superficiel](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt) pour accélérer votre workflow. Voici un exemple de la manière de procéder :```
...
      - shell: bash
        run: |
          if [ "${{ github.event_name }}" == "push" ]; then
            echo "depth=$(($(jq length <<< '${{ toJson(github.event.commits) }}') + 2))" >> $GITHUB_ENV
            echo "branch=${{ github.ref_name }}" >> $GITHUB_ENV
          fi
          if [ "${{ github.event_name }}" == "pull_request" ]; then
            echo "depth=$((${{ github.event.pull_request.commits }}+2))" >> $GITHUB_ENV
            echo "branch=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV
          fi
      - uses: actions/checkout@v3
        with:
          ref: ${{env.branch}}
          fetch-depth: ${{env.depth}}
      - uses: trufflesecurity/trufflehog@main
        with:
          extra_args: --results=verified,unknown
...

En fonction du type d'événement (push ou PR), nous calculons le nombre de commits présents. Nous ajoutons ensuite 2, afin de pouvoir référencer un commit de base avant nos modifications de code. Nous passons cette valeur entière au drapeau fetch-depth dans l'action checkout en plus de la branche concernée. Maintenant, notre processus de checkout devrait être beaucoup plus court.

Détection des canaris

TruffleHog détecte statiquement https://canarytokens.org/.

image

Utilisation avancée```yaml

  • name: TruffleHog uses: trufflesecurity/trufflehog@main with:

    Repository path

    path:

    Start scanning from here (usually main branch).

    base:

    Scan commits until here (usually dev branch).

    head: # optional

    Extra args to be passed to the trufflehog cli.

    extra_args: --log-level=2 --results=verified,unknown

    Scan with a specific TruffleHog version (default: latest).

    version:

    Docker image to pull. Override to use a registry mirror (default: ghcr.io/trufflesecurity/trufflehog).

    image:
root@kitploit:~
Si vous souhaitez spécifier des références `base` et `head` spécifiques, vous pouvez utiliser l'argument `base` (le drapeau `--since-commit` dans l'interface en ligne de commande de TruffleHog) et l'argument `head` (le drapeau `--branch` dans l'interface en ligne de commande de TruffleHog). Nous recommandons d'utiliser ces arguments uniquement pour des cas d'utilisation très spécifiques, lorsque le comportement par défaut ne fonctionne pas.

#### Utilisation avancée : Analyser une branche entière```
- name: scan-push
        uses: trufflesecurity/trufflehog@main
        with:
          base: ""
          head: ${{ github.ref_name }}
          extra_args: --results=verified,unknown

TruffleHog GitLab CI

Exemple d'utilisation```yaml

stages:

  • security

security-secrets: stage: security allow_failure: false image: alpine:latest variables: SCAN_PATH: "." # Set the relative path in the repo to scan before_script: - apk add --no-cache git curl jq - curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin script: - trufflehog filesystem "$SCAN_PATH" --results=verified,unknown --fail --json | jq rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'

root@kitploit:~
Dans l'exemple de pipeline ci-dessus, nous recherchons des secrets actifs dans tous les répertoires et fichiers du dépôt. Ce travail ne s'exécute que lorsque la source du pipeline est un événement de demande de fusion, ce qui signifie qu'il est déclenché lors de la création d'une nouvelle demande de fusion.

## Hook de pré-commit

TruffleHog peut être utilisé dans un hook de pré-commit pour empêcher les fuites d'identifiants avant qu'ils ne quittent votre ordinateur.

Voir la [documentation du hook de pré-commit](https://github.com/trufflesecurity/trufflehog/blob/HEAD/PreCommit.md) pour plus d'informations.

## Détecteur d'expressions régulières personnalisé (alpha)

TruffleHog prend en charge la détection et la vérification d'expressions régulières personnalisées.
Pour la détection, au moins une **expression régulière** et un **mot-clé** sont requis.
Un **mot-clé** est un identifiant de chaîne littérale fixe qui apparaît dans ou autour
de l'expression régulière à détecter. Pour offrir une flexibilité maximale pour la vérification,
un webhook contenant les correspondances d'expressions régulières est utilisé.

TruffleHog envoie une requête POST JSON contenant les correspondances d'expressions régulières à un
point de terminaison de webhook configuré. Si le point de terminaison répond avec un code de statut
`200 OK`, le secret est considéré comme vérifié. Si la vérification échoue en raison d'erreurs réseau/API,
le résultat est marqué comme inconnu.

Les détecteurs personnalisés prennent en charge plusieurs mécanismes de filtrage : l'entropie, les expressions régulières ciblant la correspondance entière, les expressions régulières ciblant le secret capturé,
et les listes de mots exclus vérifiés par rapport au secret (groupe capturé s'il est présent, correspondance entière si le groupe de capture n'est pas présent). Notez que si
votre détecteur personnalisé a plusieurs `regex` définies (dans cet exemple `hogID` et `hogToken`),
alors les filtres sont appliqués à chaque expression régulière. [Voici](https://github.com/trufflesecurity/trufflehog/blob/HEAD/examples/generic_with_filters.yml) un exemple de détecteur personnalisé utilisant ces filtres.

**NB :** Cette fonctionnalité est en alpha et susceptible de changer.

### Exemple de détecteur d'expression régulière
[Voici](https://github.com/trufflesecurity/trufflehog/blob/HEAD/pkg/custom_detectors/CUSTOM_DETECTORS.md) comment configurer un détecteur d'expression régulière personnalisé avec un serveur de vérification.

## Détection JWT générique

TruffleHog prend en charge la détection et la vérification d'un sous-ensemble de JWT génériques qu'il trouve.
Plus précisément, si un JWT utilise la cryptographie à clé publique plutôt que HMAC et que la clé publique peut être obtenue,
TruffleHog peut déterminer si le JWT est actif ou non.

## :mag: Analyser

TruffleHog prend en charge l'exécution d'une analyse plus approfondie d'un identifiant pour visualiser ses autorisations et les ressources auxquelles il a accès.```bash
trufflehog analyze

❤️ Contributeurs

Ce projet existe grâce à toutes les personnes qui contribuent. [Contribuer].

💻 Contribuer

Les contributions sont les bienvenues ! Veuillez d'abord consulter nos directives de contribution.

Nous n'acceptons plus de contributions à TruffleHog v2, mais ce code est disponible dans la branche v2.

Ajout de nouveaux détecteurs de secrets

Nous avons publié une documentation et des outils pour commencer à ajouter de nouveaux détecteurs de secrets. Améliorons la détection ensemble !

Utilisation en tant que bibliothèque

Actuellement, trufflehog est en plein développement et aucune garantie ne peut être donnée sur la stabilité des API publiques à ce stade.

Changement de licence

Depuis la v3.0, TruffleHog est publié sous licence AGPL 3, incluse dans LICENSE. TruffleHog v3.0 n'utilise rien de la base de code précédente, mais des précautions ont été prises pour préserver la rétrocompatibilité de l'interface en ligne de commande. Les travaux antérieurs à cette version sont toujours disponibles sous licence GPL 2.0 dans l'historique de ce dépôt et les versions et tags précédents. Un CLA signé est nécessaire pour que nous puissions accepter les contributions à l'avenir.

Télécharger l’outil