हम सभी ने इसके बारे में बहुत कुछ सुना है एसओबीओएम हाल ही में। हमने उनकी उपयोगिता, उनकी संरचना और सुरक्षा एवं विनियमन के लिए उनकी आवश्यकताओं के बारे में सुना। इस बार मैं CyclonDX SBOM के एक छोटे से कम ज्ञात खंड - निर्भरता ग्राफ के बारे में बात करने के लिए समय लेना चाहता हूं।
नाम के विपरीत, निर्भरता ग्राफ़ एसबीओएम का एक दृश्य पहलू नहीं है। इसका उद्देश्य अन्य घटकों पर घटकों की निर्भरता का वर्णन करने में मदद करना है। यह एक घटक पर निर्भर करता है' बम-रेफ - प्रत्येक एसबीओएम घटक के लिए एक विशिष्ट पहचानकर्ता। विचार यह दिखाना है कि कौन से तत्व एक दूसरे पर निर्भर हैं या एक दूसरे से जुड़े हुए हैं। काफी सरल लगता है, है ना?
लेखक क्या निर्णय लेने की प्रक्रिया में निर्भरता ग्राफ का बहुत उपयोग करता है एसबीओएम के तत्व महत्वपूर्ण हैं और हमें किन बातों पर ध्यान देना चाहिए। इस लेख में, हम इसके तरीके पर गौर करेंगे मुंशी एसबीओएम निर्भरता ग्राफ़ का उपयोग करता है और व्यावहारिक लाभ जो हम प्राप्त कर सकते हैं। हम SBOM निर्भरता ग्राफ़ के कुछ JSON उदाहरण देखेंगे और भविष्य में इसके साथ हम और क्या कर सकते हैं, इस पर एक नज़र डालकर निष्कर्ष निकालेंगे।
निर्भरता ग्राफ क्या है?
डिपेंडेंसी ग्राफ़ को 2019 में CyclonDX प्रारूप में जोड़ा गया था। इसका घोषित उद्देश्य एक अद्वितीय पहचानकर्ता का उपयोग करके घटकों को एक साथ जोड़ना था जिसे बाद में एक के रूप में जाना जाने लगा। बम-रेफ. में CycloneDX उपयोग-मामलों का उदाहरण, हम देख सकते हैं कि निर्भरताएँ घटक संदर्भ आईडी का उपयोग यह दिखाने के लिए कैसे करती हैं कि क्या किस पर निर्भर है:
उदाहरणों में जाए बिना भी, मुझे यकीन है कि आप देख सकते हैं कि एक तत्व को दूसरे से जोड़ने की क्षमता उपयोगी हो सकती है। एक बात के लिए, सबसे आम उपयोग के मामले के रूप में, यह आपको लाइब्रेरी की सभी निर्भरताओं को एक ही स्थान पर तुरंत देखने की अनुमति देता है।
एक निर्भरता ग्राफ़ प्रत्यक्ष और संक्रमणीय दोनों संबंधों का प्रतिनिधित्व कर सकता है और आम तौर पर एक नोड गहरा होता है।
हालाँकि एक पूर्ण निर्भरता वृक्ष का प्रतिनिधित्व करने में सक्षम है, लेकिन इसकी अनुशंसा नहीं की जाती है क्योंकि इसके परिणामस्वरूप परिपत्र निर्भरता या अन्य जटिल संबंधों के कारण अंतहीन लूप हो सकते हैं। यह सलाह दी जाती है कि एकल नोड का प्रतिनिधित्व करके अपने ग्राफ़ को सरल रखें।
स्क्राइब निर्भरता ग्राफ़ का उपयोग कैसे कर रहा है?
साक्ष्य संदर्भ देने के लिए लेखक एसबीओएम के साथ एकत्र किए गए मेटाडेटा का व्यापक उपयोग करता है। साक्ष्य के संदर्भ में यह शामिल है कि इसे कहाँ और कब एकत्र किया गया था, इसका विषय क्या है, इत्यादि। जैसा कि स्क्राइब विश्वसनीय, पुन: प्रयोज्य जानकारी प्रदान करने का प्रयास करता है, हम कनेक्शन बनाने के लिए निर्भरता ग्राफ का उपयोग करते हैं जिसका उपयोग विभिन्न ग्राहकों और परियोजनाओं में किया जा सकता है।
यहां निर्भरता ग्राफ़ लिंक हैं जिनका स्क्राइब समर्थन करता है:
- पैकेज-फ़ाइल: यह कनेक्शन हमें यह देखने की अनुमति देता है कि प्रत्येक पैकेज में कौन सी फ़ाइलें हैं। जाहिर है, अगर हमें किसी पैकेज में कोई फ़ाइल मिलती है जहां वह नहीं है तो यह किसी समस्या का स्पष्ट संकेत है।
- परत संकेत और पैकेज-परत: यह जानना आसान है कि किस छवि परत में कौन से पैकेज स्थित हैं क्योंकि इस तरह से हम परतों के आधार पर कमजोरियों को क्रमबद्ध कर सकते हैं। जो समस्याएं आपको अपनी मूल छवि या अपनी मूल छवि से विरासत में मिली हैं, उनमें उतनी तात्कालिकता और उन्हें प्रभावित करने की आपकी प्रत्यक्ष क्षमता नहीं होगी, जितनी उन परतों पर पाई जाती हैं, जिन्हें आपने स्वयं बनाया है।
- परत-फ़ाइल: पैकेज-फ़ाइल कनेक्शन के समान यह कनेक्शन हमें यह देखने की अनुमति देता है कि प्रत्येक परत के साथ कौन सी फ़ाइलें जुड़ी हुई हैं। अन्य कनेक्शनों के साथ मिलकर, हम यह सत्यापित कर सकते हैं कि फ़ाइलें सही पैकेज और परत से जुड़ी हैं और उन जगहों पर कोई फ़ाइलें नहीं हैं जहां उन्हें नहीं होना चाहिए।
- कमिट और कमिट-फ़ाइल: यह पहचान कर कि कौन सी फ़ाइलें किस कमिट से आई हैं, हम यह सुनिश्चित कर सकते हैं कि अंतिम छवि बनाने के लिए उपयोग किए जाने से पहले कमिट फ़ाइलों में कोई अनुचित परिवर्तन नहीं हुए थे।
इस सारी जानकारी का एक साथ उपयोग करके हम एसबीओएम से एक काफी व्यापक छवि तैयार कर सकते हैं कि कौन सी फाइलें कहां मिलनी चाहिए। परिणामस्वरूप, हमारे पास आउटलेर्स या विपथन को पकड़ने का बेहतर मौका है जो आपकी छवि में एक समस्या का संकेत दे सकता है - या तो एक अखंडता समस्या या संभावित हमले।
निर्भरता ग्राफ और नीति प्रवर्तन
जटिल नीतियों को प्रभावी ढंग से लागू करने के लिए स्क्राइब इस व्यापक निर्भरता ग्राफ का लाभ उठाता है। उदाहरण के लिए, प्रतिबद्ध-फ़ाइल कोड स्वामी नीतियों को बनाए रखने के लिए निर्भरता का उपयोग किया जाता है। यह हमें यह सत्यापित करने में सक्षम बनाता है कि किसने और कब कौन सी फ़ाइल प्रतिबद्ध की। पैकेज-फ़ाइल पैकेज अखंडता नीतियों को सुनिश्चित करने के लिए निर्भरता का उपयोग किया जाता है। यह हमें यह जाँचने की अनुमति देता है कि कौन सी फ़ाइलें प्रत्येक पैकेज से जुड़ी होनी चाहिए और यह सत्यापित करने के लिए कि यह वास्तव में मामला है। इसके अतिरिक्त, पैकेज-परत निर्भरता का उपयोग प्रत्येक परत की विशिष्ट आवश्यकताओं के लिए पैकेज नीतियों को तैयार करने के लिए किया जाता है। चूँकि प्रत्येक सॉफ़्टवेयर छवि अपनी परतों का निर्माण अलग-अलग तरीके से कर सकती है, इसलिए यह निश्चित रूप से जानने में सक्षम होना अमूल्य है कि कौन से पैकेज छवि की किस परत से जुड़े हुए हैं।
अपनी निर्भरता ग्राफ़ जानकारी को अनुकूलित करना
हम जानते हैं कि हर कोई यह सारी जानकारी साझा करने के लिए उत्सुक नहीं है या वे इसे देखने या किसी भी तरह से इसका उपयोग करने की परवाह नहीं करते हैं।
इसे संबोधित करने के एक तरीके के रूप में, Scribe आपको अपने SBOM के अधिक विशिष्ट संस्करण बनाने की अनुमति देता है। यहां अनुकूलन विकल्प दिए गए हैं जिनका उपयोग आप हमारे साथ कर सकते हैं वैलिंट एसबीओएम बनाते समय उपकरण जिसका हम वर्तमान में समर्थन कर रहे हैं। भविष्य में अतिरिक्त विकल्प उपलब्ध होंगे:
- केवल विशिष्ट घटक समूहों को शामिल करने के लिए, उपयोग करें -अवयव समूह प्रकारों के बीच चयन करने के लिए.
- विशिष्ट पैकेज प्रकारों को शामिल करने या बाहर करने के लिए, उपयोग करें -बंडल का प्रकार or -पैकेज-बहिष्कृत-प्रकार एक विशिष्ट पैकेज प्रकार का चयन करने के लिए।
- स्थापित संकुल को शामिल करने के लिए (पैकेज समूह) स्थापित) या स्रोतों द्वारा संदर्भित पैकेज (पैकेज समूह)। अनुक्रमणिका), प्रयोग करें -पैकेज-समूह विकल्पों के बीच चयन करने के लिए।
- घटकों को बाहर करने के लिए, उपयोग करें -फ़िल्टर-रेगेक्स, -फ़िल्टर-स्कोप, और -फ़िल्टर-purl किसी भी घटक को बाहर करने के लिए जिसे आप बाहर करना चाहते हैं।
- किसी भी फ़ाइल सामग्री को संलग्न करने के लिए, उपयोग करें -अटैच-रेगेक्स बाहरी फ़ाइलों की सामग्री शामिल करने के लिए.
- कस्टम परिवेश और लेबल शामिल करने के लिए, उपयोग करें -env और -लेबल अपने कस्टम फ़ील्ड संलग्न करने के लिए। यह आपको आपके द्वारा बनाए जा रहे एसबीओएम में कस्टम मेटाडेटा जोड़ने की अनुमति देता है।
भविष्य पर विचार करते हुए
स्क्राइब आपके एसबीओएम के विभिन्न घटकों के बीच हमारे द्वारा बनाए गए संदर्भ और कनेक्शन को अत्यंत महत्वपूर्ण मानता है। हमारे वैलेंट की क्षमता के साथ हस्ताक्षर करें, सत्यापित करें, तथा नीतियों का प्रबंधन करें हम ऐसा भविष्य देखना पूरी तरह से संभव मानते हैं जहां सुरक्षा नीतियों के प्रबंधन के अलावा और भी बहुत कुछ किया जा सकता है। हम ऐसे भविष्य की कल्पना कर सकते हैं जहां निर्भरता ग्राफ की जानकारी का उपयोग गुणवत्ता नियंत्रण, विशिष्ट अनुपालन आवश्यकताओं और यहां तक कि फिनटेक और कृषि जैसे असंबंधित क्षेत्रों में भी किया जा सकता है।
स्क्राइब के प्लेटफ़ॉर्म में एक निःशुल्क स्तर है जहां आप अपनी उंगलियों पर खेलने की सभी क्षमताओं के साथ इसे अभी से आज़माना शुरू कर सकते हैं। मैं आपको इसके लिए प्रोत्साहित करता हूं कोशिश करो, समय के साथ एकत्रित हुई ऐसी जानकारी की उपयोगिता देखें, और देखें कि आप उस जानकारी का उपयोग किस लिए कर सकते हैं। मुझे आशा है कि आप हमारे साथ जुड़ेंगे क्योंकि हम हम सभी के लिए अधिक सुरक्षित भविष्य का स्वागत करते हैं।
यह सामग्री आपके लिए स्क्राइब सिक्योरिटी द्वारा लाई गई है, जो एक अग्रणी एंड-टू-एंड सॉफ्टवेयर आपूर्ति श्रृंखला सुरक्षा समाधान प्रदाता है - जो संपूर्ण सॉफ्टवेयर आपूर्ति श्रृंखलाओं में कोड कलाकृतियों और कोड विकास और वितरण प्रक्रियाओं के लिए अत्याधुनिक सुरक्षा प्रदान करता है। और अधिक जानें.