ابحث عن بيانات الاعتماد والأسرار باستخدام أكثر من 170 قاعدة تغطي شيفرة المصدر وعناوين URL للويب وCI/CD، والتحقق منها مقابل واجهات برمجة التطبيقات الخاصة بالمورّد، وإنشاء تقارير بصيغ SARIF أو JSONL أو HTML أو PDF أو Excel.
ماسح أسرار DAST + SAST مع التحقق المباشر، وتحليل source-map، وتقارير أصلية لـ CI بالإضافة إلى محرك SAST للثغرات وسوء الإعدادات.
ابحث عن بيانات الاعتماد المسرّبة في أشجار المصدر، وتطبيقات الويب قيد التشغيل، وسجلات CI. تحقق منها مباشرةً مقابل واجهات API الخاصة بالمزوّدين. افحص نفس أشجار المصدر بحثًا عن ثغرات الكود وسوء الإعدادات. أخرِج SARIF للوحات معلومات فحص الكود، أو JSONL لخطوط أنابيب SOAR، أو Excel/PDF/HTML لتقارير العملاء.
المشهد المزدحم (gitleaks، trufflehog، detect-secrets) رائع في SAST على أشجار git لكنه يتوقف عند هذا الحد — وهي تفحص بحثًا عن الأسرار فقط. يسدّ scan4secrets الفجوات التي لا تغطيها، بإضافة DAST مباشر على الويب، والتحقق المباشر من المزوّدين، ومحرك لثغرات الكود / سوء الإعدادات فوق كشف الأسرار:
| القدرة | gitleaks | trufflehog | detect-secrets | scan4secrets |
|---|---|---|---|---|
| كشف الأسرار عبر SAST | Y | Y | Y | Y |
| زحف DAST مباشر على الويب | - | - | - | Y |
| تحليل JS source-map | - | - | - | Y |
| استخراج نقاط نهاية JS | - | - | - | Y |
| فحص أسرار ترويسات HTTP | - | - | - | Y |
| التحقق المباشر من الرموز | - | Y | - | Y |
| مخرجات SARIF | Y | - | - | Y |
| تقارير Excel / PDF / HTML | - | - | - | Y |
| بوابة الإنتروبيا + قائمة السماح | Y | Y | Y | Y |
| مخطط قواعد YAML | - (TOML) | - | - | Y |
| DAST موثّق (cookie/header/proxy) | n/a | n/a | n/a | Y |
| كشف ثغرات / سوء إعدادات SAST | - | - | - | Y |
إنه مكمّل لـ gitleaks، وليس بديلاً عنه. استخدم كليهما: gitleaks في pre-commit + CI لـ SAST على تاريخ git، وscan4secrets لـ DAST المباشر مقابل staging/production.
# from source
git clone https://github.com/m14r41/scan4secrets
cd scan4secrets
pip install -e .
# OR via pipx
pipx install git+https://github.com/m14r41/scan4secrets
# OR Docker
docker run --rm -v $(pwd):/scan ghcr.io/m14r41/scan4secrets:latest --path /scan
بعد التثبيت، يصبح الأمر scan4secrets متاحًا على PATH.
# SAST: scan a local directory
scan4secrets --path /code
# DAST: crawl a live target
scan4secrets --url https://staging.example.com --threads 32
# DAST runs ALL bundled wordlists by default (1279 paths: /.env, /wp-config.php, /backup.zip, ...)
scan4secrets --url https://target.com
# Use YOUR OWN wordlist file (replaces the bundled set)
scan4secrets --url https://target.com --wordlist /path/to/my-paths.txt
# Combine multiple custom wordlist files
scan4secrets --url https://target.com --wordlist seclists/Common.txt internal-paths.txt
# Restrict to specific bundled wordlists by stem
scan4secrets --url https://wp.example.com --wordlist-only wordpress common env
# Turn wordlist seeding off entirely (only follow live links)
scan4secrets --url https://target.com --no-wordlist
# Full audit with verification + HTML report
scan4secrets --path . --url https://app.example.com \
--verify --report html sarif json \
--output reports/audit-$(date +%F)
# Authenticated DAST with proxy (works with Burp / ZAP)
scan4secrets --url https://app.example.com \
--cookie "session=abc123" \
--header "X-Tenant: acme" \
--proxy http://127.0.0.1:8080
# CI gate (exit 1 if anything >= high)
scan4secrets --path . --report sarif --fail-on high \
--output reports/scan
# SAST: secrets + code vulnerabilities / misconfigurations
scan4secrets --path ./src --misconfig
# SAST: vulnerabilities / misconfigurations only (skip secret detection)
scan4secrets --path ./src --misconfig-only
--misconfig)إلى جانب الأسرار، يوفّر scan4secrets محرك SAST لثغرات الكود وسوء الإعدادات. أضِف --misconfig للفحص بحثًا عن الأسرار والثغرات معًا، أو --misconfig-only للفحص بحثًا عن الثغرات وحدها:
scan4secrets --path ./src --misconfig # secrets + vulnerabilities
scan4secrets --path ./src --misconfig-only # vulnerabilities only
scan4secrets --path . --misconfig --report html --output report
يكتشف — مع بوابات taint/context للحفاظ على انخفاض الإيجابيات الكاذبة — حقن SQL، وحقن NoSQL، وحقن أوامر نظام التشغيل، وحقن الكود (eval)، وSSTI، وXXE، وإلغاء التسلسل غير الآمن، وLFI / اجتياز المسار، وحقن LDAP وXPath، وSSRF، وإعادة التوجيه المفتوح، وسوء إعداد CORS، وتعطيل CSRF، وتلويث prototype، وXSS (المنعكس/المخزّن/DOM عبر 11 محرك قوالب: EJS، Handlebars، Pug، Jinja، Thymeleaf، Razor، Blade، ERB، Vue، Angular، React)، والتشفير الضعيف (DES/RC4/ECB/static-IV/weak-RSA)، والعشوائية غير الآمنة، وعيوب JWT (alg:none، والخلط في الخوارزمية، ومفتاح توقيع مضمّن، وتعطيل التحقق)، وتجاوزات TLS، ومقارنات الأسرار غير الآمنة زمنيًا، وSAML بدون توقيع مطلوب، وبيانات الاعتماد المضمّنة، وتسجيل البيانات الحساسة، وسوء إعداد IaC/config (Terraform، Kubernetes، Dockerfile، GitHub Actions، ASP.NET web.config، WCF/SOAP).
اللغات المغطاة: python، node، javascript، typescript، react، php، ruby، go، java، kotlin، csharp/.NET، sql، بالإضافة إلى XML/WSDL، JSP، Terraform/HCL، Kubernetes YAML، وDockerfile.
يحمل كل اكتشاف ثغرة سجلاً غنيًا: اسم الثغرة، والخطورة، والوصف، والدليل (file:line)، والكود المصاب، والكود الآمن، والمعالجة، والأثر التقني، والأثر على الأعمال، وربط CWE + OWASP Top-10.
إلى جانب المحرك سطرًا بسطر، تلتقط تمريرة على مستوى الملف كامل الأسرار التي تفوتها الماسحات السطرية: وسوم XML المتداخلة (<SMS_API_KEY><value>…</value></SMS_API_KEY>)، وأزواج <key>/<value> المنفصلة، وكائنات JSON ذات المفتاح/القيمة، وYAML/properties متعددة الأسطر، والأسرار المُرمّزة بـ Base64. كما يسدّ نقطة عمياء في بوابة الإنتروبيا — فالإسنادات ذات الأسماء الدالة على بيانات الاعتماد (مثل AM_CLIENT_SECRET=…) تُعلَّم بناءً على إشارة الاسم دون حد أدنى للإنتروبيا، بحيث لم تعد الأسرار الحقيقية منخفضة الإنتروبيا تُسقَط بصمت.
416 قاعدة إجمالاً — 193 قاعدة أسرار + 223 قاعدة ثغرات / سوء إعدادات.
تغطي قواعد الأسرار: