
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.
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 :
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.
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
## 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
cargo build --release. Les binaires se trouvent dans target/release.cargo doc --no-deps --open.cargo test.## 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.
Utilisez Homebrew pour obtenir les dépendances :``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross
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
USAGE: berkshire_hog [FLAGS] [OPTIONS]