

VEX Hub एक केंद्रीकृत रिपॉजिटरी है जो विभिन्न ओपन-सोर्स सॉफ़्टवेयर परियोजनाओं से Vulnerability Exploitability eXchange (VEX) दस्तावेज़ एकत्र और प्रबंधित करता है। यह भेद्यता जानकारी के लिए एक व्यापक संसाधन के रूप में कार्य करता है, जो उपयोगकर्ताओं और सुरक्षा उपकरणों को कई परियोजनाओं और पारिस्थितिक तंत्रों में VEX डेटा का कुशलतापूर्वक उपयोग और एक्सेस करने में मदद करता है।
VEX Hub पंजीकृत परियोजनाओं के स्रोत रिपॉजिटरी से VEX दस्तावेज़ स्वचालित रूप से प्राप्त करता है। पंजीकृत Package URL (PURL) से स्रोत रिपॉजिटरी की पहचान करके, VEX Hub VEX दस्तावेज़ों को कॉपी और व्यवस्थित करता है, जिससे वे व्यापक समुदाय के लिए आसानी से सुलभ हो जाते हैं।
बस इतना ही! VEX Hub आपके VEX दस्तावेज़ों को स्वचालित रूप से प्राप्त और संसाधित करेगा।
VEX Hub Crawler समय-समय पर पंजीकृत पैकेजों के VEX दस्तावेज़ों को क्रॉल करता है और उन्हें VEX Hub में बनाए रखता है। पंजीकृत पैकेज PURLs की सूची के रूप में एक फ़ाइल में परिभाषित हैं, जिसे कोई भी Pull Requests के माध्यम से अपडेट कर सकता है।
PURL पंजीकरण, समर्थित पारिस्थितिक तंत्रों और विशिष्ट आवश्यकताओं के बारे में विस्तृत जानकारी के लिए, कृपया VEX Hub Crawler देखें।
पैकेज फ़ाइल केवल क्रॉल किए जाने वाले पैकेज का PURL निर्दिष्ट करती है, और VEX Hub Crawler स्वचालित रूप से उस स्रोत कोड रिपॉजिटरी की पहचान करता है जहां VEX फ़ाइल स्थित है। स्रोत रिपॉजिटरी की पहचान करने की विधि पारिस्थितिक तंत्र के अनुसार भिन्न होती है। विभिन्न पैकेज प्रकारों के लिए स्रोत रिपॉजिटरी की पहचान और क्रॉलिंग कैसे की जाती है, इसकी विस्तृत जानकारी के लिए, कृपया vex-crawler दस्तावेज़ देखें।
स्रोत कोड रिपॉजिटरी की पहचान करने के बाद, VEX Hub उसमें VEX दस्तावेज़ों को स्वचालित रूप से खोजता है। खोज प्रक्रिया में निम्नलिखित प्रमुख बिंदु शामिल हैं:
.vex/ निर्देशिका में खोजा जाता है।*.vex.json, *.csaf.json) पर विचार किया जाता है।खोज प्रक्रिया, समर्थित पारिस्थितिक तंत्रों और विशिष्ट आवश्यकताओं के बारे में विस्तृत जानकारी के लिए, कृपया vex-crawler दस्तावेज़ देखें।
VEX Hub को Package URL (PURL) के आधार पर संरचित किया गया है, जिसमें version, qualifiers और subpath शामिल नहीं हैं।
संरचना निम्नलिखित नियमों का पालन करती है:
oci के मामले में, इसके बजाय repository_url क्वालिफायर का उपयोग किया जाता है।products फ़ील्ड के भीतर निर्दिष्ट किए जाने चाहिए।निर्देशिका संरचना निर्माण के उदाहरण:
pkg:npm/express → /npm/express/pkg:golang/github.com/gorilla/mux → /golang/github.com/gorilla/mux/pkg:maven/org.apache.xmlgraphics/batik-anim → /maven/org.apache.xmlgraphics/batik-anim/pkg:oci/trivy?repository_url=ghcr.io/aquasecurity/trivy → /oci/ghcr.io/aquasecurity/trivy/विशेष वर्ण एन्कोडिंग वाला उदाहरण:
pkg:npm/@angular/core → /npm/%40angular/core/VEX Hub VEX Repository Specification का अनुपालन करता है। vex_repository.json और index.json फ़ाइलों का उपयोग VEX Hub में VEX दस्तावेज़ों तक प्रोग्रामेटिक रूप से पहुंचने के लिए किया जा सकता है।
VEX Hub के पास एकल PURL के लिए कई VEX दस्तावेज़ संग्रहीत करने की क्षमता है, क्योंकि यह स्रोत रिपॉजिटरी से सभी मेल खाने वाले VEX दस्तावेज़ों को कॉपी करता है। हालाँकि, VEX Repository Specification प्रति PURL केवल एक VEX दस्तावेज़ की अनुमति देता है। इस विनिर्देश का अनुपालन करने के लिए, VEX Hub निम्नलिखित वितरण रणनीति लागू करता है:
भ्रम को रोकने और स्थिरता सुनिश्चित करने के लिए, समान PURL के लिए VEX स्टेटमेंट्स को कई फ़ाइलों में विभाजित करने की अनुशंसा नहीं की जाती है, क्योंकि VEX Hub प्रति PURL केवल एक VEX फ़ाइल वितरित करता है।
अनुशंसित तरीके हैं:
उदाहरण परिदृश्य:
एक स्रोत रिपॉजिटरी https://github.com/org/repo पर विचार करें जो दो उत्पादों, एक Go मॉड्यूल और एक OCi इमेज का रखरखाव करती है।
पहला तरीका है दोनों उत्पादों के लिए VEX स्टेटमेंट्स युक्त एक एकल VEX फ़ाइल, vex.json, बनाना।
openvex.json: दोनों उत्पादों के लिए, PURLs pkg:golang/github.com/org/repo, pkg:oci/repo?repository_url=docker.io/org/repo और pkg:oci/repo?repository_url=ghcr.io/org/repo के साथदूसरा तरीका प्रत्येक उत्पाद के लिए अलग-अलग VEX फ़ाइलें बनाना है।
golang.vex: Go मॉड्यूल के लिए, PURL pkg:golang/github.com/org/repo के साथoci.vex: OCI इमेज के लिए, PURLs, pkg:oci/repo?repository_url=docker.io/org/repo और pkg:oci/repo?repository_url=ghcr.io/org/repo के साथनिम्नलिखित संरचना की अनुशंसा नहीं की जाती है:
v1.vex: Go मॉड्यूल के लिए, PURL pkg:golang/github.com/org/[email protected] के साथv2.vex: Go मॉड्यूल के लिए, PURL pkg:golang/github.com/org/[email protected] के साथइस उदाहरण में, वितरण के लिए v1.vex चुना जाता है, और v2.vex को अनदेखा कर दिया जाता है।
उन्हें कई versions और qualifiers के साथ एक एकल VEX फ़ाइल, golang.vex, में संयोजित किया जाना चाहिए।
चूँकि VEX Hub (और सामान्य रूप से VEX) संभावित रूप से सुरक्षा स्कैनिंग परिणामों को बढ़ाता है, इसलिए आपके लिए यह उचित है कि आप अपने द्वारा उपभोग किए जाने वाले VEX दस्तावेज़ों की शुद्धता की गहन जाँच करें। अन्य Vulnerability Exchange फ़ीड्स, या VEX-तैयार सुरक्षा सलाह फ़ीड्स के विपरीत, VEX Hub VEX स्टेटमेंट्स का डेटा स्रोत नहीं है। VEX Hub केवल मौजूदा VEX दस्तावेज़ों को एकत्रित करता है और उन्हें एक केंद्रीय सुविधाजनक रिपॉजिटरी में व्यवस्थित करता है।
VEX Hub में दिखाई देने के लिए, VEX दस्तावेज़ों को पहले मुख्य पैकेज के स्रोत कोड रिपॉजिटरी में कमिट किया जाना आवश्यक है। यह दृष्टिकोण इस तथ्य पर आधारित है कि एक उपयोगकर्ता के रूप में, आपको पहले से ही उन पैकेजों पर भरोसा करना चाहिए जिनका आप उपयोग करते हैं, और इसलिए रखरखावकर्ताओं, शासन और उनके द्वारा अपनाई जाने वाली प्रक्रियाओं पर भी। प्रत्येक परियोजना की अपनी शासन प्रणाली और स्रोत कोड रिपॉजिटरी में कमिट करने की अपनी प्रक्रियाएँ होती हैं। जो सिस्टम और प्रक्रियाएँ पैकेज कोड को आपकी दृष्टि में विश्वसनीय बनाए रखती हैं, वही सिस्टम और प्रक्रियाएँ VEX दस्तावेज़ों को भी आपके लिए विश्वसनीय बनाए रखती हैं। आपको VEX Hub पर उससे अधिक भरोसा नहीं करना चाहिए जितना आप अपने द्वारा चुने गए पैकेजों पर करते हैं।
VEX Hub के पास अपने पास मौजूद VEX दस्तावेज़ों या उनके द्वारा वर्णित पैकेजों की सामग्री के बारे में कोई ज़िम्मेदारी या जानकारी नहीं है। VEX Hub के रखरखावकर्ता VEX दस्तावेज़ों की सामग्री की समीक्षा या जाँच नहीं करते हैं, और जानकारी की सटीकता और शुद्धता की ज़िम्मेदारी मूल पैकेज रखरखावकर्ताओं पर होती है। हम अनुशंसा करते हैं कि उपयोगकर्ता दबाई गई भेद्यताओं को मैन्युअल रूप से ट्राइएज करें, ठीक उसी तरह जैसे वे किसी अन्य भेद्यता को ट्राइएज करते हैं।
यदि किसी पंजीकृत PURL के स्रोत रिपॉजिटरी में VEX दस्तावेज़ VEX Hub में ठीक से अपडेट नहीं हो रहे हैं, तो कृपया निम्नलिखित जाँचें:
.vex/ निर्देशिका)।यदि इन बिंदुओं की पुष्टि के बाद भी समस्याएँ बनी रहती हैं, तो आगे की सहायता के लिए कृपया VEX Hub रिपॉजिटरी में एक issue खोलें।
VEX Hub को बेहतर बनाने के लिए योगदान का स्वागत है! कृपया ध्यान दें कि पैकेजों की सूची, और संबंधित कोड VEX Hub Crawler repository में बनाए रखा जाता है। इस रिपॉजिटरी में सीधे VEX दस्तावेज़ जोड़ने वाले Pull Requests को प्रोत्साहित नहीं किया जाता है। यह परियोजना और इसमें भाग लेने वाले सभी लोग Aqua Security Code of Conduct द्वारा नियंत्रित हैं।