सॉफ़्टवेयर बिल ऑफ़ मैटेरियल्स (एसबीओएम) एक सॉफ़्टवेयर एप्लिकेशन में उपयोग किए जाने वाले सभी घटकों, पुस्तकालयों और अन्य निर्भरताओं की एक सूची है। एसबीओएम के लिए मानक प्रारूपों में एसपीडीएक्स, साइक्लोनडीएक्स और सीपीई (कॉमन प्लेटफार्म एन्यूमरेशन) शामिल हैं। ये प्रारूप सॉफ़्टवेयर एप्लिकेशन में घटकों और निर्भरताओं का प्रतिनिधित्व करने के लिए एक संरचित तरीका प्रदान करते हैं, जिससे उन घटकों से जुड़े सुरक्षा जोखिमों को समझना और प्रबंधित करना आसान हो जाता है।
इस लेख में, हम विस्तार से बताने जा रहे हैं - विभिन्न एसबीओएम प्रारूप और मानक क्या हैं, एसबीओएम में क्या शामिल होना चाहिए और सभी संगठनों को इसका उपयोग करने की आवश्यकता क्यों है।
एसबीओएम मानक क्या है?
आधुनिक सॉफ्टवेयर सिस्टम की आपूर्ति श्रृंखलाओं की जटिलता और गतिशील प्रकृति पारदर्शिता के लिए एक महत्वपूर्ण चुनौती है। पारदर्शिता की यह कमी साइबर सुरक्षा जोखिमों में योगदान करती है और विकास, खरीद और रखरखाव से जुड़ी लागत को बढ़ाती है। इसके परिणाम दूरगामी हैं, जो न केवल व्यवसायों को बल्कि हमारी परस्पर जुड़ी दुनिया में सार्वजनिक सुरक्षा और राष्ट्रीय सुरक्षा जैसे सामूहिक मामलों को भी प्रभावित कर रहे हैं।
सॉफ़्टवेयर आपूर्ति श्रृंखलाओं में पारदर्शिता बढ़ने से साइबर सुरक्षा जोखिमों और लागतों में कमी आ सकती है:
- कमजोर प्रणालियों की पहचान में सुधार करना और घटनाओं के मूल कारण की पहचान करना
- अनियोजित एवं अनुत्पादक कार्य में कमी
- अधिक सूचित बाज़ार विभेदन और घटक चयन की अनुमति देना
- कई क्षेत्रों में प्रारूपों को मानकीकृत करने से प्रयासों के दोहराव में कमी आएगी
- संदिग्ध या नकली सॉफ़्टवेयर घटकों का पता लगाना
इस जानकारी को स्पष्ट और सुसंगत प्रारूप में एकत्र करने और साझा करने से लागत कम करने, विश्वसनीयता में सुधार और हमारे डिजिटल बुनियादी ढांचे में विश्वास बढ़ाने में मदद मिल सकती है।
उस उद्देश्य के लिए, मानकों और प्रारूपों पर एनटीआईए सॉफ्टवेयर पारदर्शिता कार्य समूह सामग्री के सॉफ़्टवेयर बिलों के वर्तमान स्वरूपों का मूल्यांकन करने और संभावित भविष्य के उपयोगों की पहचान करने के लिए 2018 में स्थापित किया गया था। समूह ने सॉफ्टवेयर उत्पादों में उपयोग किए जाने वाले बाहरी घटकों और साझा पुस्तकालयों की पहचान करने और मशीन-पठनीय प्रारूप में इस जानकारी को संप्रेषित करने से संबंधित मौजूदा मानकों और पहलों की जांच की। समूह ने मालिकाना प्रारूपों पर विचार नहीं किया। मूल सर्वेक्षण 2019 के अंत में जारी किया गया था और 2021 में अद्यतन किया गया था, जिसमें एसबीओएम टूलींग पारिस्थितिकी तंत्र के लाभों और तकनीकी एसबीओएम दुनिया में समन्वय और सामंजस्य के महत्व पर प्रकाश डाला गया था। मुख्य उपाय यह है कि एसबीओएम डेटा को विभिन्न प्रारूपों में संप्रेषित किया जा सकता है और पारिस्थितिकी तंत्र को उनके बीच अंतरसंचालनीयता का समर्थन करना चाहिए।
कार्य समूह ने पाया कि आमतौर पर तीन प्रारूपों का उपयोग किया जाता है:
- सॉफ्टवेयर पैकेज डेटा एक्सचेंज (एसपीडीएक्स®), लिनक्स फाउंडेशन द्वारा विकसित एक ओपन-सोर्स, मशीन-पठनीय प्रारूप और अब एक आईएसओ/आईईसी मानक है
- CycloneDX (CDX), OWASP समुदाय द्वारा विकसित एक ओपन-सोर्स, मशीन-पठनीय प्रारूप है
- सॉफ़्टवेयर पहचान (एसडब्ल्यूआईडी), एक आईएसओ/आईईसी उद्योग मानक है जिसका उपयोग विभिन्न व्यावसायिक सॉफ़्टवेयर प्रकाशकों द्वारा किया जाता है
यह ध्यान देने योग्य है कि ये तीनों प्रारूप कुछ सामान्य जानकारी साझा करते हैं। हालाँकि, इन्हें पारंपरिक रूप से सॉफ़्टवेयर विकास प्रक्रिया के विभिन्न चरणों में उपयोग किया जाता है और विभिन्न दर्शकों के लिए अभिप्रेत है। हम इस लेख में इनमें से प्रत्येक प्रारूप पर विस्तार से चर्चा करेंगे।
एसबीओएम में क्या शामिल होना चाहिए?
एनटीआईए के न्यूनतम घटक एक एसबीओएम, जिसे तत्व कहा जाता है, में तीन व्यापक और परस्पर संबंधित क्षेत्र शामिल हैं। ये तत्व प्रौद्योगिकी और कार्यात्मक संचालन दोनों को संबोधित करते हुए सॉफ्टवेयर पारदर्शिता के लिए एक लचीले दृष्टिकोण की अनुमति देते हैं। भविष्य में और अधिक विवरण या तकनीकी प्रगति जोड़ी जा सकती है। जैसा कि पहले उल्लेख किया गया है, ये वर्तमान में न्यूनतम घटक हैं, और संगठनों को अधिक की आवश्यकता हो सकती है। सॉफ़्टवेयर आपूर्ति श्रृंखला में पारदर्शिता की क्षमता समय के साथ बेहतर और विकसित हो सकती है।
इन एसबीओएम के लिए न्यूनतम आवश्यक तत्व इन्हें आम तौर पर तीन श्रेणियों में बांटा गया है:
- डेटा फ़ील्ड: एसबीओएम में सॉफ्टवेयर घटकों के बारे में महत्वपूर्ण डेटा शामिल होना चाहिए, जैसे घटक का नाम, आपूर्तिकर्ता का नाम, संस्करण और विशिष्ट पहचानकर्ता। इसमें घटकों के बीच निर्भरता के बारे में जानकारी भी शामिल होनी चाहिए, जिससे आपूर्ति श्रृंखला में सभी सॉफ़्टवेयर घटकों की सटीक पहचान और ट्रैकिंग की अनुमति मिल सके।
- प्रथाएँ और प्रक्रियाएँ: एसबीओएम दस्तावेज़ में एसबीओएम बनाने और अद्यतन करने, इसे वितरित करने और उस तक पहुंचने के साथ-साथ त्रुटियों से निपटने के लिए मानक प्रथाओं और प्रक्रियाओं की रूपरेखा भी होनी चाहिए।
- स्वचालन समर्थन: सामग्री का सॉफ़्टवेयर बिल मशीन-पठनीय होना चाहिए और डेटा की निरंतर ट्रैकिंग के लिए स्वचालित रूप से उत्पन्न होने में सक्षम होना चाहिए। यह आमतौर पर SPDX, CycloneDX और SWID टैग जैसे मानक प्रारूपों में होता है जो उन्हें मनुष्यों के लिए पढ़ने योग्य भी बनाता है।
एसपीडीएक्स एसबीओएम मानक प्रारूप
एसपीडीएक्स® (सॉफ़्टवेयर पैकेज डेटा एक्सचेंज) विनिर्देश कई फ़ाइल स्वरूपों में सॉफ़्टवेयर घटकों, लाइसेंस, कॉपीराइट और सुरक्षा विवरण के बारे में जानकारी साझा करने के लिए एक आईएसओ/आईईसी मानक है। इस परियोजना ने डेटा विनिमय मानकों के एक सेट को विकसित और सुधारना जारी रखा है जो व्यवसायों और संगठनों को सॉफ्टवेयर मेटाडेटा को एक ऐसे प्रारूप में साझा करने की अनुमति देता है जिसे मनुष्यों और मशीनों दोनों द्वारा समझा जा सकता है, जिससे सॉफ्टवेयर आपूर्ति श्रृंखला प्रक्रियाएं सरल हो जाती हैं।
एसपीडीएक्स जानकारी को विशिष्ट सॉफ़्टवेयर उत्पादों, घटकों या घटकों के सेट, व्यक्तिगत फ़ाइलों या यहां तक कि छोटे कोड स्निपेट्स से जोड़ा जा सकता है। एसपीडीएक्स परियोजना उस डेटा का वर्णन करने के लिए एक भाषा बनाने और परिष्कृत करने पर केंद्रित है जिसे एसबीओएम के हिस्से के रूप में आदान-प्रदान किया जा सकता है, और इस डेटा को कई फ़ाइल स्वरूपों (आरडीएफ/एक्सएमएल, एक्सएलएसएक्स, टैग-वैल्यू, जेएसओएन, वाईएएमएल) में प्रस्तुत करने की क्षमता है। , और XML) सॉफ़्टवेयर पैकेज और संबंधित सामग्री के बारे में जानकारी एकत्र करना और साझा करना आसान बनाता है, जिसके परिणामस्वरूप समय और सटीकता में सुधार होता है।
एसपीडीएक्स विनिर्देश एक वैध दस्तावेज़ के लिए आवश्यक फ़ील्ड और अनुभागों को रेखांकित करता है, लेकिन यह ध्यान रखना महत्वपूर्ण है कि सभी अनुभाग अनिवार्य नहीं हैं - केवल निर्माण सूचना अनुभाग आवश्यक है। दस्तावेज़ निर्माता यह चुन सकता है कि वे कौन से अनुभाग और फ़ील्ड शामिल करना चाहते हैं, जो उस सॉफ़्टवेयर और मेटाडेटा जानकारी का वर्णन करता है जिसे वे साझा करने की योजना बना रहे हैं।
एसपीडीएक्स सॉफ्टवेयर विकास और तैनाती में पाए जाने वाले सभी घटकों का प्रतिनिधित्व करके सामग्री डेटा के सॉफ्टवेयर बिल को प्रभावी ढंग से कैप्चर कर सकता है। इसका उपयोग डिस्ट्रो .iso छवियों, कंटेनरों, सॉफ़्टवेयर पैकेजों, बाइनरी फ़ाइलों, स्रोत फ़ाइलों, पैच और यहां तक कि अन्य फ़ाइलों में एम्बेडेड छोटे कोड स्निपेट्स को दस्तावेज़ करने के लिए किया जाता है। एसपीडीएक्स दस्तावेजों के भीतर और एसबीओएम दस्तावेजों में सॉफ्टवेयर तत्वों को जोड़ने के लिए संबंधों का एक व्यापक सेट प्रदान करता है। एक एसपीडीएक्स एसबीओएम दस्तावेज़ बाहरी स्रोतों जैसे राष्ट्रीय भेद्यता डेटाबेस और अन्य पैकेजिंग सिस्टम मेटाडेटा को भी संदर्भित कर सकता है।
ऐसे कई घटक हैं जो एक एसपीडीएक्स दस्तावेज़ बनाते हैं: निर्माण जानकारी, पैकेज जानकारी, फ़ाइल जानकारी, स्निपेट जानकारी, अन्य लाइसेंसिंग जानकारी, रिश्ते और एनोटेशन।
प्रत्येक एसपीडीएक्स दस्तावेज़ को पूर्ण डेटा मॉडल कार्यान्वयन और पहचानकर्ता सिंटैक्स द्वारा दर्शाया जा सकता है, जो विभिन्न डेटा आउटपुट प्रारूपों (आरडीएफ/एक्सएमएल, टैग-वैल्यू, एक्सएलएसएक्स) के बीच आदान-प्रदान और दस्तावेज़ की सटीकता की औपचारिक मान्यता की अनुमति देता है। एसपीडीएक्स विनिर्देश के संस्करण 2.2 रिलीज में जेएसओएन, वाईएएमएल और एक्सएमएल जैसे अतिरिक्त आउटपुट प्रारूप शामिल हैं, और मूल एसबीओएम दस्तावेज़ में पहचाने गए "ज्ञात अज्ञात" को भी संबोधित करते हैं। एसपीडीएक्स के अंतर्निहित डेटा मॉडल के बारे में अधिक जानकारी एसपीडीएक्स विशिष्टता के परिशिष्ट III और एसपीडीएक्स वेबसाइट पर पाई जा सकती है।
CycloneDX SBOM मानक प्रारूप
CycloneDX परियोजना पूरी तरह से स्वचालित, सुरक्षा-केंद्रित एसबीओएम मानक विकसित करने के उद्देश्य से 2017 में स्थापित की गई थी। कोर वर्किंग ग्रुप जोखिम-आधारित मानक प्रक्रिया का उपयोग करके सालाना अपरिवर्तनीय और पिछड़े-संगत संस्करण जारी करता है। CycloneDX में पैकेज यूआरएल, सीपीई, एसडब्ल्यूआईडी और एसपीडीएक्स लाइसेंस आईडी और अभिव्यक्ति जैसे मौजूदा विनिर्देश शामिल हैं। SBOM को XML, JSON और प्रोटोकॉल बफ़र्स (प्रोटोबफ़) सहित विभिन्न स्वरूपों में दर्शाया जा सकता है।
CycloneDX एक हल्का एसबीओएम विनिर्देश है जिसका उद्देश्य आपूर्ति श्रृंखला घटक विश्लेषण और सॉफ्टवेयर सुरक्षा में उपयोग करना है। यह सॉफ्टवेयर घटकों की सूची, बाहरी सेवाओं और उनके बीच संबंधों के संचार को सक्षम बनाता है। यह OWASP (ओपन वेब एप्लिकेशन सिक्योरिटी प्रोजेक्ट) द्वारा विकसित एक ओपन-सोर्स मानक है।
CycloneDX ओपन-सोर्स घटकों की गतिशील प्रकृति को पकड़ सकता है जिसका स्रोत कोड पहुंच योग्य, परिवर्तनीय और पुनर्वितरण योग्य है। विनिर्देश किसी घटक की वंशावली का प्रतिनिधित्व कर सकता है, जिसमें उसके पूर्वज, वंशज और वेरिएंट शामिल हैं, जो किसी भी परिप्रेक्ष्य से घटक की वंशावली का वर्णन करता है, साथ ही कमिट, पैच और अंतर जो इसे अद्वितीय बनाते हैं।
CycloneDX प्रोजेक्ट ज्ञात ओपन-सोर्स और मालिकाना उपकरणों की एक सूची रखता है जो मानक का समर्थन करते हैं या उसके साथ संगत हैं, जो समुदाय द्वारा समर्थित है।
CycloneDX विनिर्देश एक विस्तृत ऑब्जेक्ट मॉडल तैयार करता है जो सभी कार्यान्वयनों में स्थिरता सुनिश्चित करता है। इसे XML स्कीमा और JSON स्कीमा का उपयोग करके, या CycloneDX कमांड-लाइन इंटरफ़ेस का उपयोग करके मान्य किया जा सकता है। समर्थित प्रारूपों की स्वचालित डिलीवरी और खपत के लिए XML और JSON के लिए मीडिया प्रकार भी प्रदान किए जाते हैं।
CycloneDX SBOM में निम्नलिखित जानकारी हो सकती है: BOM मेटाडेटा, घटक, सेवाएँ, निर्भरताएँ, रचनाएँ और एक्सटेंशन
CycloneDX एक व्यापक एसबीओएम मानक है जो एप्लिकेशन, घटकों, सेवाओं, फर्मवेयर और उपकरणों सहित विभिन्न प्रकार के सॉफ़्टवेयर को चिह्नित कर सकता है। सॉफ्टवेयर पैकेज, लाइब्रेरी, फ्रेमवर्क, एप्लिकेशन और कंटेनर छवियों का वर्णन करने के लिए इसका व्यापक रूप से उद्योगों में उपयोग किया जाता है। यह परियोजना प्रमुख विकास पारिस्थितिकी प्रणालियों के साथ संगत है और GitHub क्रियाओं जैसे सॉफ्टवेयर कारखानों के लिए कार्यान्वयन की पेशकश करती है, जो संगठनों को SBOM निर्माण को पूरी तरह से स्वचालित करने में सक्षम बनाती है।
स्विड टैग
SWID टैग, या सॉफ़्टवेयर पहचान टैग, संगठनों को अपने प्रबंधित उपकरणों पर इंस्टॉल किए गए सॉफ़्टवेयर को पारदर्शी तरीके से ट्रैक करने में सक्षम बनाने के लिए बनाए गए थे। मानक 2012 में ISO द्वारा स्थापित किया गया था और 19770 में ISO/IEC 2-2015:2015 के रूप में संशोधित किया गया था। इन टैग में किसी सॉफ़्टवेयर उत्पाद की विशिष्ट रिलीज़ के बारे में विस्तृत जानकारी होती है।
SWID मानक ट्रैकिंग सॉफ़्टवेयर के लिए एक जीवनचक्र की रूपरेखा तैयार करता है: सॉफ़्टवेयर उत्पाद की स्थापना के दौरान एक SWID टैग को समापन बिंदु पर जोड़ा जाता है, और उत्पाद की अनइंस्टॉल प्रक्रिया द्वारा हटा दिया जाता है। एक विशिष्ट SWID टैग का अस्तित्व सीधे उसके द्वारा वर्णित सॉफ़्टवेयर की उपस्थिति से मेल खाता है। विश्वसनीय कंप्यूटिंग समूह (टीसीजी) और इंटरनेट इंजीनियरिंग टास्क फोर्स (आईईटीएफ) जैसे कई मानकीकरण संगठन, अपने मानकों में एसडब्ल्यूआईडी टैग शामिल करते हैं।
किसी सॉफ़्टवेयर घटक के जीवनचक्र को ट्रैक करने के लिए, SWID विनिर्देश में चार प्रकार के टैग होते हैं: प्राथमिक, पैच, कॉर्पस और पूरक। कॉर्पस, प्राथमिक और पैच टैग समान उद्देश्यों को पूरा करते हैं, जिसमें वे विभिन्न प्रकार के सॉफ़्टवेयर के अस्तित्व और उपस्थिति का वर्णन करते हैं, जैसे सॉफ़्टवेयर इंस्टॉलर, सॉफ़्टवेयर इंस्टॉलेशन और सॉफ़्टवेयर पैच, और सॉफ़्टवेयर उत्पादों की संभावित स्थिति। दूसरी ओर, पूरक टैग अतिरिक्त विवरण प्रदान करते हैं जो कॉर्पस, प्राथमिक या पैच टैग में नहीं मिलते हैं।
अतिरिक्त मेटाडेटा प्रदान करने के लिए पूरक टैग को किसी अन्य टैग से जोड़ा जा सकता है जो उपयोगी हो सकता है। साथ में, SWID टैग विभिन्न प्रकार के कार्य कर सकते हैं, जैसे सॉफ़्टवेयर खोज, कॉन्फ़िगरेशन प्रबंधन और भेद्यता प्रबंधन।
SWID टैग एक SBOM के रूप में कार्य कर सकते हैं, क्योंकि वे एक सॉफ़्टवेयर घटक के लिए पहचान संबंधी जानकारी, घटक की कलाकृतियों के लिए फ़ाइलों और क्रिप्टोग्राफ़िक हैश की एक सूची और SBOM (टैग) निर्माता और सॉफ़्टवेयर घटक निर्माता के बारे में उत्पत्ति की जानकारी प्रदान करते हैं। टैग अन्य टैग से भी लिंक हो सकते हैं, जिससे निर्भरता वृक्ष का प्रतिनिधित्व किया जा सकता है।
SWID टैग निर्माण और पैकेजिंग प्रक्रिया के दौरान उत्पन्न किए जा सकते हैं, जिससे संबंधित सॉफ़्टवेयर घटक पैक होने पर SWID टैग-आधारित SBOM का स्वचालित निर्माण सक्षम हो जाता है।
सामग्री के सॉफ़्टवेयर बिल क्यों महत्वपूर्ण हैं?
सॉफ्टवेयर बिल ऑफ मैटेरियल्स (एसबीओएम) संगठनों के लिए तेजी से महत्वपूर्ण होते जा रहे हैं क्योंकि उनका लक्ष्य अपने द्वारा उपयोग किए जाने वाले सॉफ्टवेयर को प्रबंधित और सुरक्षित करना है। के प्रश्न का कोई संक्षिप्त उत्तर नहीं है एसबीओएम क्या है. एसबीओएम उन सभी घटकों और निर्भरताओं की एक व्यापक सूची प्रदान करते हैं जो एक सॉफ्टवेयर पैकेज बनाते हैं, जिसमें संस्करण संख्या, लेखक और लाइसेंस जानकारी जैसी जानकारी शामिल होती है। यह जानकारी सुरक्षा और अनुपालन के साथ-साथ सॉफ़्टवेयर घटकों की उत्पत्ति पर नज़र रखने के लिए महत्वपूर्ण है।
विनियमित उद्योगों सहित कई संगठन, सामान्य डेटा संरक्षण विनियमन (जीडीपीआर) और भुगतान कार्ड उद्योग डेटा सुरक्षा मानक (पीसीआई डीएसएस) जैसे नियमों का अनुपालन सुनिश्चित करने के लिए एसबीओएम का उपयोग कर रहे हैं। एसबीओएम सॉफ्टवेयर में कमजोरियों की पहचान और प्रबंधन के साथ-साथ सॉफ्टवेयर घटकों की उत्पत्ति पर नज़र रखने में भी सहायता कर सकते हैं। इसके अलावा, एसबीओएम सॉफ्टवेयर लाइसेंस के प्रबंधन में सहायता कर सकते हैं, यह सुनिश्चित करते हुए कि संगठन अपने लाइसेंस की शर्तों के अनुपालन में सॉफ्टवेयर का उपयोग कर रहे हैं।
एसबीओएम का उपयोग ओपन-सोर्स सॉफ्टवेयर के उपयोग को ट्रैक करने के लिए भी किया जा सकता है, जो सॉफ्टवेयर विकास में तेजी से आम होता जा रहा है। सॉफ़्टवेयर पैकेज में उपयोग किए जाने वाले ओपन-सोर्स घटकों के बारे में विस्तृत जानकारी प्रदान करके, एसबीओएम ओपन-सोर्स लाइसेंस के अनुपालन को सुनिश्चित करने में संगठनों की सहायता कर सकते हैं।
इसके अलावा, एसबीओएम का उपयोग सॉफ्टवेयर विकास और रखरखाव में सहायता के लिए किया जा सकता है। सॉफ़्टवेयर पैकेज में उपयोग किए गए घटकों के बारे में विस्तृत जानकारी प्रदान करके, एसबीओएम डेवलपर्स को सॉफ़्टवेयर पैकेज की निर्भरता को समझने में सहायता कर सकते हैं, जो उन्हें संभावित संगतता मुद्दों की पहचान करने और नए घटकों के उपयोग के बारे में सूचित निर्णय लेने में मदद कर सकता है।