एसबीओएम निर्माण को स्वचालित कैसे करें

सामग्री का सॉफ़्टवेयर बिल अब संगठनों के लिए केवल "अच्छे होने योग्य" दस्तावेज़ नहीं रह गया है। यह अब कई कारणों से "अनिवार्य" है। इस तथ्य के अलावा कि संघीय नियमों ने आपके सॉफ़्टवेयर के घटकों का खुलासा करना अनिवार्य बना दिया है, सॉफ़्टवेयर कंपनियों ने अब महसूस किया है कि आपके एप्लिकेशन में उपयोग किए जाने वाले सभी ओपन-सोर्स और वाणिज्यिक निर्भरता को सूचीबद्ध करना एक लाभदायक साइबर सुरक्षा अभ्यास है।

दिलचस्प बात यह है कि एसबीओएम की आवश्यकता को पहचानने के बावजूद, इसे बनाना अभी भी काफी चुनौतीपूर्ण हो सकता है। ऐसा इसलिए है क्योंकि किसी उत्पाद के लिए सामग्री का सॉफ़्टवेयर बिल बनाने की प्रक्रिया जटिल, थकाऊ और समय लेने वाली हो सकती है। इसके अलावा, चूंकि नियामक अधिकारी आपके उत्पाद के प्रत्येक पुनरावृत्ति के लिए एक सटीक और सटीक एसबीओएम उत्पन्न करने की सलाह देते हैं, इसलिए इसे हर बार मैन्युअल रूप से लागू करना पूरी तरह से अव्यवहारिक नहीं तो काफी संसाधन-गहन है। 

जब व्यापक एसबीओएम को लागू करने की बात आती है, तो स्वचालन मार्ग अपनाने की हमेशा सिफारिश की जाती है। प्रत्येक सॉफ़्टवेयर कई निर्भरताओं से बना एक जटिल पैकेज है, जिसकी संभवतः अपनी निर्भरताएँ भी होती हैं। इसका मतलब यह है कि सबसे सरल सॉफ़्टवेयर में भी सैकड़ों या हजारों निर्भरताएँ हो सकती हैं। इन सभी को संकलित करने और उन्हें मैन्युअल रूप से व्यवस्थित रखने में बहुत काम लगेगा। यह आलेख बताता है कि एसबीओएम को लागू करने के लिए स्वचालन क्यों आवश्यक है और एसबीओएम को मैन्युअल रूप से उत्पन्न करने के साथ आने वाले तनाव को कम करने के लिए स्वचालन को कैसे लागू किया जाए। 

एसबीओएम प्रक्रिया को स्वचालित करना क्यों महत्वपूर्ण है?

सामग्री का सॉफ़्टवेयर बिल बस एक सॉफ़्टवेयर उत्पाद के घटकों की एक सूची है (किसी खाद्य उत्पाद पर सामग्री की सूची के समान)। सामान्यतया, सामग्री का सॉफ़्टवेयर बिल बनाने के लिए आपको बस एक स्प्रेडशीट की आवश्यकता होती है जो इन घटकों को सूचीबद्ध करती है। हालाँकि, यह एक अतिसरलीकरण है जो शायद ही कभी व्यावहारिक होता है। एसबीओएम आवश्यक जानकारी के सटीक सेट के साथ एक विस्तृत सूची है। इस सूची को मैन्युअल रूप से संसाधित करने का प्रयास स्पष्ट रूप से समय लेने वाला और जटिल होगा।

मैन्युअल एसबीओएम इसमें कटौती नहीं कर सकते, यही कारण है कि एसबीओएम को लागू करने और शामिल करने में स्वचालन महत्वपूर्ण है। मैन्युअल एसबीओएम को लागू करने की कठिनाई के अलावा, एसबीओएम को मैन्युअल रूप से बनाने में जोखिम भी शामिल हैं - अनुपालन मुद्दों का उल्लेख नहीं करना। निम्नलिखित कुछ कारण हैं कि क्यों एसबीओएम एक स्वचालित प्रणाली के साथ सबसे अच्छा बनाया जाता है जो सॉफ्टवेयर की एक व्यापक सूची एकत्र और संकलित करता है और उन्हें एक ऐसे भंडार में संग्रहीत करता है जो मानव-पठनीय और क्वेरी करने में आसान है।

साइबर आपूर्ति शृंखला के खतरे

व्यापक एसबीओएम तैयार करने का मुख्य लक्ष्य सॉफ्टवेयर घटकों को बेहतर ढंग से समझना और संभावित कमजोरियों का विश्लेषण करना है। यह प्रत्येक सॉफ़्टवेयर उत्पाद के लिए खतरों को कम करने के लिए एक महत्वपूर्ण साइबर सुरक्षा उपाय बन गया है। एक स्वचालित एसबीओएम इसे करने की प्रक्रिया को और अधिक सहज बनाता है। सामग्री का स्वचालित सॉफ़्टवेयर बिल न केवल अधिक सुरक्षित है (क्रिप्टोग्राफ़िक हस्ताक्षर और स्वचालित घटक सत्यापन के लिए धन्यवाद), बल्कि स्वचालन यह भी सुनिश्चित करता है कि सॉफ़्टवेयर पुनरावृत्ति के एकीकरण और परिनियोजन पाइपलाइन में घटकों को लगातार स्कैन किया जाता है।

समय बचाने वाला

एसबीओएम कार्यान्वयन को स्वचालित करने का मतलब है कि आप उन्नत उपकरणों पर भरोसा करते हैं जो आपके सॉफ़्टवेयर सामग्री बिल को उत्पन्न करने के लिए मशीन की गति से काम करते हैं। इससे कई तरीकों से आपका समय बचता है। सबसे पहले, इस तरह से एसबीओएम तैयार करना व्यक्तिगत घटकों को मैन्युअल रूप से पहचानने और उन्हें स्प्रेडशीट में शामिल करने की तुलना में तेज़ है।

एसबीओएम को स्वचालित करने से कमजोरियों का पता लगाना भी आसान और तेज हो जाता है। मैन्युअल रूप से संकलित एसबीओएम के साथ, कमजोरियों के संभावित स्थानों की पहचान करना एक दर्दनाक लंबी प्रक्रिया है।

एसबीओएम के साथ अपडेट भी तेज़ होते हैं। नई अद्यतन निर्भरताओं के आधार पर कमजोरियों की पहचान करने के लिए स्वचालित सिस्टम आपके एसबीओएम पर लगातार जांच चलाते हैं। इस तरह, आप जोखिमों को तेजी से कम कर सकते हैं और एसबीओएम बनाने या उन्हें मैन्युअल रूप से क्वेरी करने में समय बर्बाद करने के बजाय अन्य महत्वपूर्ण कार्यों पर अपना समय और संसाधन निवेश कर सकते हैं।

एनआईएसटी और संघीय आवश्यकताएँ

लाभकारी होने के अलावा, एसबीओएम को स्वचालित करने का नियामक महत्व भी है। एसबीओएम पर संघीय आवश्यकताएं, जैसे कि साइबर आपूर्ति श्रृंखला प्रबंधन और 2014 की पारदर्शिता अधिनियम, यह निर्धारित करती हैं कि एसबीओएम उत्पन्न करने के लिए स्वचालित समाधान और उपकरणों का उपयोग किया जाना चाहिए।

इसी तरह, जुलाई 2021 में, राष्ट्रीय दूरसंचार और सूचना प्रशासन (एनटीआईए) ने संघीय रूप से अनुमोदित दिशानिर्देश प्रकाशित किए जो प्रत्येक एसबीओएम के लिए शामिल किए जाने वाले न्यूनतम तत्वों का विवरण देते हैं। इस दस्तावेज़ में स्वचालन समर्थन सूचीबद्ध किया गया था प्रत्येक एसबीओएम के महत्वपूर्ण तत्वों में से एक के रूप में।

एनटीआईए के अनुसार, सामग्री का सॉफ्टवेयर बिल मानव और मशीन-पठनीय और स्वचालित उत्पादन में सक्षम होना चाहिए। स्वचालित एसबीओएम को लागू करने से दस्तावेज़ में शामिल डेटा को ट्रैक करना आसान हो जाता है। 

स्प्रेडशीट अकुशल और त्रुटि-प्रवण हैं

जैसा कि पहले उल्लेख किया गया है, प्रत्येक सॉफ़्टवेयर पैकेज में सैकड़ों निर्भरताएँ होती हैं। इसका मतलब यह है कि एक सामान्य सॉफ्टवेयर सामग्री बिल में कवर करने के लिए हजारों डेटा बिंदु होते हैं। स्प्रैडशीट्स डेटा की इस मात्रा को प्रबंधित करने के लिए पूरी तरह से सुसज्जित नहीं हैं। इन सभी डेटा बिंदुओं को मैन्युअल रूप से दर्ज करने से मानवीय त्रुटियों का द्वार खुल जाता है जिनके गंभीर परिणाम हो सकते हैं यदि उन्हें समय पर नहीं पकड़ा गया। जब आप इसके बजाय एक स्वचालित प्रणाली अपनाते हैं तो आपको एक सटीक और व्यापक एसबीओएम उत्पन्न होने की अधिक संभावना होती है।

कंसिस्टेंसी (Consistency)

एसबीओएम पीढ़ी प्रक्रिया को स्वचालित करने का एक बड़ा लाभ यह है कि यह एक सॉफ्टवेयर उत्पाद के विभिन्न पुनरावृत्तियों की सीआई/सीडी पाइपलाइन में स्थिरता बनाए रखने में मदद करता है। इसमें किसी उत्पाद के निर्माण के दौरान और उसके रिलीज़ होने के बाद भी किए गए सभी परिवर्तन शामिल हैं।

एक SBOM स्थिर नहीं है. जैसे-जैसे कोई उत्पाद विकसित होता है, प्रत्येक नई निर्भरता को शामिल करने के लिए उसके सॉफ़्टवेयर सामग्री बिल में संशोधन किए जाते हैं। इन परिवर्तनों को सॉफ़्टवेयर की आंतरिक और आपूर्ति श्रृंखला दोनों में सभी उपयोगकर्ताओं और अन्य हितधारकों को सूचित किया जाना चाहिए। यह महत्वपूर्ण है कि प्रत्येक हितधारक के पास एसबीओएम के नवीनतम संस्करण के साथ-साथ सॉफ्टवेयर के सभी पिछले संस्करणों तक पहुंच हो।

मैन्युअल रूप से तैयार एसबीओएम के साथ, स्थिरता और संस्करण नियंत्रण बनाए रखना मुश्किल है, और इससे झड़पें और अन्य समस्याएं हो सकती हैं। एक स्वचालित एसबीओएम यह सुनिश्चित करता है कि किए गए परिवर्तन सुसंगत हैं, और यह देखना आसान है कि ये परिवर्तन कब और कैसे किए गए थे। मैन्युअल प्रणाली से इसे हासिल करना कठिन है।

सामग्री के सॉफ़्टवेयर बिलों को स्वचालित करने के तरीके

एसबीओएम के लिए एनटीआईए की न्यूनतम आवश्यकताएं जैसे नियामक मानक सामग्री के सॉफ्टवेयर बिल के लिए विशिष्ट प्रारूप निर्धारित करते हैं। इन मानकों में सॉफ्टवेयर पैकेज डेटा एक्सचेंज (एसपीडीएक्स) और साइक्लोनडीएक्स शामिल हैं। सॉफ़्टवेयर सुरक्षा टीमों को पता होना चाहिए कि इन मानकों की प्रकृति पहले से ही बताती है कि एसबीओएम स्वचालित होने के लिए हैं।

इस प्रकार, प्रत्येक सॉफ्टवेयर सुरक्षा टीम को एसबीओएम उत्पन्न करने के लिए अपने विकास पाइपलाइन के भीतर एक रणनीतिक बिंदु पर निष्पादित होने वाले एक स्वचालित चरण को जोड़कर एसबीओएम की पीढ़ी और उपयोग सुनिश्चित करना चाहिए। यह निर्माण पूरा होने के बाद सॉफ्टवेयर घटकों की जांच के लिए एक ओपन-सोर्स टूल हो सकता है या एक एससीए टूल हो सकता है जो सॉफ्टवेयर की निरंतर विकास पाइपलाइन के भीतर एकीकृत है। सामग्री के सॉफ़्टवेयर बिल को स्वचालित करने की विभिन्न विधियों पर नीचे प्रकाश डाला गया है।

ओपन-सोर्स टूल का उपयोग करें

सामग्री का सॉफ़्टवेयर बिल बनाने के सबसे सस्ते तरीकों में से एक ओपन-सोर्स टूल का उपयोग करना है। वे व्यावहारिक रूप से मुफ़्त हैं, लेकिन वे केवल प्रारंभिक सुविधाएँ ही प्रदान करते हैं। ऐसे कई ओपन-सोर्स उपकरण हैं जो एसबीओएम कार्यान्वयन प्रक्रिया को स्वचालित करते हैं। हालाँकि, इनमें से अधिकांश उपकरणों द्वारा तैयार की गई रिपोर्टें केवल दो प्रारूपों में तैयार की जाती हैं; साइक्लोनडीएक्स और एसपीडीएक्स।

ओपन-सोर्स एसबीओएम ऑटोमेशन टूल का एक अच्छा उदाहरण है माइक्रोसॉफ्ट का एसबीओएम जनरेटर. यह सामान्य प्रयोजन बिल्ड-टाइम जनरेटर उद्यमों को उनके सॉफ़्टवेयर पैकेजों के लिए एसबीओएम उत्पन्न करने में मदद करने के लिए बनाया गया है। उपकरण क्रॉस-प्लेटफ़ॉर्म समर्थन प्रदान करता है और मानक सॉफ़्टवेयर पैकेज डेटा एक्सचेंज (एसपीडीएक्स) प्रारूप में एसबीओएम उत्पन्न करता है।

निर्भरता और घटकों की सूची तैयार करने के लिए Microsoft के SBOM जनरेटर को NPM, PyPI, Maven, रस्ट क्रेट्स, रूबी जेम्स, लिनक्स और NuGet फ्रेमवर्क के साथ निर्मित सॉफ्टवेयर पैकेज में एकीकृत किया जा सकता है। इसे GitHub सार्वजनिक रिपॉजिटरी के साथ भी एकीकृत किया जा सकता है।

उपकरण एसबीओएम दस्तावेज़ीकरण के बारे में सामान्य जानकारी आउटपुट करता है जैसा कि एसबीओएम न्यूनतम आवश्यकताओं में निर्दिष्ट है। यह सभी फ़ाइलों और पैकेजों के साथ-साथ उनके बीच संबंधों को भी सूचीबद्ध करता है।

एक प्लगइन टूल का उपयोग करें

स्वतः-जनरेटिंग एसबीओएम के लिए एक अन्य दृष्टिकोण आपके निरंतर एकीकरण और निरंतर तैनाती पाइपलाइन (डेवऑप्स पाइपलाइन) के भीतर ऐसा करना है। आप इसे मेवेन प्लगइन का उपयोग करके कर सकते हैं जो आपके वर्कफ़्लो के निर्माण चरण के भीतर एकीकृत होता है। यह दृष्टिकोण पाइपलाइन के भीतर सामग्री के सॉफ़्टवेयर बिल उत्पन्न करने की प्रक्रिया को स्वचालित करने का एक स्केलेबल और सुविधाजनक तरीका है।

आपको यह बहुत आसान लगेगा क्योंकि आप ऐसा अपने प्रोजेक्ट के निर्मित वातावरण में कर रहे हैं। एसबीओएम को स्वतः उत्पन्न करने के लिए आपको बस कुछ तर्क पारित करने होंगे। मावेन प्लगइन के लिए, एसबीओएम साइक्लोन डीएक्स प्रारूप में उत्पन्न होता है।

मेवेन प्लगइन एक व्यापक एसबीओएम उत्पन्न कर सकता है जो आपके प्रोजेक्ट के भीतर सभी निर्भरताओं का विवरण देता है। ऐसा करने के लिए, आपको एसबीओएम फ़ाइलें उत्पन्न करने के लिए "एमवीएन सत्यापित" कमांड चलाने से पहले pom.xml फ़ाइल को कॉन्फ़िगर करके प्रारंभ करना चाहिए। एसबीओएम फ़ाइल से पहले एक bom.json फ़ाइल बनाई जाती है।

मावेन प्लगइन एक इनबिल्ट एससीए टूल के साथ आता है जो निर्भरता के लिए उत्पन्न एसबीओएम फाइलों का ऑडिट करता है। एक बार फ़ाइल का ऑडिट हो जाने के बाद, आप सामग्री के सॉफ़्टवेयर बिल को फिर से जनरेट करने के लिए SCA टूल को दूसरी बार चला सकते हैं।

ऐसे प्लगइन टूल का एक उदाहरण है मुंशी मंच, जो सॉफ्टवेयर निर्माताओं को स्वचालित रूप से एसबीओएम उत्पन्न करने में सक्षम बनाता है। यह एसबीओएम पीढ़ी से आगे जाता है और उपयोगकर्ताओं को अपने एसबीओएम को प्रबंधित करने और साझा करने, अखंडता को मान्य करने और उनके कंटेनरों, निर्भरताओं और पाइपलाइनों की कमजोरियों को ट्रैक करने में मदद करता है। एसबीओएम निर्माण को स्वचालित करने के लिए स्क्राइब कैसे काम करता है इसका एक सरल अवलोकन यहां दिया गया है:

  • चरण १: स्क्राइब हब पर रजिस्टर करें और लॉग इन करें (मुफ़्त में)।. उपयोगकर्ता इस वेब इंटरफ़ेस का उपयोग करके अपनी परियोजनाओं को पंजीकृत और सेटअप करते हैं। एक अलग साक्ष्य संग्राहक, जो एमएसी और लिनक्स उपकरणों पर चलता है, एसबीओएम स्वयं उत्पन्न करता है।
  • चरण 2: स्क्राइब को अपनी सतत एकीकरण पाइपलाइन के साथ एकीकृत करें। स्क्राइब हब से आपके निरंतर एकीकरण पाइपलाइन और/या आपकी अंतिम बिल्ड छवि में कोड स्निपेट जोड़ने से यह पूरा हो जाएगा।
  • चरण 3: सामग्री का सॉफ़्टवेयर बिल तैयार करें और निर्यात करें। Scribe gensbom CLI टूल का उपयोग करके सामग्रियों का एक सॉफ़्टवेयर बिल तैयार किया जाता है। उत्पन्न SBOM को CycloneDX JSON प्रारूप में निर्यात किया जा सकता है।

एक रचना विश्लेषण (एससीए) उपकरण का उपयोग करें

आपके सॉफ़्टवेयर उत्पाद के लिए स्वचालित रूप से एसबीओएम उत्पन्न करने का तीसरा तरीका तृतीय-पक्ष सॉफ़्टवेयर संरचना विश्लेषण उपकरण का उपयोग करना है। एक SCA टूल सॉफ़्टवेयर के भीतर तृतीय-पक्ष घटकों और लाइसेंसों की पहचान करने के लिए आपके उत्पाद का विश्लेषण करता है। टूल कोड की वैधता के साथ-साथ लाइसेंस आवश्यकताओं के अनुपालन का आकलन करता है।

एससीए सॉफ्टवेयर के एक टुकड़े की संरचना निर्धारित करने और सॉफ्टवेयर में शामिल सभी ओपन-सोर्स घटकों को सूचीबद्ध करने के लिए स्रोत कोड, बाइनरी फ़ाइलों, कंटेनर छवियों और मैनिफ़ेस्ट फ़ाइलों के माध्यम से स्कैन करते हैं। एसबीओएम के हिस्से के रूप में, एक एससीए इन घटकों को उनकी सुरक्षा जानकारी, लाइसेंस और ज्ञात कमजोरियों को निकालने के लिए विभिन्न डेटाबेस के खिलाफ भी चलाएगा।

एक सॉफ़्टवेयर संरचना विश्लेषण उपकरण एसबीओएम बनाने की प्रक्रिया को स्वचालित और तेज़ करता है। यह टूल आपके उत्पाद के लिए सामग्री के सॉफ़्टवेयर बिल को संकलित करने के लिए कम समय के भीतर हजारों डेटा बिंदुओं को स्कैन करने के लिए डिज़ाइन किया गया है। SCA उपकरण सॉफ़्टवेयर पैकेज के घटकों और इन घटकों की उत्पत्ति पर पूर्ण निगरानी प्रदान करके आपकी DevOps पाइपलाइन को सुरक्षित करने में आपकी सहायता करते हैं। 

निष्कर्ष

हालाँकि कुछ कंपनियाँ केवल एसबीओएम उत्पन्न करती हैं क्योंकि इसे नियामक आवश्यकताओं द्वारा अनिवार्य बना दिया गया है, जहां तक ​​सॉफ्टवेयर आपूर्ति श्रृंखला के खतरों को कम करने का सवाल है, यह अभ्यास एक आवश्यकता के रूप में साबित हुआ है। प्रक्रिया को स्वचालित करना और भी महत्वपूर्ण है क्योंकि यह एसबीओएम को मैन्युअल रूप से संकलित करने के कठिन, समय लेने वाले काम को कम करने में मदद करता है। एसबीओएम स्वचालन, जैसा कि इस लेख में शामिल प्रत्येक तकनीक में बताया गया है, एसबीओएम निर्माण प्रक्रिया को तेज कर सकता है और इसे अधिक सटीक और विश्वसनीय भी बना सकता है। स्क्राइब जैसा प्लगइन टूल आपके सॉफ़्टवेयर की विकास पाइपलाइन के भीतर एसबीओएम निर्माण को स्वचालित करना संभव बनाता है। यह देखने के लिए हमारे ब्लॉग और अन्य संसाधनों को देखें कि स्क्राइब एसबीओएम पीढ़ी को स्वचालित करने के लिए कैसे काम करता है और आप इसका लाभ कैसे उठा सकते हैं।