
ماسح الأسرار متعدد المصادر يكتشف مفاتيح API وكلمات المرور وPII عبر مستودعات Git ودلاء S3 وأنظمة الملفات وConfluence وJIRA وSlack ومستندات Google باستخدام regex وتحليل الانتروبيا.
Rusty Hog هو ماسح أسرار مكتوب بلغة Rust لتحسين الأداء، ومبني على TruffleHog المكتوب بلغة Python. يوفر Rusty Hog الملفات الثنائية التالية:
يوفر هذا المشروع مجموعة من الماسحات التي تستخدم التعبيرات النمطية لمحاولة اكتشاف وجود معلومات حساسة، مثل مفاتيح API وكلمات المرور والمعلومات الشخصية. يتضمن مجموعة من التعبيرات النمطية بشكل افتراضي، ولكنه يقبل أيضًا كائن JSON يحتوي على تعبيرات نمطية مخصصة لك.
قم بتنزيل وفك ضغط أحدث ZIP من علامة التبويب releases. ثم شغل كل ملف ثنائي باستخدام -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)
يتم بناء صورة Docker لكل Hog ولكل إصدار. لذا لاستخدام 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.## كيفية البناء على ويندوز
ستحتاج إلى تجميع ثنائيات 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 لرؤوس لينكس من توزيعة مختلفة، نحتاج فقط إلى رؤوس لينكس لبناء openssl لنظام لينكس)
سينشئ البرنامج النصي للبناء دليلاً باسم 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
OPTIONS: -a, --allowlist Sets a custom allowlist JSON file --default_entropy_threshold <DEFAULT_ENTROPY_THRESHOLD> Default entropy threshold (0.6 by default) -o, --outputfile Sets the path to write the scanner results to (stdout by default)
--profile <PROFILE> When using a configuration file, enables a non-default profile
--regex <REGEX> Sets a custom regex JSON file