स्रोत कोड, वेब URL, और CI/CD में फैले 170+ नियमों के साथ क्रेडेंशियल और सीक्रेट खोजें, उन्हें विक्रेता API के विरुद्ध सत्यापित करें, और SARIF, JSONL, HTML, PDF, या Excel रिपोर्ट तैयार करें।
लाइव सत्यापन, सोर्स-मैप पार्सिंग, और CI-नेटिव रिपोर्टिंग के साथ DAST + SAST सीक्रेट स्कैनर, साथ ही एक SAST भेद्यता और गलत-कॉन्फ़िगरेशन इंजन।
सोर्स ट्री, चल रहे वेब ऐप्स, और CI लॉग्स में लीक हुए क्रेडेंशियल खोजें। उन्हें विक्रेता API के विरुद्ध लाइव सत्यापित करें। कोड भेद्यताओं और गलत-कॉन्फ़िगरेशन के लिए उन्हीं सोर्स ट्री को स्कैन करें। कोड-स्कैनिंग डैशबोर्ड के लिए SARIF, SOAR पाइपलाइन के लिए JSONL, या क्लाइंट रिपोर्ट के लिए Excel/PDF/HTML आउटपुट करें।
भीड़भाड़ वाला परिदृश्य (gitleaks, trufflehog, detect-secrets) git ट्री पर SAST में बहुत अच्छा है लेकिन वहीं रुक जाता है — और वे केवल सीक्रेट के लिए स्कैन करते हैं। scan4secrets उन अंतरालों को भरता है जिन्हें वे कवर नहीं करते, सीक्रेट डिटेक्शन के ऊपर लाइव वेब DAST, लाइव विक्रेता सत्यापन, और एक कोड-भेद्यता / गलत-कॉन्फ़िगरेशन इंजन जोड़ता है:
| क्षमता | gitleaks | trufflehog | detect-secrets | scan4secrets |
|---|---|---|---|---|
| SAST सीक्रेट डिटेक्शन | Y | Y | Y | Y |
| DAST लाइव वेब क्रॉल | - | - | - | Y |
| JS सोर्स-मैप पार्सिंग | - | - | - | Y |
| JS एंडपॉइंट एक्सट्रैक्शन | - | - | - | Y |
| HTTP-हेडर सीक्रेट स्कैन | - | - | - | Y |
| लाइव टोकन सत्यापन | - | Y | - | Y |
| SARIF आउटपुट | Y | - | - | Y |
| Excel / PDF / HTML रिपोर्ट | - | - | - | Y |
| एन्ट्रॉपी गेट + allowlist | Y | Y | Y | Y |
| YAML नियम स्कीमा | - (TOML) | - | - | Y |
| प्रमाणित DAST (cookie/header/proxy) | n/a | n/a | n/a | Y |
| SAST भेद्यता / गलत-कॉन्फ़िगरेशन डिटेक्शन | - | - | - | Y |
यह gitleaks का पूरक है, प्रतिस्थापन नहीं। दोनों का उपयोग करें: git-इतिहास SAST के लिए pre-commit + CI में gitleaks, staging/production के विरुद्ध लाइव DAST के लिए scan4secrets।
# 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 इंजेक्शन, OS कमांड इंजेक्शन, कोड इंजेक्शन (eval), SSTI, XXE, असुरक्षित डीसेरिएलाइज़ेशन, LFI / पाथ ट्रैवर्सल, LDAP और XPath इंजेक्शन, SSRF, ओपन रीडायरेक्ट, CORS गलत-कॉन्फ़िगरेशन, CSRF-अक्षम, प्रोटोटाइप पॉल्यूशन, XSS (11 टेम्पलेटिंग इंजनों में reflected/stored/DOM: EJS, Handlebars, Pug, Jinja, Thymeleaf, Razor, Blade, ERB, Vue, Angular, React), कमजोर क्रिप्टो (DES/RC4/ECB/static-IV/weak-RSA), असुरक्षित रैंडमनेस, JWT दोष (alg:none, एल्गोरिदम कन्फ्यूज़न, हार्डकोडेड साइनिंग सीक्रेट, सत्यापन अक्षम), TLS बायपास, टाइमिंग-असुरक्षित सीक्रेट तुलना, SAML हस्ताक्षर-आवश्यक-नहीं, हार्डकोडेड क्रेडेंशियल, संवेदनशील-डेटा लॉगिंग, और IaC/कॉन्फ़िग गलत-कॉन्फ़िगरेशन (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 key/value ऑब्जेक्ट, मल्टी-लाइन YAML/properties, और Base64-एन्कोडेड सीक्रेट। यह एक एन्ट्रॉपी-गेट ब्लाइंड स्पॉट को भी बंद करता है — क्रेडेंशियल-नामित असाइनमेंट (जैसे AM_CLIENT_SECRET=…) को नाम सिग्नल पर बिना किसी एन्ट्रॉपी फ्लोर के फ्लैग किया जाता है, इसलिए वास्तविक कम-एन्ट्रॉपी सीक्रेट अब चुपचाप छोड़े नहीं जाते।
कुल 416 नियम — 193 सीक्रेट नियम + 223 भेद्यता / गलत-कॉन्फ़िगरेशन नियम।
सीक्रेट नियम कवर करते हैं: