Go में लिखा गया भेद्यता स्कैनर जो https://osv.dev द्वारा प्रदान किए गए डेटा का उपयोग करता है
OSV-Scanner का उपयोग करके अपने प्रोजेक्ट की डिपेंडेंसी को प्रभावित करने वाली मौजूदा कमजोरियों का पता लगाएं। OSV-Scanner OSV डेटाबेस के लिए एक आधिकारिक रूप से समर्थित फ्रंटएंड और OSV-Scalibr के लिए CLI इंटरफ़ेस प्रदान करता है, जो किसी प्रोजेक्ट की डिपेंडेंसी की सूची को उन्हें प्रभावित करने वाली कमजोरियों से जोड़ता है।
OSV-Scanner विभिन्न प्रकार के प्रोजेक्ट प्रकारों, पैकेज मैनेजरों और सुविधाओं का समर्थन करता है, जिनमें शामिल हैं लेकिन इन्हीं तक सीमित नहीं:
OSV-Scanner इस कार्यक्षमता को प्रदान करने के लिए अंतर्निहित रूप से एक्स्टेंसिबल OSV-Scalibr लाइब्रेरी का उपयोग करता है। यदि कोई भाषा या पैकेज मैनेजर वर्तमान में समर्थित नहीं है, तो कृपया फीचर अनुरोध दर्ज करें।
अंतर्निहित डेटाबेस, OSV.dev के पास बंद-स्रोत सलाहकार डेटाबेस और स्कैनर की तुलना में कई लाभ हैं:
उपरोक्त सभी के परिणामस्वरूप सटीक और कार्रवाई योग्य कमजोरी सूचनाएं मिलती हैं, जो उन्हें हल करने के लिए आवश्यक समय को कम करती हैं। अधिक जानकारी के लिए 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 निर्देशित सुधार प्रदान करता है, एक सुविधा जो डिपेंडेंसी गहराई, न्यूनतम गंभीरता, फिक्स रणनीति और निवेश पर प्रतिफल जैसे मानदंडों के आधार पर पैकेज संस्करण अपग्रेड का सुझाव देती है। हम वर्तमान में निम्नलिखित फाइलों में कमजोरियों को ठीक करने का समर्थन करते हैं:
यह एक हेडलेस CLI कमांड के साथ-साथ एक इंटरैक्टिव मोड के रूप में भी उपलब्ध है।
$ osv-scanner fix \
--max-depth=3 \
--min-severity=5 \
--ignore-dev \
--strategy=in-place \
-L path/to/package-lock.json
$ osv-scanner fix \
-M path/to/package.json \
-L path/to/package-lock.json

OSV-Scanner संचालन के दौरान निम्नलिखित बाहरी सेवाओं के साथ संवाद करता है:
कमजोरी जानकारी के लिए प्राथमिक डेटा स्रोत। OSV-Scanner ज्ञात कमजोरियों के लिए पैकेजों की जांच करने और वेंडर किए गए C/C++ डिपेंडेंसी की पहचान करने के लिए इस API को क्वेरी करता है। भेजे गए डेटा में पैकेज नाम, संस्करण, इकोसिस्टम और फ़ाइल हैश शामिल हैं। नेटवर्क अनुरोधों को अक्षम करने और इसके बजाय स्थानीय डेटाबेस के विरुद्ध स्कैन करने के लिए --offline मोड का उपयोग करें।
पूरक पैकेज जानकारी के लिए उपयोग किया जाता है:
--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 देखें।