
dep-scan v6.3.0
अगली पीढ़ी का निर्भरता भेद्यता स्कैनर जिसमें पहुँच विश्लेषण, SBOM जनरेशन, लाइसेंस ऑडिट, और CI/CD एकीकरण के लिए कंटेनर इमेज स्कैनिंग शामिल है।
परिचय
OWASP dep-scan परियोजना निर्भरताओं के लिए ज्ञात कमज़ोरियों, सलाहों और लाइसेंस सीमाओं पर आधारित एक अगली पीढ़ी का सुरक्षा और जोखिम ऑडिट टूल है। इनपुट के रूप में स्थानीय रिपॉज़िटरी और कंटेनर इमेज दोनों समर्थित हैं, और यह टूल ASPM/VM प्लेटफ़ॉर्म के साथ एकीकरण और CI वातावरण में उपयोग के लिए आदर्श है।
विषय-सूची
विशेषताएँ
- ज्ञात CVE की पहचान और प्राथमिकता निर्धारण के लिए अधिकांश एप्लिकेशन कोड (स्थानीय रिपॉज़, Linux कंटेनर इमेज, Kubernetes मैनिफ़ेस्ट, और OS) को स्कैन करें
- कई भाषाओं के लिए उन्नत पहुँच-योग्यता विश्लेषण करें (नीचे पहुँच-योग्यता मैट्रिक्स देखें)
- पैकेज कमज़ोरी स्कैनिंग स्थानीय रूप से की जाती है और काफ़ी तेज़ है। कोई सर्वर उपयोग नहीं किया जाता
- Vulnerability Disclosure Report (VDR) जानकारी के साथ Software Bill-of-Materials (SBOM) उत्पन्न करें
- Common Security Advisory Framework (CSAF) 2.0/2.1 VEX दस्तावेज़ उत्पन्न करें (CSAF Readme देखें)
- निर्भरता भ्रम (dependency confusion) हमलों और रखरखाव जोखिमों के लिए गहन पैकेज जोखिम ऑडिट करें (जोखिम ऑडिट दस्तावेज़ देखें)
सटीक पहुँच-योग्य डेटा-प्रवाह
पूर्ण संदर्भ के आधार पर आपके एप्लिकेशन में पहुँच-योग्य और गैर-पहुँच-योग्य दोनों पथों की पहचान करने के लिए विस्तृत डेटा प्रवाह।

पहुँच-योग्यता मैट्रिक्स
dep-scan चार स्लाइसर के माध्यम से सात भाषा पारिस्थितिकी तंत्रों के लिए पहुँच-योग्यता की गणना करता है। जिस कमज़ोर पैकेज का कोड वास्तव में किसी निष्पादित पथ पर होता है, उसे Reachable के रूप में चिह्नित किया जाता है, जबकि जो पैकेज केवल BOM में घोषित है लेकिन कभी कॉल नहीं किया जाता, उसे नहीं। प्रत्येक स्लाइसर एक ही साझा, purl-कीड पहुँच-योग्यता इंजन को फ़ीड करता है, इसलिए व्यवहार सभी भाषाओं में एक समान रहता है। पहुँच-योग्यता डिफ़ॉल्ट रूप से चालू है (--reachability-analyzer FrameworkReachability); SemanticReachability इसके अतिरिक्त पहुँचे गए सेवाओं, एंडपॉइंट्स, और बिल्ड-पश्चात (बाइनरी/कंटेनर) पहुँच-योग्यता का श्रेय देता है।
| भाषा / पारिस्थितिकी तंत्र | रीचेबिलिटी इंजन | डिफ़ॉल्ट विश्लेषक |
|---|---|---|
| Java / JVM (Groovy, Kotlin, Scala) | atom | FrameworkReachability |
| JavaScript / TypeScript | atom | FrameworkReachability |
| Python | atom | FrameworkReachability |
| PHP | atom | FrameworkReachability |
| Rust | rusi | FrameworkReachability |
| Go | golem | FrameworkReachability |
| .NET (C#, VB, F#, R) | dosai | FrameworkReachability |
रीचेबिलिटी और प्राथमिकता के पीछे की अवधारणाओं के लिए, रीचेबिलिटी मॉडल और प्राथमिकता अध्याय पढ़ें। प्रति-भाषा कार्यरत उदाहरणों के लिए, भाषा गाइड देखें। अनुपालन कहानी (VDR और CSAF VEX) के लिए, VDR गाइड और CSAF VEX गाइड देखें।
रीचेबिलिटी --profile research के अंतर्गत डिफ़ॉल्ट रूप से चालू रहती है, जिसका उपयोग dep-scan तब करता है जब रीचेबिलिटी चालू होती है। आरंभ करने के लिए नीचे दिए गए कमांड पर्याप्त हैं; प्रति-भाषा गाइड बाइनरी रिज़ॉल्यूशन, बैकएंड और नेटवर्क सुरक्षा, रिस्टोर आवश्यकताओं, और इन-रेपो फ़िक्स्चर पर कार्यरत उदाहरणों को कवर करते हैं।
Rust (rusi)। cdxgen rusi चलाता है और उसकी रिपोर्ट को सहेजता है, जिसे dep-scan साझा पाइपलाइन में परिवर्तित करता है, इसलिए जिस crate को वास्तव में कॉल किया जाता है (उदाहरण के लिए RUSTSEC-2020-0071 के लिए time::now()) वह Reachable होता है, जबकि केवल मौजूद रहने वाला नहीं। Rust रीचेबिलिटी गाइड देखें।
depscan -i ./my-rust-app -o ./reports --profile research
Go (golem)। dep-scan Go प्रोजेक्ट्स के लिए सीधे golem को इनवोक करता है (PATH पर go की आवश्यकता होती है), किसी मॉड्यूल को Reachable के रूप में चिह्नित करता है जब उसके फ़ंक्शन किसी traced पथ पर होते हैं। वार्म मॉड्यूल कैश वाले अविश्वसनीय रिपॉज़ के लिए --go-analyzer-network offline का उपयोग करें। Go reachability गाइड देखें।
depscan -i ./my-go-app -o ./reports -t go
.NET (dosai)। cdxgen dosai चलाता है, जो प्रति-पैकेज एक स्पष्ट रीचेबिलिटी निर्णय (ReachabilityKind और Confidence के साथ PackageReachability) उत्पन्न करता है जिसे dep-scan आधिकारिक मानता है, इसलिए वास्तव में कॉल किया गया NuGet पैकेज (उदाहरण के लिए नियंत्रित इनपुट पर JsonConvert.DeserializeObject) Reachable है। संस्करणित purls के लिए एक रिस्टोर किए गए ट्री को स्कैन करें। .NET रीचेबिलिटी गाइड देखें।
depscan -i ./my-dotnet-app -o ./reports -t dotnet
JVM, JavaScript/TypeScript, Python, और PHP (atom)। ये चारों इकोसिस्टम atom स्लाइसर को साझा करते हैं, जो एक भाषा-अज्ञेयवादी इंटरमीडिएट रिप्रेज़ेंटेशन बनाता है और स्टैटिक स्लाइसिंग करता है। JVM, JS, Python, और PHP रीचेबिलिटी गाइड देखें।
depscan --profile research -t java -i ./my-java-app -o ./reports --explain