
Escáner de secretos multi-fuente que detecta claves API, contraseñas e información de identificación personal (PII) en repositorios Git, buckets S3, sistemas de archivos, Confluence, JIRA, Slack y Google Docs mediante expresiones regulares y análisis de entropía.
Rusty Hog es un escáner de secretos construido en Rust para rendimiento, y basado en TruffleHog que está escrito en Python. Rusty Hog proporciona los siguientes binarios:
Este proyecto proporciona un conjunto de escáneres que utilizan expresiones regulares para intentar detectar la presencia de información sensible, como claves de API, contraseñas e información personal. Incluye un conjunto de expresiones regulares por defecto, pero también acepta un objeto JSON con tus expresiones regulares personalizadas.
Descarga y descomprime el último ZIP
en la pestaña de versiones. Luego, ejecuta cada binario con -h para ver el uso.```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
## Cómo ejecutar usando DockerHub
Las imágenes Docker de Rusty Hog se pueden encontrar en la página personal de DockerHub del autor [aquí](https://hub.docker.com/u/wetfeet2000)
Se crea una imagen Docker para cada Hog y para cada versión. Así que para usar choctaw_hog, ejecutarías los siguientes comandos:```shell script
docker pull wetfeet2000/choctaw_hog:1.0.10
docker run -it --rm wetfeet2000/choctaw_hog:1.0.10 --help
cargo build --release. Los binarios se encuentran en target/release.cargo doc --no-deps --open.cargo test.## Cómo compilar en Windows
Necesitarás compilar binarios estáticos de OpenSSL e indicarle a Rust/Cargo dónde encontrarlos:```
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)
Ahora puedes seguir las instrucciones principales de compilación enumeradas anteriormente.
Usa Homebrew para obtener las dependencias:``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross
Luego ejecuta `./build_lambda_macos.sh`.
El script de compilación compilará contra OpenSSL 3.0.12. Usa `export OPENSSL_BUILD_VER=3.0.12` para sobrescribir.
El script de compilación compilará contra los encabezados del kernel de Amazon Linux proporcionados por su RPM; `export AMAZON_KERNEL_HEADERS_RPM_URL=...` para sobrescribir de dónde se descarga el RPM. (No hay nada que impida que se use un RPM de linux-headers de una distribución diferente, solo necesitamos los linux-headers para compilar openssl para Linux)
El script de compilación creará un directorio build-deps en la raíz de tu fuente actual. Puedes eliminar este directorio de forma segura con `rm -rf`, pero se recreará en la próxima ejecución del script de compilación. También realizará varias comprobaciones de coherencia para asegurarse de que la compilación funcione y, si fallan, podría pedirte que elimines ese directorio con `rm -rf` de todos modos para intentarlo de nuevo.
### Linux
Asegúrate de que `cross` esté instalado (`cargo install cross`), luego simplemente ejecuta `./build_lambda.sh`.
# Comandos
## Uso de 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]