
बहु-स्रोत गुप्त स्कैनर जो Git रिपॉजिटरी, S3 बकेट, फ़ाइल सिस्टम, Confluence, JIRA, Slack और Google Docs में API कुंजियाँ, पासवर्ड और PII का पता लगाने के लिए रेगेक्स और एंट्रॉपी विश्लेषण का उपयोग करता है।
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 का उपयोग करके कैसे चलाएँ
Rusty Hog Docker इमेज लेखक के व्यक्तिगत DockerHub पेज [यहाँ](https://hub.docker.com/u/wetfeet2000) मिल सकते हैं।
प्रत्येक Hog और प्रत्येक रिलीज़ के लिए एक Docker Image बनाया गया है। इसलिए 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 द्वारा प्रदान किए गए हैं; RPM के डाउनलोड स्थान को ओवरराइड करने के लिए `export AMAZON_KERNEL_HEADERS_RPM_URL=...` का उपयोग करें। (किसी भिन्न वितरण के linux-headers RPM के उपयोग में कोई बाधा नहीं है, हमें लिनक्स के लिए openssl बनाने के लिए केवल linux-headers की आवश्यकता है)
बिल्ड स्क्रिप्ट आपके वर्तमान स्रोत रूट में 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