
Scanner de segredos de múltiplas fontes detectando chaves de API, senhas e PII em repositórios Git, buckets S3, sistemas de arquivos, Confluence, JIRA, Slack e Google Docs usando regex e análise de entropia.
Rusty Hog é um scanner de segredos construído em Rust para desempenho, e baseado no TruffleHog que é escrito em Python. O Rusty Hog fornece os seguintes binários:
Este projeto fornece um conjunto de scanners que usam expressões regulares para tentar detectar a presença de informações sensíveis, como chaves de API, senhas e informações pessoais. Ele inclui um conjunto de expressões regulares padrão, mas também aceita um objeto JSON contendo suas expressões regulares personalizadas.
Baixe e descompacte o último ZIP na aba de releases. Em seguida, execute cada binário com -h para ver o 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
## Como executar usando DockerHub
As imagens Docker do Rusty Hog podem ser encontradas na página pessoal do autor no DockerHub [aqui](https://hub.docker.com/u/wetfeet2000)
Uma imagem Docker é criada para cada Hog e para cada versão. Então, para usar o choctaw_hog, você executaria os seguintes 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. Os binários estão localizados em target/release.cargo doc --no-deps --open.cargo test.## Como compilar no Windows
Você precisará compilar os binários estáticos do OpenSSL e informar ao Rust/Cargo onde encontrá-los:```
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)
Agora pode seguir as instruções principais de compilação listadas acima.
Use Homebrew para obter as dependências:``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross
Em seguida, execute `./build_lambda_macos.sh`.
O script de compilação será compilado contra o OpenSSL 3.0.12. Use `export OPENSSL_BUILD_VER=3.0.12` para substituir.
O script de compilação será compilado contra os cabeçalhos do kernel Amazon Linux fornecidos pelo RPM deles; `export AMAZON_KERNEL_HEADERS_RPM_URL=...` para substituir de onde o RPM é baixado. (Não há nada que impeça o uso do RPM de linux-headers de uma distribuição diferente, só precisamos dos linux-headers para compilar openssl para Linux)
O script de compilação criará um diretório build-deps na raiz do seu código-fonte atual. Você pode `rm -rf` este diretório com segurança, mas ele será recriado na próxima execução do script de compilação. Ele também fará várias verificações de consistência para garantir que a compilação funcione e, se essas falharem, poderá solicitar que você `rm -rf` esse diretório de qualquer forma para tentar novamente.
### Linux
Certifique-se de que `cross` está instalado (`cargo install cross`), então apenas execute `./build_lambda.sh`.
# Commands
## Uso do 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]
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