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
rusty-hog — Scanneur de secrets multi-source détectant les clés API, mots de passe et PII dans les dépôts Git, les buckets S3, les systèmes de fichiers, Confluence, JIRA, Slack et Google Docs à l'aide d'expressions régulières et d'analyse d'entropie. | Kitploit
Outils/GitHubGitHub/newrelic/rusty-hog
Analyse de CodeSécurité CloudDevSecOpsDétection de Secrets
GitHubnewrelic/rusty-hog

rusty-hog

Scanneur de secrets multi-source détectant les clés API, mots de passe et PII dans les dépôts Git, les buckets S3, les systèmes de fichiers, Confluence, JIRA, Slack et Google Docs à l'aide d'expressions régulières et d'analyse d'entropie.

Voir le dépôt
55563il y a 16 joursVé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

Rusty Hog est un scanner de secrets construit en Rust pour la performance, et basé sur TruffleHog qui est écrit en Python. Rusty Hog fournit les binaires suivants :

  • Ankamali Hog : Scanne les secrets dans un document Google.
  • Berkshire Hog : Scanne les secrets dans un bucket S3.
  • Choctaw Hog : Scanne les secrets dans un dépôt Git.
  • Duroc Hog : Scanne les secrets dans un répertoire, un fichier et une archive.
  • Essex Hog : Scanne les secrets dans une page wiki Confluence.
  • Gottingen Hog : Scanne les secrets dans un ticket JIRA.
  • Slack Hog : Scanne les secrets dans un canal Slack.

Table des matières

  • Utilisation
    • Comment installer en utilisant les binaires téléchargés
    • Comment exécuter en utilisant DockerHub
    • Comment compiler
    • Comment compiler sur Windows
    • Utilisation d'Anakamali Hog (scanner GDoc)
    • Utilisation de Berkshire Hog (scanner S3 - CLI)
    • Utilisation de Berkshire Hog (scanner S3 - Lambda)
    • Utilisation de Choctaw Hog (scanner Git)
    • Utilisation de Duroc Hog (scanner système de fichiers)
    • Utilisation d'Essex Hog (scanner Confluence)
    • Utilisation de Gottingen Hog (scanner JIRA)
    • Utilisation de Slack Hog (scanner Slack)
    • Format du fichier JSON d'expressions régulières
    • Format du fichier JSON de liste autorisée
  • Informations sur le projet
    • Licence open source
    • Support
    • Communauté
    • Problèmes / demandes d'amélioration
    • Contribuer
    • Feuille de route
    • Que signifie le nom ?

Utilisation

Ce projet fournit un ensemble de scanners qui utilisent des expressions régulières pour tenter de détecter la présence d'informations sensibles, telles que des clés API, des mots de passe et des informations personnelles. Il inclut un ensemble d'expressions régulières par défaut, mais accepte également un objet JSON contenant vos expressions régulières personnalisées.

Comment installer en utilisant les binaires téléchargés

Téléchargez et décompressez le dernier ZIP sur l'onglet des versions. Ensuite, exécutez chaque binaire avec -h pour voir l'utilisation.```shell script wget https://github.com/newrelic/rusty-hog/releases/download/v1.0.11/rustyhogs-darwin-choctaw_hog-1.0.11.zip unzip rustyhogs-darwin-choctaw_hog-1.0.11.zip darwin_releases/choctaw_hog -h

root@kitploit:~
## Comment exécuter avec DockerHub
Les images Docker Rusty Hog se trouvent sur la page DockerHub personnelle de l'auteur [ici](https://hub.docker.com/u/wetfeet2000)
Une image Docker est construite pour chaque Hog et pour chaque version. Ainsi, pour utiliser choctaw_hog, vous exécuteriez les commandes suivantes :```shell script
docker pull wetfeet2000/choctaw_hog:1.0.10
docker run -it --rm wetfeet2000/choctaw_hog:1.0.10 --help

Comment construire

  • Assurez-vous d'avoir Rust installé et dans votre PATH.
  • Clonez ce dépôt, puis exécutez cargo build --release. Les binaires se trouvent dans target/release.
  • Pour construire et visualiser les documents HTML, exécutez cargo doc --no-deps --open.
  • Pour exécuter les tests unitaires, exécutez cargo test.
  • Pour cross-compiler Berkshire Hog pour l'environnement AWS Lambda, exécutez les commandes suivantes et téléchargez berkshire_lambda.zip vers votre tableau de bord AWS Lambda :```shell script docker run --rm -it -v "$(pwd)":/home/rust/src ekidd/rust-musl-builder cargo build --release cp target/x86_64-unknown-linux-musl/release/berkshire_hog bootstrap zip -j berkshire_lambda.zip bootstrap
root@kitploit:~
## Comment compiler sous Windows
Vous devrez compiler les binaires statiques d'OpenSSL et indiquer à Rust/Cargo où les trouver:```
mkdir \Tools
cd \Tools
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg.exe install openssl:x64-windows-static

$env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static'
$env:OPENSSL_STATIC = 'Yes'
[System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User)

Vous pouvez maintenant suivre les instructions principales de construction listées ci-dessus.

Comment construire Berkshire Hog pour Lambda

macOS

Utilisez Homebrew pour obtenir les dépendances :``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross

root@kitploit:~
Puis exécutez `./build_lambda_macos.sh`.

Le script de build construira avec OpenSSL 3.0.12. Utilisez `export OPENSSL_BUILD_VER=3.0.12` pour le remplacer.

Le script de build construira avec les en-têtes du noyau Amazon Linux fournis par leur RPM ; `export AMAZON_KERNEL_HEADERS_RPM_URL=...` pour remplacer l'URL de téléchargement du RPM. (Rien n'empêche d'utiliser un RPM d'en-têtes linux d'une distribution différente, nous avons juste besoin des en-têtes linux pour construire openssl pour Linux)

Le script de build créera un répertoire build-deps dans la racine de votre source actuelle. Vous pouvez supprimer ce répertoire en toute sécurité avec `rm -rf`, mais il sera recréé lors de la prochaine exécution du script de build. Il effectuera également diverses vérifications de cohérence pour s'assurer que la build devrait fonctionner et si elles échouent, il pourrait vous demander de `rm -rf` ce répertoire de toute façon pour réessayer.

### Linux

Assurez-vous que `cross` est installé (`cargo install cross`), puis exécutez simplement `./build_lambda.sh`.

# Commandes

## Utilisation d'Anakamali Hog (GDoc Scanner)```
USAGE:
    ankamali_hog [FLAGS] [OPTIONS] <GDRIVEID>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --oauthsecret        Path to an OAuth secret file (JSON) ./clientsecret.json by default
        --oauthtoken         Path to an OAuth token storage file ./temp_token by default
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)

        --regex <REGEX>                                            Sets a custom regex JSON file

ARGS:
    <GDRIVEID>    The ID of the Google drive file you want to scan

Berkshire Hog (S3 Scanner - CLI) utilisation```

USAGE: berkshire_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --prettyprint Outputs the JSON in human readable format -r, --recursive Recursively scans files under the prefix -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) -o, --outputfile Sets the path to write the scanner results to (stdout by default)

root@kitploit:~
    --profile <PROFILE>                                        When using a configuration file, enables a non-default profile

    --regex <REGEX>                                            Sets a custom regex JSON file

ARGS: The location of a S3 bucket and optional prefix or filename to scan. This must be written in the form s3://mybucket[/prefix_or_file] Sets the region of the S3 bucket to scan

root@kitploit:~
## Utilisation de Berkshire Hog (scanner S3 - Lambda)
Berkshire Hog est actuellement conçu pour être utilisé comme une fonction Lambda. Voici le flux de données de base :
<pre>
    ┌───────────┐              ┌───────┐     ┌────────────────┐     ┌────────────┐
    │ S3 bucket │ ┌────────┐   │       │     │ Berkshire Hog  │     │ S3 bucket  │
    │  (input) ─┼─┤S3 event├──▶│  SQS  │────▶│    (Lambda)    │────▶│  (output)  │
    │           │ └────────┘   │       │     │                │     │            │
    └───────────┘              └───────┘     └────────────────┘     └────────────┘
</pre>

Pour exécuter Berkshire Hog de cette manière, configurez les éléments suivants :
1) Configurez le bucket d'entrée pour envoyer un « événement » à SQS pour chaque événement PUSH/PUT.
2) Configurez le sujet SQS pour accepter les événements provenant de S3, y compris les autorisations IAM.
3) Exécutez Berkshire Hog avec un accès IAM à SQS et S3.

## Utilisation de Choctaw Hog (scanner Git)```
USAGE:
    choctaw_hog [FLAGS] [OPTIONS] <GITPATH>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (4.5 by default)
        --httpspass <HTTPSPASS>                                    Takes a password for HTTPS-based authentication
        --httpsuser <HTTPSUSER>                                    Takes a username for HTTPS-based authentication
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)
        --recent_days <RECENTDAYS>                                 Filters commits to the last number of days (branch agnostic)
    -r, --regex <REGEX>                                            Sets a custom regex JSON file
        --since_commit <SINCECOMMIT>                               Filters commits based on date committed (branch agnostic)
        --sshkeypath <SSHKEYPATH>                                  Takes a path to a private SSH key for git authentication, defaults to ssh-agent
        --sshkeyphrase <SSHKEYPHRASE>                              Takes a passphrase to a private SSH key for git authentication, defaults to none
        --until_commit <UNTILCOMMIT>                               Filters commits based on date committed (branch agnostic)
    -a, --allowlist <ALLOWLIST>                                    Sets a custom ALLOWLIST JSON file

ARGS:
    <GITPATH>    Sets the path (or URL) of the Git repo to scan. SSH links must include username (git@)

Duroc Hog (scanner de système de fichiers) utilisation```

USAGE: duroc_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --norecursive Disable recursive scanning of all subdirectories underneath the supplied path --prettyprint Outputs the JSON in human readable format -z, --unzip Recursively scans archives (ZIP and TAR) in memory (dangerous) -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) -o, --outputfile Sets the path to write the scanner results to (stdout by default) -r, --regex Sets a custom regex JSON file

ARGS: Sets the path of the directory or file to scan.

root@kitploit:~
## Essex Hog (Confluence scanner) utilisation```
USAGE:
    essex_hog [FLAGS] [OPTIONS] <PAGEID> <URL>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --authtoken <BEARERTOKEN>                                  Confluence basic auth bearer token (instead of user & pass)

        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
    -o, --outputfile <OUTPUT>                                      Sets the path to write the scanner results to (stdout by default)
        --password <PASSWORD>                                      Confluence password (crafts basic auth header)
        --regex <REGEX>                                            Sets a custom regex JSON file
        --username <USERNAME>                                      Confluence username (crafts basic auth header)

ARGS:
    <PAGEID>    The ID (e.g. 1234) of the confluence page you want to scan
    <URL>       Base URL of Confluence instance (e.g. https://newrelic.atlassian.net/)

Gottingen Hog (JIRA scanner) utilisation```

Jira secret scanner in Rust.

USAGE: gottingen_hog [FLAGS] [OPTIONS]

FLAGS: --caseinsensitive Sets the case insensitive flag for all regexes --entropy Enables entropy scanning --prettyprint Outputs the JSON in human readable format -v, --verbose Sets the level of debugging information -h, --help Prints help information -V, --version Prints version information

OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --authtoken Jira basic auth bearer token (instead of user & pass) --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) --url Base URL of JIRA instance (e.g. https://jira.atlassian.net/) -o, --outputfile Sets the path to write the scanner results to (stdout by default) --password Jira password (crafts basic auth header) --regex Sets a custom regex JSON file --username Jira username (crafts basic auth header)

ARGS: The ID (e.g. PROJECT-123) of the Jira issue you want to scan

root@kitploit:~
## Hante Hog (SLACK scanner) utilisation```
Slack secret scanner in Rust.

USAGE:
    hante_hog [FLAGS] [OPTIONS] --authtoken <BEARERTOKEN> --channelid <CHANNELID> --url <SLACKURL>

FLAGS:
        --caseinsensitive    Sets the case insensitive flag for all regexes
        --entropy            Enables entropy scanning
        --prettyprint        Outputs the JSON in human readable format
    -v, --verbose            Sets the level of debugging information
    -h, --help               Prints help information
    -V, --version            Prints version information

OPTIONS:
    -a, --allowlist <ALLOWLIST>                                    Sets a custom allowlist JSON file
        --authtoken <BEARERTOKEN>                                  Slack basic auth bearer token
        --channelid <CHANNELID>
            The ID (e.g. C12345) of the Slack channel you want to scan

        --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD>    Default entropy threshold (0.6 by default)
        --latest <LATEST>                                          End of time range of messages to include in search
        --oldest <OLDEST>                                          Start of time range of messages to include in search
    -o, --outputfile <OUTPUT>
            Sets the path to write the scanner results to (stdout by default)

        --regex <REGEX>                                            Sets a custom regex JSON file
        --url <SLACKURL>
            Base URL of Slack Workspace (e.g. https://[WORKSPACE NAME].slack.com)

Format du fichier JSON d'expressions régulières

L'option regex des scanners permet aux utilisateurs de fournir le chemin vers leur propre fichier JSON d'expressions régulières qui correspondent à des éléments sensibles. Tout fichier fourni remplace actuellement les expressions régulières par défaut fournies par SecretScanner, sans les ajouter. Le format attendu du fichier est un objet json unique.

Les clés doivent être des noms pour le type de secret que chaque entrée d'expression régulière détectera, car les clés seront utilisées pour les propriétés 'reason' produites en sortie par le scanner.

Chaque valeur doit être une chaîne contenant une [https://docs.rs/regex/1.3.9/regex/#syntax](expression régulière valide pour Rust) qui doit correspondre au type de secret décrit par sa clé correspondante.

Depuis la version 1.0.8, le moteur Rusty Hog prend également en charge les objets comme valeurs pour chaque secret. L'objet peut contenir l'ensemble des éléments suivants :

  • une propriété 'pattern' avec l'expression régulière correspondante (obligatoire)
  • une propriété 'entropy_filter' avec une valeur booléenne pour activer l'analyse d'entropie pour cette information (obligatoire)
  • une propriété 'threshold' pour personnaliser la tolérance d'entropie sur une échelle de 0 - 1 (facultatif, s'adapte à l'ancien format 1-8, valeur par défaut 0,6)
  • une propriété 'keyspace' pour indiquer combien de valeurs possibles sont dans la clé, p. ex. 16 pour hexadécimal, 64 pour base64, 128 pour ASCII (facultatif, valeur par défaut 128)
  • une propriété 'make_ascii_lowercase' pour indiquer si Rust doit effectuer .make_ascii_lowercase() sur la clé avant de calculer l'entropie (facultatif, valeur par défaut false)

Plus le seuil est élevé, plus l'entropie requise dans le secret pour le considérer comme une correspondance est importante.

Un exemple de ce format se trouve ici :```json { "Generic Secret": { "pattern": "(?i)secret[\s[[:punct:]]]{1,4}[0-9a-zA-Z-]{16,64}[\s[[:punct:]]]?", "entropy_filter": true, "threshold": "0.6" }, "Slack Token": { "pattern": "(xox[p|b|o|a]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})", "entropy_filter": true, "threshold": "0.6", "keyspace": "36", "make_ascii_lowercase": true }, "Google API Key": { "pattern": "AIza[0-9A-Za-z\-]{35}", "entropy_filter": true }, "PGP private key block": "-----BEGIN PGP PRIVATE KEY BLOCK-----" }

root@kitploit:~
À partir de la version 1.0.11, le JSON regex par défaut actuellement utilisé est le suivant :```json
{
	"Slack Token": "(xox[p|b|o|a]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})",
	"RSA private key": "-----BEGIN RSA PRIVATE KEY-----",
	"SSH (DSA) private key": "-----BEGIN DSA PRIVATE KEY-----",
	"SSH (EC) private key": "-----BEGIN EC PRIVATE KEY-----",
	"PGP private key block": "-----BEGIN PGP PRIVATE KEY BLOCK-----",
	"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
	"Amazon MWS Auth Token": "amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
	"Facebook Access Token": "EAACEdEose0cBA[0-9A-Za-z]+",
	"Facebook OAuth": "(?i)facebook[\\s[[:punct:]]]{1,4}[0-9a-f]{32}[\\s[[:punct:]]]?",
	"GitHub": "(?i)(github|access[[:punct:]]token)[\\s[[:punct:]]]{1,4}[0-9a-zA-Z]{35,40}",
	"Generic API Key": {
		"pattern": "(?i)(api|access)[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}[0-9a-zA-Z\\-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Generic Account API Key": {
		"pattern": "(?i)account[\\s[[:punct:]]]?api[\\s[[:punct:]]]{1,4}[0-9a-zA-Z\\-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Generic Secret": {
		"pattern": "(?i)secret[\\s[[:punct:]]]{1,4}[0-9a-zA-Z-_]{16,64}[\\s[[:punct:]]]?",
		"entropy_filter": true,
		"threshold": "0.6",
		"keyspace": "guess"
	},
	"Google API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Cloud Platform API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Cloud Platform OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google Drive API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Drive OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google (GCP) Service-account": "(?i)\"type\": \"service_account\"",
	"Google Gmail API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google Gmail OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Google OAuth Access Token": "ya29\\.[0-9A-Za-z\\-_]+",
	"Google YouTube API Key": "AIza[0-9A-Za-z\\-_]{35}",
	"Google YouTube OAuth": "(?i)[0-9]+-[0-9A-Za-z_]{32}\\.apps\\.googleusercontent\\.com",
	"Heroku API Key": "[h|H][e|E][r|R][o|O][k|K][u|U][\\s[[:punct:]]]{1,4}[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}",
	"MailChimp API Key": "[0-9a-f]{32}-us[0-9]{1,2}",
	"Mailgun API Key": "(?i)key-[0-9a-zA-Z]{32}",
	"Credentials in absolute URL": "(?i)((https?|ftp)://)(([a-z0-9$_\\.\\+!\\*'\\(\\),;\\?&=-]|%[0-9a-f]{2})+(:([a-z0-9$_\\.\\+!\\*'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)@)((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*[a-z][a-z0-9-]*[a-z0-9]|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5]))(:\\d+)?)(((/+([a-z0-9$_\\.\\+!\\*'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*(\\?([a-z0-9$_\\.\\+!\\*'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?)?)?",
	"PayPal Braintree Access Token": "(?i)access_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}",
	"Picatic API Key": "(?i)sk_live_[0-9a-z]{32}",
	"Slack Webhook": "(?i)https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8}/[a-zA-Z0-9_]{24}",
	"Stripe API Key": "(?i)sk_live_[0-9a-zA-Z]{24}",
	"Stripe Restricted API Key": "(?i)rk_live_[0-9a-zA-Z]{24}",
	"Square Access Token": "(?i)sq0atp-[0-9A-Za-z\\-_]{22}",
	"Square OAuth Secret": "(?i)sq0csp-[0-9A-Za-z\\-_]{43}",
	"Twilio API Key": "SK[0-9a-fA-F]{32}",
	"Twitter Access Token": "(?i)twitter[\\s[[:punct:]]]{1,4}[1-9][0-9]+-[0-9a-zA-Z]{40}",
	"Twitter OAuth": "(?i)twitter[\\s[[:punct:]]]{1,4}['|\"]?[0-9a-zA-Z]{35,44}['|\"]?",
	"New Relic Partner & REST API Key": "[\\s[[:punct:]]][A-Fa-f0-9]{47}[\\s[[:punct:]][[:cntrl:]]]",
	"New Relic Mobile Application Token": "[\\s[[:punct:]]][A-Fa-f0-9]{42}[\\s[[:punct:]][[:cntrl:]]]",
	"New Relic Synthetics Private Location": "(?i)minion_private_location_key",
	"New Relic Insights Key (specific)": "(?i)insights[\\s[[:punct:]]]?(key|query|insert)[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,40}\\b",
	"New Relic Insights Key (vague)": "(?i)(query|insert)[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}b[\\w-]{32,40}\\b",
	"New Relic License Key": "(?i)license[\\s[[:punct:]]]?key[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,40}\\b",
	"New Relic Internal API Key": "(?i)nr-internal-api-key",
	"New Relic HTTP Auth Headers and API Key": "(?i)(x|newrelic|nr)-?(admin|partner|account|query|insert|api|license)-?(id|key)[\\s[[:punct:]]]{1,4}\\b[\\w-]{32,47}\\b",
	"New Relic API Key Service Key (new format)": "(?i)NRAK-[A-Z0-9]{27}",
	"New Relic APM License Key (new format)": "(?i)[a-f0-9]{36}NRAL",
	"New Relic APM License Key (new format, region-aware)": "(?i)[a-z]{2}[0-9]{2}xx[a-f0-9]{30}NRAL",
	"New Relic REST API Key (new format)": "(?i)NRRA-[a-f0-9]{42}",
	"New Relic Admin API Key (new format)": "(?i)NRAA-[a-f0-9]{27}",
	"New Relic Insights Insert Key (new format)": "(?i)NRII-[A-Za-z0-9-_]{32}",
	"New Relic Insights Query Key (new format)": "(?i)NRIQ-[A-Za-z0-9-_]{32}",
	"New Relic Synthetics Private Location Key (new format)": "(?i)NRSP-[a-z]{2}[0-9]{2}[a-f0-9]{31}",
	"Email address": "(?i)\\b(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*)@[a-z0-9][a-z0-9-]+\\.(com|de|cn|net|uk|org|info|nl|eu|ru)([\\W&&[^:/]]|\\A|\\z)",
	"New Relic Account IDs in URL": "(newrelic\\.com/)?accounts/\\d{1,10}/",
	"Account ID": "(?i)account[\\s[[:punct:]]]?id[\\s[[:punct:]]]{1,4}\\b[\\d]{1,10}\\b",
	"Salary Information": "(?i)(salary|commission|compensation|pay)([\\s[[:punct:]]](amount|target))?[\\s[[:punct:]]]{1,4}\\d+"
}

Format du fichier JSON d’allowlist

Les scanneurs proposent une fonctionnalité d’allowlist. Celle-ci vous permet de spécifier une liste d’expressions régulières pour chaque motif qui sera ignoré par le scanneur. Vous pouvez désormais fournir en option une liste d’expressions régulières qui sont également évaluées par rapport au chemin du fichier.

Le format de ce fichier d’allowlist doit être un unique objet JSON. Chaque clé de l’allowlist doit correspondre à une clé du fichier JSON d’expressions régulières, et la valeur peut être l’une des deux choses suivantes :

  1. Un tableau de chaînes qui sont des exceptions pour ce motif d’expression régulière. Par exemple :
  2. Un objet contenant au moins une clé (patterns) et éventuellement une seconde clé (paths).

De plus, vous pouvez spécifier la clé <GLOBAL> qui est évaluée pour tous les motifs.

Voici l’allowlist par défaut incluse dans tous les scans :```json { "Email address": { "patterns": [ "(?i)@newrelic.com", "(?i)noreply@", "(?i)test@" ], "paths": [ "(?i)authors", "(?i)contributors", "(?i)license", "(?i)maintainers", "(?i)third_party_notices" ] }, "Credentials in absolute URL": { "patterns": [ "(?i)(https?://)?user:pass(word)?@" ] }, "New Relic API Key Service Key (new format)": { "patterns": [ "NRAK-123456789ABCDEFGHIJKLMNOPQR" ] }, "Generic API Key": { "patterns": [ "(?i)sanitizeAPIKeyForLogging" ] }, "New Relic License Key": { "patterns": [ "(?i)bootstrap_newrelic_admin_license_key", "(?i)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "(?i)YOUR_NEW_RELIC_LICENSE_KEY__LICENSE", "(?i)YOUR_NEW_RELIC_APPLICATION_TOKEN" ] }, "Generic Secret": { "patterns": [ "(?i)secret:NewRelicLicenseKeySecret" ] }, "": [ "(?i)example", "(?i)fake", "(?i)replace", "(?i)deadbeef", "(?i)ABCDEFGHIJKLMNOPQRSTUVWX", "1234567890" ] }

root@kitploit:~
Sachez qu'il s'agit de chaînes, pas d'expressions régulières, et les clés de cette liste d'autorisation doivent être une clé dans le json des expressions régulières.
Les clés sont sensibles à la casse.

# Informations sur le projet
## Licence open source

Ce projet est distribué sous la [licence Apache 2](https://github.com/newrelic/rusty-hog/blob/HEAD/LICENSE).

## Support

New Relic a open-sourcé ce projet. Ce projet est fourni EN L'ÉTAT, SANS GARANTIE NI ASSISTANCE, bien que vous puissiez signaler des problèmes et contribuer au projet ici sur GitHub.

_Veuillez ne pas signaler de problèmes avec ce logiciel au Support technique global de New Relic._

## Communauté

New Relic héberge et modère un forum en ligne où les clients peuvent interagir avec les employés de New Relic ainsi qu'avec d'autres clients pour obtenir de l'aide et partager les meilleures pratiques. Comme tous les projets open source officiels de New Relic, il existe un sujet communautaire associé dans le Hub des explorateurs New Relic. Vous pouvez trouver le sujet/fil de discussion de ce projet ici :

https://discuss.newrelic.com/t/rusty-hog-multi-platform-secret-key-scanner/90117

## Problèmes / demandes d'amélioration

Soumettez les problèmes et demandes d'amélioration dans l'[onglet Issues de ce dépôt](https://raw.githubusercontent.com/newrelic/issues). Veuillez rechercher et examiner les issues ouvertes existantes avant de soumettre une nouvelle issue.

## Contribution

Les contributions sont les bienvenues (et si vous soumettez une demande d'amélioration, attendez-vous à être invité à y contribuer vous-même). Veuillez consulter notre [Guide du contributeur](https://github.com/newrelic/rusty-hog/blob/HEAD/CONTRIBUTING.md).

Gardez à l'esprit que lorsque vous soumettez votre pull request, vous devrez signer le CLA via le clic en utilisant CLA-Assistant. Si vous souhaitez exécuter notre CLA corporatif, ou si vous avez des questions, veuillez nous envoyer un e-mail à [email protected].

## Feuille de route des fonctionnalités
  
- 1.1 : Fonctionnalités Enterprise
    - [ ] Prise en charge des fichiers de configuration (au lieu des arguments en ligne de commande)
    - [ ] Prise en charge des variables d'environnement au lieu des arguments CLI
    - [ ] Multithreading
    - [ ] Meilleure détection du contexte et filtrage des faux positifs (GitHound, apprentissage automatique)
    - [ ] Utiliser Rusoto au lieu de s3-rust
    - [x] Ajout d'un scanner JIRA
    - [x] Ajout d'un scanner de système de fichiers et d'archives
    - [ ] Utiliser les fonctionnalités de Rust pour réduire les dépendances de compilation ?

- 1.2 : Intégration avec des scripts et interfaces utilisateur plus vastes
    - [ ] Prise en charge de l'API GitHub pour la gestion de grandes organisations
        - [ ] Analyser tous les dépôts pour une liste d'utilisateurs
        - [x] Analyser tous les dépôts d'une organisation
    - [ ] Générer un rapport Web ou une interface Web. Prendre en charge la génération d'un « état de sauvegarde » depuis l'interface.
    - [ ] Modèle agent/gestionnaire
    - [ ] Processus de planification (bloqué par la prise en charge de l'état de sauvegarde)

## Que signifie le nom ?
TruffleHog est considéré comme le scanner de secrets original / de facto standard. Je construis
une suite d'outils de scan de secrets pour diverses plateformes basée sur TruffleHog
et j'avais besoin d'un système de nommage, j'ai donc commencé par le haut de la
[liste des races de porcs](https://en.wikipedia.org/wiki/List_of_pig_breeds) de Wikipédia.
Ainsi, chaque nom d'outil est une race de porc commençant par « A » et en progressant.
Télécharger l’outil