
Многоисточниковый сканер секретов, обнаруживающий API-ключи, пароли и PII в Git-репозиториях, S3-корзинах, файловых системах, Confluence, JIRA, Slack и Google Docs с помощью regex и анализа энтропии.
Rusty Hog — это сканер секретов, написанный на Rust для производительности и основанный на TruffleHog, который написан на Python. Rusty Hog предоставляет следующие двоичные файлы:
Этот проект предоставляет набор сканеров, которые используют регулярные выражения для попытки обнаружения наличия конфиденциальной информации, такой как ключи API, пароли и личные данные. Он включает набор регулярных выражений по умолчанию, но также принимает JSON-объект с вашими пользовательскими регулярными выражениями.
Загрузите и распакуйте последний ZIP на вкладке релизов. Затем запустите каждый двоичный файл с помощью -h, чтобы увидеть использование.```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
## Как запускать с помощью DockerHub
Docker-образы Rusty Hog можно найти на личной странице автора в DockerHub [здесь](https://hub.docker.com/u/wetfeet2000)
Для каждого Hog и для каждого релиза создаётся Docker-образ. Так что для использования choctaw_hog нужно выполнить следующие команды:```shell script
docker pull wetfeet2000/choctaw_hog:1.0.10
docker run -it --rm wetfeet2000/choctaw_hog:1.0.10 --help
cargo build --release. Скомпилированные файлы находятся в target/release.cargo doc --no-deps --open.cargo test.## Как собрать в Windows
Вам потребуется скомпилировать статические бинарные файлы OpenSSL и указать Rust/Cargo, где их найти:```
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)
Теперь вы можете следовать основным инструкциям по сборке, приведённым выше.
Используйте Homebrew для установки зависимостей:``` brew install rpm2cpio FiloSottile/musl-cross/musl-cross
Затем выполните `./build_lambda_macos.sh`.
Скрипт сборки будет компилироваться с OpenSSL 3.0.12. Используйте `export OPENSSL_BUILD_VER=3.0.12` для переопределения.
Скрипт сборки будет использовать заголовки ядра Amazon Linux из их RPM; `export AMAZON_KERNEL_HEADERS_RPM_URL=...` для указания источника загрузки RPM. (Ничто не мешает использовать RPM linux-headers другого дистрибутива, нам просто нужны заголовки для сборки openssl под Linux)
Скрипт сборки создаст каталог build-deps в корне вашего исходного кода. Вы можете безопасно удалить его с помощью `rm -rf`, но он будет воссоздан при следующем запуске скрипта. Также будут выполнены различные проверки согласованности, чтобы убедиться в корректности сборки, и если они не пройдут, скрипт может попросить вас удалить этот каталог (`rm -rf`) и повторить попытку.
### Linux
Убедитесь, что `cross` установлен (`cargo install cross`), затем просто выполните `./build_lambda.sh`.
# Команды
## Использование 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