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