
रनटाइम-जागरूक SCA — यह साबित करता है कि कौन से CVE वास्तव में पहुंच योग्य हैं, न कि केवल इंस्टॉल किए गए हैं।
रनटाइम-जागरूक SCA — यह सिद्ध करता है कि कौन से CVE वास्तव में पहुँच योग्य हैं, न कि केवल इंस्टॉल किए गए हैं।
VulnReach अब एक आधिकारिक OWASP Project है। 🎉




भाषा समर्थन: Python पूरी तरह से प्रोडक्शन-तैयार है (taint, AST, route, runtime)। Java और JavaScript में कार्यात्मक कॉल ग्राफ विश्लेषण है और ये प्रायोगिक हैं। Go, C#, और PHP रोडमैप पर हैं। विवरण के लिए ROADMAP.md देखें।
VulnReach मानक SCA आउटपुट पर पहुँच-योग्यता संदर्भ जोड़कर निर्मित होता है — स्थिर विश्लेषण, taint ट्रैकिंग, और लाइव रनटाइम कवरेज के माध्यम से यह सिद्ध करता है कि पता लगाए गए CVE में से कौन से वास्तव में आपके एप्लिकेशन में पहुँच योग्य हैं।
POST /scan/{id}/cancel प्रगति में चल रहे स्कैन को रोकता हैGET /scan/{id} पर summary + वर्गीकृत बकेटVULNREACH_ALLOW_DOCKER_DAEMON=true के माध्यम से स्पष्ट ऑप्ट-इन आवश्यक हैdocker-socket-proxy का उपयोग करती हैPOST /findings/{id}/next-steps एक नियतात्मक निष्कर्ष के लिए विश्लेषक-उन्मुख उपचार मार्गदर्शन (तत्काल कार्रवाई, सत्यापन जाँच, अपग्रेड पथ, निगरानी) उत्पन्न करता है। Lazy / on-demand: स्कैन कभी भी LLM को कॉल नहीं करते, और LLM विफलताएँ सुचारू रूप से कम हो जाती हैं। नियतात्मक निर्णय read-only है। देखें docs/api.md।scan.runtime.ebpf ट्रेसिंग मोड (Linux-केंद्रित, स्पष्ट ऑप्ट-इन)देखें:
प्रत्येक CVE को पाँच-परत साक्ष्य श्रृंखला के माध्यम से वर्गीकृत किया जाता है:
1. SCA (Trivy) → is the package installed and vulnerable?
2. Taint analysis (tainter) → does user input flow to the vulnerable sink?
3. AST analysis → is the vulnerable function in your call graph?
4. Route exposure → is the call path reachable from an HTTP endpoint?
5. Runtime coverage → was the vulnerable code actually executed?
परिणाम चार स्तरों वाली प्राथमिकता-बद्ध निष्कर्ष सूची है:
| स्तर | अर्थ |
|---|---|
DYNAMICALLY_REACHABLE | रनटाइम कवरेज ने निष्पादन की पुष्टि की — तुरंत ठीक करें |
STATICALLY_REACHABLE | AST/taint के माध्यम से कोड पथ सिद्ध — उच्च प्राथमिकता |
UNCERTAIN | केवल कमज़ोर संकेत — जाँच करें |
NOT_REACHABLE | कोई साक्ष्य नहीं — अलर्ट कतार से दबाएँ |
सुरक्षा सूचना — शुरू करने से पहले,
.env.exampleको.env.localमें कॉपी करें और प्रत्येकCHANGE_MEमान को एक मज़बूत रैंडम सीक्रेट से बदलें।
वास्तविक क्रेडेंशियल सेट किए बिना औरCORS_ORIGINSकॉन्फ़िगर किए बिना VulnReach को सार्वजनिक नेटवर्क पर उजागर न करें।
git clone https://github.com/ihrishikesh0896/vulnreach.git
cd vulnreach
# 1. Create your local config
cp .env.example .env.local
# 2. Fill in every CHANGE_ME — generate secrets with: openssl rand -hex 32
$EDITOR .env.local
# 3. Start the stack
docker compose up --build
# Optional: enable dynamic runtime scans (Docker daemon access via restricted socket proxy)
# docker compose -f docker-compose.yml -f docker-compose.runtime.yml up --build
प्रमाणीकरण विकल्प:
POST /loginSettings -> API Keys में बनाएँ, फिर इसे Authorization: Bearer <API_KEY> के रूप में उपयोग करें# Get a token (replace with the credentials you set in .env.local)
TOKEN=$(curl -s -X POST http://localhost:8000/login \
-H "Content-Type: application/json" \
-d '{"username":"<your-admin-user>","password":"<your-admin-password>"}' | jq -r .access_token)
# Start scan from a GitHub repo
curl -X POST http://localhost:8000/scan \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"repo_url":"https://github.com/yourorg/yourapp"}'
# Poll for results
curl http://localhost:8000/scan/<scan_id> \
-H "Authorization: Bearer $TOKEN" | jq .summary
coverage.py के माध्यम से Docker-आधारित कवरेज संग्रहpolicy.block_if पुष्ट गंभीर निष्कर्षों पर बिल्ड विफल करता है; curl के माध्यम से ट्रिगर और गेट करें — देखें docs/ci-cd-gating.mdAuthorization: Bearer <API_KEY>)GET /scan/{id}/export/pdfprovider: none; ऑफ़लाइन उपयोग के लिए Ollama समर्थितस्कैन लक्ष्य: multi-tier-dvpa — 11 पैकेजों में 72 कच्चे CVE वाला एक जानबूझकर कमज़ोर Python/Django एप्लिकेशन।