
osv-scanner v2.5.0
Go में लिखा गया भेद्यता स्कैनर जो https://osv.dev द्वारा प्रदान किए गए डेटा का उपयोग करता है
OSV-Scanner का उपयोग करके अपने प्रोजेक्ट की डिपेंडेंसी को प्रभावित करने वाली मौजूदा कमजोरियों का पता लगाएं। OSV-Scanner OSV डेटाबेस के लिए एक आधिकारिक रूप से समर्थित फ्रंटएंड और OSV-Scalibr के लिए CLI इंटरफ़ेस प्रदान करता है, जो किसी प्रोजेक्ट की डिपेंडेंसी की सूची को उन्हें प्रभावित करने वाली कमजोरियों से जोड़ता है।
OSV-Scanner विभिन्न प्रकार के प्रोजेक्ट प्रकारों, पैकेज मैनेजरों और सुविधाओं का समर्थन करता है, जिनमें शामिल हैं लेकिन इन्हीं तक सीमित नहीं:
- भाषाएँ: C/C++, Dart, Elixir, Go, Java, Javascript, PHP, Python, R, Ruby, Rust.
- पैकेज मैनेजर: npm, pip, yarn, maven, go modules, cargo, gem, composer, nuget और अन्य।
- ऑपरेटिंग सिस्टम: Linux सिस्टम पर OS पैकेजों में कमजोरियों का पता लगाता है।
- कंटेनर: कंटेनर इमेजेज को उनके बेस इमेजेज और शामिल पैकेजों में कमजोरियों के लिए स्कैन करता है।
- निर्देशित सुधार (Guided Remediation): डिपेंडेंसी गहराई, न्यूनतम गंभीरता, फिक्स रणनीति और निवेश पर प्रतिफल जैसे मानदंडों के आधार पर पैकेज संस्करण अपग्रेड के लिए सिफारिशें प्रदान करता है।
OSV-Scanner इस कार्यक्षमता को प्रदान करने के लिए अंतर्निहित रूप से एक्स्टेंसिबल OSV-Scalibr लाइब्रेरी का उपयोग करता है। यदि कोई भाषा या पैकेज मैनेजर वर्तमान में समर्थित नहीं है, तो कृपया फीचर अनुरोध दर्ज करें।
अंतर्निहित डेटाबेस
अंतर्निहित डेटाबेस, OSV.dev के पास बंद-स्रोत सलाहकार डेटाबेस और स्कैनर की तुलना में कई लाभ हैं:
- अधिकांश ओपन सोर्स भाषा और OS इकोसिस्टम को कवर करते हुए (जिसमें Git शामिल है), यह व्यापक है।
- प्रत्येक सलाह (advisory) एक खुले और आधिकारिक स्रोत से आती है (जैसे GitHub Security Advisories, RustSec Advisory Database, Ubuntu security notices)
- कोई भी सलाहों में सुधार का सुझाव दे सकता है, जिसके परिणामस्वरूप एक बहुत उच्च गुणवत्ता वाला डेटाबेस बनता है।
- OSV प्रारूप प्रभावित संस्करणों के बारे में जानकारी को मशीन-पठनीय प्रारूप में स्पष्ट रूप से संग्रहीत करता है जो डेवलपर की पैकेज सूची पर सटीक रूप से मैप करता है
उपरोक्त सभी के परिणामस्वरूप सटीक और कार्रवाई योग्य कमजोरी सूचनाएं मिलती हैं, जो उन्हें हल करने के लिए आवश्यक समय को कम करती हैं। अधिक जानकारी के लिए OSV.dev देखें!
मूल स्थापना
OSV-Scanner स्थापित करने के लिए, कृपया हमारे दस्तावेज़ीकरण के स्थापना अनुभाग को देखें। OSV-Scanner रिलीज़ GitHub रिपॉजिटरी के रिलीज़ पृष्ठ पर पाए जा सकते हैं। अनुशंसित तरीका आपके प्लेटफ़ॉर्म के लिए एक प्रीबिल्ट बाइनरी डाउनलोड करना है। वैकल्पिक रूप से, आप इसे स्रोत से बनाने के लिए go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest का उपयोग कर सकते हैं।
मुख्य विशेषताएं
अधिक जानकारी के लिए, कृपया OSV-Scanner का उपयोग करने का तरीका जानने के लिए हमारा विस्तृत दस्तावेज़ीकरण पढ़ें। प्रत्येक सुविधा के बारे में विस्तृत जानकारी के लिए, इस README में उनके शीर्षकों पर क्लिक करें।
कृपया ध्यान दें: ये नवीनतम OSV-Scanner V2 बीटा के लिए निर्देश हैं। यदि आप V1 का उपयोग कर रहे हैं, तो इसके बजाय V1 README और दस्तावेज़ीकरण देखें।
स्रोत निर्देशिका स्कैन करना
$ osv-scanner scan source -r /path/to/your/dir
यह कमांड निर्दिष्ट निर्देशिका को किसी भी समर्थित पैकेज फ़ाइल, जैसे package.json, go.mod, pom.xml, आदि के लिए पुनरावर्ती रूप से स्कैन करेगा और किसी भी खोजी गई कमजोरी को आउटपुट करेगा।
OSV-Scanner के पास यह निर्धारित करने के लिए कॉल विश्लेषण (call analysis) का उपयोग करने का विकल्प है कि क्या प्रोजेक्ट में वास्तव में कोई कमजोर फ़ंक्शन उपयोग किया जा रहा है, जिसके परिणामस्वरूप कम झूठे सकारात्मक (false positives) और कार्रवाई योग्य अलर्ट मिलते हैं।
OSV-Scanner कमजोरी स्कैनिंग के लिए वेंडर किए गए C/C++ कोड का भी पता लगा सकता है। विवरण के लिए यहाँ देखें।
समर्थित लॉकफ़ाइलें
OSV-Scanner 11+ भाषा इकोसिस्टम और 19+ लॉकफ़ाइल प्रकारों का समर्थन करता है। यह जांचने के लिए कि क्या आपका इकोसिस्टम कवर किया गया है, कृपया हमारा विस्तृत दस्तावेज़ीकरण देखें।
कंटेनर स्कैनिंग
OSV-Scanner निम्नलिखित ऑपरेटिंग सिस्टम पैकेजों और भाषा-विशिष्ट डिपेंडेंसी में कमजोरियों का पता लगाने के लिए कंटेनर इमेजेज के लिए व्यापक, परत-जागरूक (layer-aware) स्कैनिंग का भी समर्थन करता है।
| डिस्ट्रो समर्थन | भाषा आर्टिफैक्ट समर्थन |
|---|---|
| Alpine OS | Go |
| Debian | Java |
| Ubuntu | Node |
| Python |
समर्थन के विवरण के लिए पूर्ण दस्तावेज़ीकरण देखें।
उपयोग:
$ osv-scanner scan image my-image-name:tag

लाइसेंस स्कैनिंग
deps.dev डेटा का उपयोग करके अपनी डिपेंडेंसी के लाइसेंस जांचें। सारांश के लिए:
osv-scanner --licenses path/to/repository
अनुमत लाइसेंस सूची (SPDX प्रारूप) के विरुद्ध जांचने के लिए:
osv-scanner --licenses="MIT,Apache-2.0" path/to/directory
ऑफ़लाइन स्कैनिंग
अपने प्रोजेक्ट को स्थानीय OSV डेटाबेस के विरुद्ध स्कैन करें। प्रारंभिक डेटाबेस डाउनलोड के बाद किसी नेटवर्क कनेक्शन की आवश्यकता नहीं होती है। डेटाबेस को मैन्युअल रूप से भी डाउनलोड किया जा सकता है।
osv-scanner --offline --download-offline-databases ./path/to/your/dir
निर्देशित सुधार (प्रायोगिक)
[!WARNING] अविश्वसनीय प्रोजेक्टों पर चलाए जाने पर निर्देशित सुधार (
fixकमांड) जोखिम भरा हो सकता है। यह पैकेज मैनेजर को प्रोजेक्ट में निर्दिष्ट स्क्रिप्ट निष्पादित करने या बाहरी रजिस्ट्रियों का अनुसरण करने के लिए ट्रिगर कर सकता है। कृपया आगे बढ़ने से पहले सुनिश्चित करें कि आप स्रोत कोड और आर्टिफैक्ट्स पर भरोसा करते हैं।
OSV-Scanner निर्देशित सुधार प्रदान करता है, एक सुविधा जो डिपेंडेंसी गहराई, न्यूनतम गंभीरता, फिक्स रणनीति और निवेश पर प्रतिफल जैसे मानदंडों के आधार पर पैकेज संस्करण अपग्रेड का सुझाव देती है। हम वर्तमान में निम्नलिखित फाइलों में कमजोरियों को ठीक करने का समर्थन करते हैं:
| इकोसिस्टम | फ़ाइल प्रारूप (प्रकार) | समर्थित सुधार रणनीतियाँ |
|---|---|---|
| npm | package-lock.json (लॉकफ़ाइल) | in-place |
| npm | package.json (मैनिफेस्ट) | relock |
| Maven | pom.xml (मैनिफेस्ट) | override |
यह एक हेडलेस CLI कमांड के साथ-साथ एक इंटरैक्टिव मोड के रूप में भी उपलब्ध है।
उदाहरण (npm के लिए)
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
इंटरैक्टिव मोड (npm के लिए)
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json
डेटा स्रोत और गोपनीयता
OSV-Scanner संचालन के दौरान निम्नलिखित बाहरी सेवाओं के साथ संवाद करता है:
OSV.dev API
कमजोरी जानकारी के लिए प्राथमिक डेटा स्रोत। OSV-Scanner ज्ञात कमजोरियों के लिए पैकेजों की जांच करने और वेंडर किए गए C/C++ डिपेंडेंसी की पहचान करने के लिए इस API को क्वेरी करता है। भेजे गए डेटा में पैकेज नाम, संस्करण, इकोसिस्टम और फ़ाइल हैश शामिल हैं। नेटवर्क अनुरोधों को अक्षम करने और इसके बजाय स्थानीय डेटाबेस के विरुद्ध स्कैन करने के लिए --offline मोड का उपयोग करें।
deps.dev API
पूरक पैकेज जानकारी के लिए उपयोग किया जाता है:
- डिपेंडेंसी रिज़ॉल्यूशन: कमजोरी स्कैनिंग और सुधार के लिए डिपेंडेंसी ग्राफ़ को हल करता है
- कंटेनर इमेज स्कैनिंग: कमजोरी का पता लगाने के लिए कंटेनर इमेज मेटाडेटा को क्वेरी करता है
- लाइसेंस स्कैनिंग (
--licensesफ़्लैग): पैकेजों के लिए लाइसेंस जानकारी प्राप्त करता है - पैकेज डेप्रीकेशन: जांचता है कि पैकेज डेप्रीकेटेड हैं या नहीं
भेजे गए डेटा में पैकेज नाम, संस्करण और इकोसिस्टम शामिल हैं। कोई स्रोत कोड प्रेषित नहीं किया जाता है।
पैकेज रजिस्ट्री
डिपेंडेंसी रिज़ॉल्यूशन के लिए मूल रजिस्ट्री का उपयोग करते समय (deps.dev के बजाय), OSV-Scanner निम्नलिखित को क्वेरी कर सकता है:
| रजिस्ट्री | URL | उपयोग किसके लिए |
|---|---|---|
| Maven Central | repo.maven.apache.org/maven2 | Maven पैकेज मेटाडेटा और POM फ़ाइलें |
| npm Registry | registry.npmjs.org | npm पैकेज मेटाडेटा |
| PyPI | pypi.org | Python पैकेज मेटाडेटा |
योगदान करें
समस्याओं की रिपोर्ट करें
यदि आपके पास कुछ ऐसा है जो बग जैसा लगता है, तो कृपया GitHub issue ट्रैकिंग सिस्टम का उपयोग करें। कोई issue दर्ज करने से पहले, कृपया यह देखने के लिए मौजूदा issues खोजें कि क्या आपका issue पहले से कवर है।
osv-scanner में कोड का योगदान
कोड योगदान करने के तरीके के दस्तावेज़ीकरण के लिए CONTRIBUTING.md देखें।