सफ्टवेयर विकास सफ्टवेयर आपूर्ति श्रृंखला जीवनचक्रमा अगाडि बढ्दै जाँदा, प्याकेज चरण एक महत्त्वपूर्ण मोडको रूपमा देखा पर्दछ, जसले स्रोत कोडलाई वितरणको लागि तयार पारिएको कार्यान्वयनयोग्य कलाकृतिहरूमा रूपान्तरण गर्दछ। यद्यपि, यो महत्वपूर्ण चरण कमजोरीहरूबाट मुक्त छैन, जसले गर्दा सफ्टवेयर अखण्डता र सुरक्षालाई कमजोर पार्न खोज्ने दुर्भावनापूर्ण अभिनेताहरूको लागि यो प्रमुख लक्ष्य हो। यो ब्लग पोस्टले यस चरणमा उत्पन्न हुन सक्ने प्रचलित खतराहरूमा गहिरो अध्ययन गर्दछ र तिनीहरूलाई कम गर्न प्रभावकारी रणनीतिहरूको रूपरेखा प्रस्तुत गर्दछ। यो सामग्रीले हाम्रो ब्लग श्रृंखलाको निरन्तरताको रूपमा काम गर्दछ जुन अन्वेषण गर्दछ software supply chain security मा SDLC.
सफ्टवेयर विकास जीवन चक्रमा प्याकेज चरण
सफ्टवेयर आपूर्ति श्रृंखला जीवनचक्रको प्याकेज चरणले प्रयोगकर्ताहरूलाई वितरणको लागि प्याकेजिङ र सफ्टवेयर तयार गर्ने प्रक्रियालाई समेट्छ। यस चरणमा स्थापना प्याकेजहरू सिर्जना गर्ने, निर्भरताहरू व्यवस्थापन गर्ने, र सफ्टवेयरको लागि मेटाडेटा उत्पन्न गर्ने समावेश छ।
निर्माण अखण्डता खतराहरू ती कमजोरीहरू हुन् जसले आक्रमणकारीहरूलाई प्याकेजिङ प्रक्रियाको क्रममा सफ्टवेयरमा अनधिकृत परिवर्तनहरू परिचय गराउन अनुमति दिन सक्छ। यी खतराहरू विभिन्न विधिहरू मार्फत प्रस्तुत गर्न सकिन्छ, जस्तै प्याकेज रजिस्ट्रीमा सम्झौता गर्ने, प्याकेजिङ उपकरणहरूमा कमजोरीहरूको शोषण गर्ने, वा तेस्रो-पक्ष निर्भरताहरूलाई हेरफेर गर्ने।
आधुनिक सफ्टवेयरमा खुला-स्रोत कम्पोनेन्टहरूमा पूर्ण निर्भरताले यस चरणलाई सबैभन्दा बारम्बार S बनायो।SCA लक्ष्य। लोकप्रिय खुला-स्रोत कम्पोनेन्टमा स्टिल्थ मालवेयर परिचय गर्नु धेरै साइबर अपराधीहरूको लागि सपना हो। यही कारणले गर्दा धेरै भन्दा धेरै २०२३ मा २,४५,००० दुर्भावनापूर्ण प्याकेजहरू फेला परे।.
को उदाहरण Software Supply Chain Security प्याकेज चरणमा खतराहरू

सम्झौता गरिएको प्याकेज प्रयोग गर्नुहोस्
यसले विरोधीद्वारा छेडछाड वा परिमार्जन गरिएको सफ्टवेयर प्याकेज तैनाथ गर्ने वा प्रयोग गर्ने कार्यलाई जनाउँछ।
यो प्याकेजले आधिकारिक प्याकेज रजिस्ट्री छोडेपछि हुन सक्छ, या त प्रयोगकर्ताको प्रणालीमा प्रत्यक्ष पहुँच मार्फत वा प्रयोगकर्तालाई दुर्भावनापूर्ण प्याकेज डाउनलोड गर्न वा स्थापना गर्न छल गर्ने सामाजिक इन्जिनियरिङ रणनीतिहरू मार्फत। यस भेक्टरको उदाहरण थियो ब्राउजरिफाई गर्नुहोस् टाइपोस्क्वाटिङ आक्रमण।
Linux र Mac प्रणालीहरूमा सम्झौता गर्न खोजिरहेको एक आक्रमणकारीले Browserify भनिने लोकप्रिय Node.js पुस्तकालयको विकास प्रक्रियामा घुसपैठ गर्यो। आक्रमणकारीले NPM प्याकेज रजिस्ट्री मार्फत वितरण गर्ने उद्देश्यले परियोजनाको स्रोत कोडमा मालिसियस कोड घुसायो। एक पटक दूषित Browserify प्याकेज NPM मा अपलोड भएपछि, शंका नगर्ने विकासकर्ताहरूले यसलाई वैध संस्करण हो भन्ने विश्वास गर्दै डाउनलोड र स्थापना गर्नेछन्। प्याकेज भित्र एम्बेड गरिएको मालिसियस कोड चुपचाप चल्नेछ, जसले गर्दा यसले संक्रमित प्रणालीहरूको अखण्डतामा सम्झौता गर्नेछ। यसले डेटा चोरी, प्रणाली अस्थिरता, वा आक्रमणकारीको लागि टाढाको पहुँच पनि निम्त्याउन सक्छ।
सम्झौता प्याकेज रजिस्ट्री
सम्झौता गरिएको प्याकेज रजिस्ट्री भनेको सफ्टवेयर भण्डार हो जुन रजिस्ट्रीको प्रशासनिक इन्टरफेस वा पूर्वाधारमा अनधिकृत पहुँच प्राप्त गर्ने विरोधीद्वारा घुसपैठ गरिएको हुन्छ।
यसले शत्रुलाई वैध सफ्टवेयर प्याकेजहरूलाई दुर्भावनापूर्णसँग परिमार्जन गर्न वा प्रतिस्थापन गर्न अनुमति दिन्छ, जुन त्यसपछि शंकास्पद रूपमा स्थापित प्रयोगकर्ताहरूलाई वितरण गर्न सकिन्छ। यस प्रकारको खतराको उदाहरण थियो प्याकेज ऐनामा आक्रमण: खुला स्रोत सफ्टवेयरको प्रवर्द्धन गर्ने उद्देश्यले एक अनुसन्धानकर्ताले माभेन सेन्ट्रल, एनपीएम र रुबीजेम्स लगायत धेरै लोकप्रिय प्याकेज रजिस्ट्रीहरूलाई ह्याक गरे। यी रजिस्ट्रीहरूमा पहुँच प्राप्त गरेर, अनुसन्धानकर्ताले मूल भण्डारहरूको मिरर र प्रतिकृतिहरू सिर्जना गर्न सक्षम भए, जसले विकासकर्ताहरूलाई प्याकेजहरू डाउनलोड गर्न सुविधाजनक विकल्प प्रदान गर्यो।
यद्यपि, यी ऐनाहरूले एउटा भयानक उद्देश्य राखेका थिए। सम्झौता गरिएका ऐनाहरूले अनुसन्धानकर्तालाई दुर्भावनापूर्ण प्याकेजहरू वितरण गर्न माध्यमको रूपमा काम गरे। यी प्याकेजहरूले वैध प्याकेजहरूलाई प्रतिस्थापन गरे, प्राथमिक रजिस्ट्रीहरूले पत्ता लगाएनन्, र शंका नगर्ने विकासकर्ताहरूले अनजानमा तिनीहरूलाई डाउनलोड र स्थापना गरे। एक पटक स्थापना भएपछि, यी दुर्भावनापूर्ण प्याकेजहरूले आफ्नो पेलोड छोडे, मनमानी कोड कार्यान्वयन गरे, संवेदनशील डेटा चोरे, वा सञ्चालनमा बाधा पुर्याए।
परिमार्जित प्याकेज अपलोड गर्नुहोस्
एक प्रतिद्वन्द्वीले भण्डार वा वितरण च्यानलमा परिमार्जित प्याकेज अपलोड गर्दछ जसमा दुर्भावनापूर्ण कोड वा पेलोडहरू हुन्छन्। यो प्याकेजको स्रोत कोड, प्याकेजिङ, वा मेटाडेटा परिमार्जन गरेर गर्न सकिन्छ।
यस प्रकारको सबैभन्दा कुख्यात धम्की मध्ये एक थियो २०२१ मा कोडकोभ आक्रमण. एक आक्रमणकारी, CodeCov प्रयोग गरेर सफ्टवेयर परियोजनाहरूमा सम्झौता गर्न खोज्दै, एक लोकप्रिय निरन्तर एकीकरण र निरन्तर डेलिभरी (CI/CD) उपकरणले परियोजनाको गुगल क्लाउड स्टोरेज (GCS) बकेटमा अनधिकृत पहुँच प्राप्त गर्न लीक भएका प्रमाणहरू प्रयोग गर्यो। आक्रमणकारीले GCS बकेटमा पहुँच प्राप्त गरेपछि, तिनीहरूले एक दुर्भावनापूर्ण कलाकृति अपलोड गरे, CodeCov प्याकेजको परिमार्जित संस्करण, जुन त्यसपछि CodeCov सेवा मार्फत प्रयोगकर्ताहरूलाई वितरण गरिएको थियो। अविश्वासी विकासकर्ताहरूले, स्वचालित अपडेट सुविधामा भर पर्दै, दुर्भावनापूर्ण प्याकेजलाई वैध मानेर डाउनलोड र स्थापना गर्नेछन्। एक पटक स्थापना भएपछि, दुर्भावनापूर्ण कोड चुपचाप चल्नेछ, यसले संक्रमित प्रणालीहरूको अखण्डतालाई सम्झौता गर्नेछ। यसले डेटा चोरी, प्रणाली अस्थिरता, वा आक्रमणकारीको लागि टाढाको पहुँच निम्त्याउन सक्छ।
प्याकेज रजिस्ट्रीहरूमा आक्रमणहरू यति सामान्य छन् कि केही आक्रमण ढाँचाहरूलाई नाम दिइएको छ:
In टाइपोस्क्वाटि, खराब अभिनेताले रजिस्ट्रीमा धेरै मालिसियस प्याकेजहरू अपलोड गर्दछ जसमा थोरै टाइपो त्रुटिहरू वा वैध, लोकप्रिय नामहरूसँग मिल्दोजुल्दो नामहरू हुन्छन्, यो आशामा कि विकासकर्ताहरूले इच्छित प्याकेजको नाम गलत हिज्जेमा मालिसियस नाम राख्नेछन्। प्रायः मालिसियस प्याकेजले पत्ता नलागेको पास गर्न वैधको रूपमा लुकाउँछ, जसले गर्दा स्टारगेजिङको शिकार हुने सम्भावना बढ्छ।
निर्भरता भ्रम केही प्याकेज प्रबन्धकहरूले धेरै रजिस्ट्रीहरूबाट अनुरोध गरिएका प्याकेजहरू समाधान गर्ने तरिकालाई प्रयोग गर्दछ। जब कुनै संस्थाले आन्तरिक रजिस्ट्रीमा प्रकाशित आन्तरिक कम्पोनेन्टहरू प्रयोग गर्दछ, तथ्य थाहा पाउने आक्रमणकारीले सार्वजनिक रजिस्ट्रीमा उही नामको दुर्भावनापूर्ण कम्पोनेन्ट प्रकाशित गर्न सक्छ। यदि आन्तरिक कम्पोनेन्टको लागि प्रयोग गरिएको नाम स्कोप गरिएको छैन भने, केही प्याकेज प्रबन्धकहरूले आन्तरिक कम्पोनेन्टको सट्टा दुर्भावनापूर्ण कम्पोनेन्ट ल्याउनेछन्।
संग ट्रोयन प्याकेजहरू, साइबर अपराधीले उपयोगी मान्य कोडहरू बीच मालवेयर लुकाउँछ। यो वास्तविक लेखक द्वारा प्रयोग गर्न सकिन्छ, वा प्याकेज कायम राख्न आफूलाई प्रस्ताव गर्ने योगदानकर्ता द्वारा। यसलाई पनि भनिन्छ प्याकेज अपहरणआक्रमणकारीहरूले अवस्थित प्याकेज अपहरण गर्न धेरै तरिकाहरू प्रयोग गरे, जस्तै डोमेन अधिग्रहण जहाँ आक्रमणकारीले पुरानो मर्मतकर्ता इमेल पुन: सिर्जना गर्ने र मर्मतकर्ता खाता कब्जा गर्न पासवर्ड पुन: प्राप्ति गर्ने कार्य गर्ने गरी परित्याग गरिएको म्याद सकिएको डोमेन कब्जा गरेको थियो।
अन्तिम टिप्पणीहरू
संस्थाहरूले स्वचालन र निरन्तर वितरणलाई प्राथमिकता दिने सफ्टवेयर विकास विधिहरू बढ्दो रूपमा अपनाउँदै जाँदा, सफ्टवेयर प्याकेज चरण सुरक्षित गर्नुको महत्त्व कहिल्यै यति महत्त्वपूर्ण भएको छैन। यस महत्वपूर्ण चरणमा बलियो सुरक्षा उपायहरू लागू गरेर, संस्थाहरूले आफ्नो सफ्टवेयरको अखण्डता र सुरक्षामा सम्झौता गर्न सक्ने दुर्भावनापूर्ण आक्रमणहरूको जोखिमलाई उल्लेखनीय रूपमा कम गर्न सक्छन्।
यस ब्लग पोस्टमा वर्णन गरिएका रणनीतिहरू, प्रदान गरिएका उदाहरणहरू सहित, प्याकेज चरणले सफ्टवेयर आपूर्ति श्रृंखला भित्र एक कमजोर बिन्दुलाई प्रतिनिधित्व गर्दछ भन्ने कुराको स्पष्ट सम्झनाको रूपमा काम गर्दछ। संस्थाहरूले यी खतराहरूलाई ध्यान दिनुपर्छ र आफ्नो सफ्टवेयरलाई आक्रमणबाट जोगाउन आवश्यक सुरक्षा उपायहरू कार्यान्वयन गर्नुपर्छ। यसो गरेर, तिनीहरूले आफ्ना प्रयोगकर्ताहरू र ग्राहकहरूको लागि आफ्नो सफ्टवेयरको अखण्डता, सुरक्षा र भरपर्दोताको ग्यारेन्टी गर्न सक्छन्।
सुरक्षित सफ्टवेयर इकोसिस्टम तर्फको हाम्रो यात्रामा सामेल हुनुहोस्
को क्षेत्रमा एक कदम अगाडि रहने मौका नगुमाउनुहोस् software supply chain security। आज नै हाम्रो ब्लगको सदस्यता लिनुहोस् र हाम्रो नवीनतम जानकारी प्राप्त गर्ने पहिलो व्यक्तिहरू मध्ये एक बन्नुहोस्, जसले गर्दा तपाईंको संस्था विकसित हुँदै गइरहेको खतराहरूको बीचमा पनि लचिलो र सुरक्षित रहन्छ भन्ने कुरा सुनिश्चित हुन्छ। सँगै, हामी सबैको लागि अझ बलियो र सुरक्षित सफ्टवेयर इकोसिस्टम निर्माण गर्न सक्छौं।
सम्झनु, software supply chain security यो एउटा निरन्तर यात्रा हो, गन्तव्य होइन। उदीयमान खतराहरूलाई सम्बोधन गर्न सुरक्षा अभ्यासहरूको निरन्तर मूल्याङ्कन र अनुकूलन गरेर, संस्थाहरूले आफ्नो सफ्टवेयर आपूर्ति श्रृंखला सुरक्षित गर्न र आफ्ना प्रयोगकर्ताहरूलाई विश्वसनीय सफ्टवेयर प्रदान गर्न सक्छन्।
हाम्रो भिडियो डेमो हेर्नुहोस्







