Software composition analysis
विभिन्न घटकों का उपयोग करके सॉफ्टवेयर विकसित करना एक सामान्य सॉफ्टवेयर इंजीनियरिंग अभ्यास है। सॉफ्टवेयर घटकों का उपयोग बड़े तत्वों की जटिलता को कोड के छोटे टुकड़ों में विभाजित करता है और नई आवश्यकताओं को पूरा करने के लिए घटकों के आसान पुनः उपयोग को सक्षम करके लचीलापन बढ़ाता है। सॉफ्टवेयर विकास प्रक्रिया को गति देने और बाजार में आने वाले समय को कम करने में मदद करने के लिए ओपन-सोर्स सॉफ्टवेयर (ओएसएस) को लोकप्रिय बनाने के साथ 1990 के दशक के अंत से इस प्रथा का व्यापक रूप से विस्तार हुआ है। हालाँकि, ओपन-सोर्स सॉफ़्टवेयर का उपयोग करने से विकसित किए जा रहे सॉफ़्टवेयर अनुप्रयोगों के लिए कई जोखिम पैदा होते हैं। इन जोखिमों को 5 श्रेणियों में व्यवस्थित किया जा सकता हैः ओएसएस संस्करण नियंत्रणः नए संस्करणों द्वारा शुरू किए गए परिवर्तनों के जोखिम सुरक्षाः घटकों में कमजोरियों के जोखिम-सामान्य कमजोरियां और एक्सपोजर (या सीवीई) लाइसेंसः बौद्धिक संपदा (आईपी) कानूनी आवश्यकताओं के जोखिम विकासः मौजूदा कोडबेस और ओपन-सोर्स सॉफ्टवेयर समर्थन के बीच संगतता के जोखिमः खराब प्रलेखन और अप्रचलित सॉफ्टवेयर घटकों का जोखिम फरवरी 1998 में ओपन सोर्स इनिशिएटिव की नींव के कुछ ही समय बाद, ओएसएस से जुड़े जोखिम उठाए गए और संगठनों ने अपने डेवलपर्स द्वारा उपयोग किए जाने वाले सभी ओपन सोर्स घटकों को ट्रैक करने के लिए स्प्रेडशीट और दस्तावेजों का उपयोग करके इसे प्रबंधित करने की कोशिश की। ओपन-सोर्स घटकों का बड़े पैमाने पर उपयोग करने वाले संगठनों के लिए, ओपन-सोर्स जोखिम के विश्लेषण और प्रबंधन को स्वचालित करने में मदद करने की आवश्यकता थी। इसके परिणामस्वरूप सॉफ्टवेयर कम्पोजिशन एनालिसिस (एस. सी. ए.) नामक सॉफ्टवेयर उत्पादों की एक नई श्रेणी बनी जो संगठनों को ओपन सोर्स जोखिम का प्रबंधन करने में मदद करती है। एस. सी. ए. सुरक्षा कमजोरियों, आई. पी. लाइसेंस आवश्यकताओं और उपयोग किए जा रहे घटकों के अप्रचलन से जुड़े जोखिमों को कम करने में मदद करने के लिए एक सॉफ्टवेयर अनुप्रयोग के भीतर उपयोग किए जाने वाले सभी तीसरे पक्ष के घटकों का पता लगाने का प्रयास करता है। अवलोकन सॉफ्टवेयर रचना विश्लेषण (एस. सी. ए.) सूचना प्रौद्योगिकी और सॉफ्टवेयर इंजीनियरिंग के क्षेत्रों में अंतर्निहित ओपन-सोर्स सॉफ्टवेयर का पता लगाने के लिए कस्टम-निर्मित सॉफ्टवेयर अनुप्रयोगों का विश्लेषण करने के लिए एक अभ्यास है और यह पता लगाने के लिए कि क्या वे अद्यतित हैं, सुरक्षा खामियां हैं, या लाइसेंस की आवश्यकताएं हैं। एस. सी. ए. उत्पाद आम तौर पर निम्नानुसार काम करते हैंः एक इंजन सॉफ्टवेयर स्रोत कोड और एक सॉफ्टवेयर अनुप्रयोग को संकलित करने के लिए उपयोग की जाने वाली संबंधित कलाकृतियों को स्कैन करता है। इंजन ओ. एस. एस. घटकों और उनके संस्करणों की पहचान करता है और आमतौर पर इस जानकारी को स्कैन किए गए अनुप्रयोग में उपयोग में ओ. एस. एस. की सूची बनाने वाले डेटाबेस में संग्रहीत करता है। इसके बाद इस सूची की तुलना प्रत्येक घटक के लिए ज्ञात सुरक्षा कमजोरियों, घटक का उपयोग करने के लिए लाइसेंस की आवश्यकताओं और घटक के ऐतिहासिक संस्करणों को संदर्भित करने वाले डेटाबेस से की जाती है। सुरक्षा भेद्यता का पता लगाने के लिए, यह तुलना आमतौर पर ज्ञात सुरक्षा भेद्यताओं (सी. वी. ई.) के खिलाफ की जाती है जिन्हें राष्ट्रीय भेद्यता डेटाबेस (एन. वी. डी.) में ट्रैक किया जाता है। कुछ उत्पाद कमजोरियों के एक अतिरिक्त स्वामित्व डेटाबेस का उपयोग करते हैं। आई. पी./कानूनी अनुपालन के लिए, एस. सी. ए. उत्पाद ओ. एस. एस. घटक के लिए उपयोग किए जाने वाले लाइसेंस के प्रकार का निष्कर्षण और मूल्यांकन करेंगे। घटकों के संस्करणों को लोकप्रिय मुक्त स्रोत भंडारों जैसे कि गिटहब, मावेन, पाईपी, न्यूगेट और कई अन्य से निकाला जाता है। इसके बाद परिणाम विभिन्न डिजिटल प्रारूपों का उपयोग करके अंतिम उपयोगकर्ताओं के लिए उपलब्ध कराए जाते हैं। सामग्री और प्रारूप एस. सी. ए. उत्पाद पर निर्भर करता है और इसमें जोखिम का मूल्यांकन और व्याख्या करने के लिए मार्गदर्शन और सिफारिशें शामिल हो सकती हैं, विशेष रूप से जब यह मजबूत या कमजोर कॉपीलेफ्ट लाइसेंस जैसे मुक्त स्रोत घटकों की कानूनी आवश्यकताओं से संबंधित हो। आउटपुट में एक सॉफ्टवेयर बिल ऑफ मैटेरियल्स (एस. बी. ओ. एम.) भी हो सकता है जो एक सॉफ्टवेयर अनुप्रयोग में उपयोग किए जाने वाले सभी मुक्त स्रोत घटकों और संबंधित विशेषताओं का विवरण देता है क्योंकि एस. सी. ए. संगठनों में विभिन्न कार्यों को प्रभावित करता है, विभिन्न दल संगठन के निगम के आकार और संरचना के आधार पर डेटा का उपयोग कर सकते हैं। आई. टी. विभाग अक्सर मुख्य सूचना अधिकारी (सी. आई. ओ.), मुख्य प्रौद्योगिकी अधिकारी (सी. टी. ओ.) और मुख्य उद्यम वास्तुकार (ई. ए.) सहित सामान्य हितधारकों के साथ प्रौद्योगिकी को लागू करने और संचालित करने के लिए एस. सी. ए. का उपयोग करेगा। सुरक्षा और लाइसेंस डेटा का उपयोग अक्सर सुरक्षा जोखिमों के लिए मुख्य सूचना सुरक्षा अधिकारी (सी. आई. एस. ओ.) और बौद्धिक संपदा जोखिम प्रबंधन के लिए मुख्य आई. पी./अनुपालन अधिकारी जैसी भूमिकाओं द्वारा किया जाता है। एस. सी. ए. उत्पाद क्षमताओं के आधार पर, इसे सीधे एक डेवलपर के एकीकृत विकास वातावरण (आई. डी. ई.) के भीतर लागू किया जा सकता है जो ओ. एस. एस. घटकों का उपयोग और एकीकरण करता है, या इसे सॉफ्टवेयर गुणवत्ता नियंत्रण प्रक्रिया में एक समर्पित चरण के रूप में लागू किया जा सकता है। एस. सी. ए. उत्पाद, और विशेष रूप से एस. बी. ओ. एम. उत्पन्न करने की उनकी क्षमता संयुक्त राज्य अमेरिका जैसे कुछ देशों में एक विक्रेता द्वारा उनकी किसी एक एजेंसी को दिए गए सॉफ्टवेयर की सुरक्षा को लागू करने के लिए आवश्यक है। एस. सी. ए. के लिए एक अन्य सामान्य उपयोग का मामला प्रौद्योगिकी के कारण परिश्रम के लिए है। विलय और अधिग्रहण (एम एंड ए) लेनदेन से पहले, सलाहकार फर्म लक्षित फर्म के सॉफ्टवेयर से जुड़े जोखिमों की समीक्षा करती हैं। एस. सी. ए. की ताकत एस. सी. ए. उत्पादों की स्वचालित प्रकृति उनकी प्राथमिक ताकत है। ओ. एस. एस. घटकों का उपयोग और एकीकरण करते समय डेवलपर्स को मैन्युअल रूप से अतिरिक्त काम नहीं करना पड़ता है। स्वचालन कोड और कलाकृतियों एस. सी. ए. कमजोरियों के भीतर अन्य ओ. एस. एस. घटकों के अप्रत्यक्ष संदर्भों पर भी लागू होता है इसके विपरीत, वर्तमान एस. सी. ए. उत्पादों की कुछ प्रमुख कमजोरियों में शामिल हो सकते हैंः जटिल और श्रम-गहन परिनियोजन जिसमें पूरी तरह से काम करने में महीनों लग सकते हैं प्रत्येक उत्पाद ओ. एस. एस. घटकों के अपने स्वामित्व वाले डेटाबेस का उपयोग करता है जो आकार और कवरेज के मामले में नाटकीय रूप से भिन्न हो सकता है।