सफ्टवेयर आपूर्ति श्रृंखला जीवन चक्र स्रोत कोडबाट कार्यान्वयनयोग्य कलाकृतिहरूमा अगाडि बढ्दै जाँदा, निर्माण चरण एक महत्वपूर्ण मोडको रूपमा खडा हुन्छ। यद्यपि, यो रूपान्तरण चरण सफ्टवेयरको अखण्डतालाई खतरामा पार्न सक्ने विभिन्न खतराहरूको लागि पनि संवेदनशील छ र build security। यी खतराहरूले स्थापित विधिहरूलाई छल्ने सहित विभिन्न विधिहरू मार्फत निर्माण प्रक्रियामा घुसपैठ गर्न सक्छन्। CI/CD pipeline, कोड पोस्ट-सोर्स नियन्त्रण परिमार्जन गर्ने, निर्माण प्रक्रिया आफैंमा सम्झौता गर्ने, वा कलाकृति भण्डारहरू हेरफेर गर्ने। यस ब्लग पोस्टमा, हामी यी खतराहरूमा गहिराइमा जान्छौं र सबैभन्दा प्रचलित सफ्टवेयर आपूर्ति श्रृंखला निर्माण आक्रमणहरूको जाँच गर्छौं। यो सामग्रीले हाम्रो ब्लग श्रृंखला अन्वेषण गर्न जारी राख्छ software supply chain security भर SDLC.
सफ्टवेयर विकास जीवन चक्रमा निर्माण चरण
सफ्टवेयर आपूर्ति श्रृंखला जीवनचक्रको निर्माण चरणले स्रोत कोडलाई कार्यान्वयनयोग्य सफ्टवेयर कलाकृतिहरूमा रूपान्तरण गर्ने प्रक्रियालाई समेट्छ। यस चरणमा स्रोत कोड कम्पाइल गर्ने, लिङ्क गर्ने र प्याकेज गर्ने, साथै स्थापना प्याकेजहरू र कन्फिगरेसन फाइलहरू उत्पन्न गर्ने समावेश छ।
Build security धम्कीहरू ती कमजोरीहरू हुन् जसले स्रोत कोड परिवर्तन नगरी निर्माण प्रक्रियाको क्रममा सफ्टवेयरमा अनधिकृत परिवर्तनहरू परिचय गराउन विपक्षीलाई अनुमति दिन सक्छ। यी खतराहरू विभिन्न विधिहरू मार्फत प्रस्तुत गर्न सकिन्छ, जस्तै निर्माण वातावरणमा सम्झौता गर्ने वा निर्माण उपकरणहरूमा कमजोरीहरूको शोषण गर्ने।

सबैभन्दा सामान्य सफ्टवेयर आपूर्ति श्रृंखला खतराहरू - निर्माण आक्रमणहरू
बाइपास CI/CD
यसले स्थापितलाई छल्ने अभ्यासलाई जनाउँछ CI/CD (निरन्तर एकीकरण र निरन्तर वितरण) pipeline सामान्यतया आधिकारिक निकायद्वारा लागू गरिने कठोर परीक्षण, प्रमाणीकरण र लेखा परीक्षण प्रक्रियाहरू पार नगरी सफ्टवेयर सिधै निर्माण र प्रकाशन गर्न pipeline। यो बाहिर सफ्टवेयर म्यानुअल रूपमा निर्माण गरेर गर्न सकिन्छ CI/CD वातावरण वा निर्माण प्रक्रियामा अनधिकृत परिमार्जनहरूको लागि अनुमति दिने उपकरणहरू वा स्क्रिप्टहरू प्रयोग गरेर। यस प्रकारको भेक्टर आक्रमणको उदाहरण थियो जेनकिन्स आक्रमण२०२२ मा, ह्याकरहरूले भवनमा घुसपैठ गरे pipeline जेनकिन्स नामक लोकप्रिय खुला-स्रोत सफ्टवेयर परियोजनाको। ह्याकरहरूले जेनकिन्सफाइलमा मालिसियस कोड इन्जेक्ट गरे, जुन एक स्क्रिप्ट हो जसले निर्माण प्रक्रियालाई परिभाषित गर्दछ। मालिसियस कोडले ह्याकरहरूलाई बाइपास गर्न अनुमति दियो CI/CD pipelineको सुरक्षा जाँच गर्छ र आफ्नो कोड निर्माण प्रक्रियामा इन्जेक्ट गर्छ। त्यसपछि यो कोड सफ्टवेयर स्थापना गर्ने संस्थाहरूको प्रणालीहरूमा कार्यान्वयन गरिन्छ।
स्रोत नियन्त्रण पछि कोड परिमार्जन गर्नुहोस्
यस अभ्यासमा स्रोत कोड भइसकेपछि त्यसमा अनधिकृत परिवर्तनहरू गर्नु समावेश छ commitविश्वसनीय स्रोत नियन्त्रण प्रणाली (SCS) मा जडान गरिएको र त्यसपछि यो परिमार्जित कोड प्रयोग गरेर सफ्टवेयर निर्माण गर्ने। यो विकासकर्ताको कार्यस्थानमा कोडलाई सिधै परिमार्जन गरेर वा निर्माण प्रक्रियामा दुर्भावनापूर्ण कोड इन्जेक्ट गर्न बाह्य उपकरणहरू वा स्क्रिप्टहरू प्रयोग गरेर गर्न सकिन्छ। यस भेक्टर आक्रमणको उदाहरण २०२२ मा भएको GitLab आक्रमण थियो। ह्याकरहरूले निर्माणमा घुसपैठ गरे। pipeline of GitLabह्याकरहरूले GitLab मा दुर्भावनापूर्ण कोड इन्जेक्ट गरे। CI/CD pipeline, जुन एक उपकरण हो जसले स्वचालित बनाउँछ build security प्रक्रिया। दुर्भावनापूर्ण कोडले ह्याकरहरूलाई स्रोत नियन्त्रणमा जाँच गरिसकेपछि कोड परिमार्जन गर्न अनुमति दियो। यसले उनीहरूलाई आफ्नो कोड सफ्टवेयरमा इन्जेक्ट गर्न अनुमति दियो, जुन त्यसपछि सफ्टवेयर स्थापना गर्ने संस्थाहरूको प्रणालीहरूमा कार्यान्वयन गरियो।
सम्झौता निर्माण प्रक्रिया
यसमा निर्माण प्रक्रियालाई नै हेरफेर वा परिवर्तन गर्ने समावेश छ, या त निर्माण वातावरणमा प्रत्यक्ष पहुँच मार्फत वा निर्माण उपकरणहरू वा तेस्रो-पक्ष निर्भरताहरूमा कमजोरीहरूको शोषण गरेर। यो निर्माण आउटपुटमा दुर्भावनापूर्ण कोड परिचय गराउन, निर्माणको उत्पत्तिसँग छेडछाड गर्न, वा निर्माण प्रक्रियालाई पूर्ण रूपमा बाधा पुर्याउन गर्न सकिन्छ। यस भेक्टर आक्रमणको सबैभन्दा प्रसिद्ध उदाहरण थियो SolarWinds आक्रमण। एक आक्रमणकारीले सोलारविन्ड्सको बिल्ड प्लेटफर्ममा अनधिकृत पहुँच प्राप्त गरेको थियो, जुन सोलारविन्ड्स ओरियन सफ्टवेयर कम्पाइल र प्याकेज गर्न प्रयोग गरिने प्रणाली हो। यो स्क्रिप्टले कम्पाइल गरिएको सोलारविन्ड्स ओरियन सफ्टवेयरमा दुर्भावनापूर्ण कोड इन्जेक्ट गरेको थियो। जब प्रयोगकर्ताहरूले सम्झौता गरिएको सफ्टवेयर स्थापना गरे, दुर्भावनापूर्ण कोड तिनीहरूको प्रणालीमा कार्यान्वयन गरिएको थियो, जसले आक्रमणकारीलाई तिनीहरूको प्रणालीमा अनधिकृत पहुँच दियो। आक्रमणकारीले तिनीहरूको प्रणालीबाट संवेदनशील डेटा, जस्तै प्रमाणहरू, बौद्धिक सम्पत्ति, र ग्राहक जानकारी चोर्न पनि सक्षम थियो।
कलाकृति भण्डार सम्झौता गर्नुहोस्
यसले कलाकृति भण्डारको अनधिकृत पहुँच वा हेरफेरलाई जनाउँछ, जहाँ सफ्टवेयर प्याकेजहरू र बाइनरीहरू आन्तरिक वा बाह्य प्रयोगकर्ताहरूलाई वितरणको लागि भण्डारण गरिन्छ। आक्रमणकारीहरूले यो जोखिमको फाइदा उठाउँदै दुर्भावनापूर्ण कोड परिचय गराउन, सफ्टवेयरको प्रामाणिकतासँग छेडछाड गर्न, वा तैनाती प्रक्रियामा बाधा पुर्याउन सक्छन्। यस भेक्टर आक्रमणको उदाहरण थियो २०२२ मा रुबीजेम्स। ह्याकरहरूले RubyGems को कलाकृति भण्डारमा घुसपैठ गरे। ह्याकरहरूले एउटा वैध कलाकृतिलाई एउटा दुर्भावनापूर्णले प्रतिस्थापन गरे, जुन त्यसपछि Ruby on Rails सँग सफ्टवेयर निर्माण गर्ने हजारौं संस्थाहरूले डाउनलोड गरे। दुर्भावनापूर्ण कलाकृतिले ह्याकरहरूलाई सफ्टवेयर स्थापना गर्ने संस्थाहरूको प्रणालीमा मनमानी कोड कार्यान्वयन गर्न अनुमति दियो। यसले सम्भावित रूपमा उनीहरूलाई डेटा चोरी गर्न, मालवेयर स्थापना गर्न वा सञ्चालनमा बाधा पुर्याउन अनुमति दिन सक्छ।
अन्तिम टिप्पणीहरू
संस्थाहरूले स्वचालन र निरन्तर डेलिभरीलाई जोड दिने सफ्टवेयर विकास अभ्यासहरू अँगाल्न जारी राख्दा, सफ्टवेयर निर्माण प्रक्रिया सुरक्षित गर्ने महत्त्व कहिल्यै ठूलो भएको छैन। निर्माण चरणभरि बलियो सुरक्षा उपायहरू लागू गरेर, संस्थाहरूले आफ्नो सफ्टवेयरको अखण्डता र सुरक्षामा सम्झौता गर्न सक्ने दुर्भावनापूर्ण आक्रमणहरूको शिकार हुने जोखिमलाई उल्लेखनीय रूपमा कम गर्न सक्छन्।
यस ब्लग पोस्टमा उल्लिखित रणनीतिहरू र प्रदान गरिएका उदाहरणहरूले सफ्टवेयर आपूर्ति श्रृंखलामा निर्माण चरण एक कमजोर बिन्दु हो भन्ने कुराको सम्झना गराउँछन्। संस्थाहरूले यी खतराहरूलाई ध्यान दिनुपर्छ र आफ्नो सफ्टवेयरलाई आक्रमणबाट जोगाउन आवश्यक सुरक्षा उपायहरू लागू गर्नुपर्छ। यसो गरेर, तिनीहरूले आफ्ना प्रयोगकर्ताहरू र ग्राहकहरूको लागि आफ्नो सफ्टवेयरको अखण्डता, सुरक्षा र विश्वसनीयता सुनिश्चित गर्न सक्छन्।
सुरक्षित सफ्टवेयर इकोसिस्टम तर्फको हाम्रो यात्रामा सामेल हुनुहोस्
सफ्टवेयर आपूर्ति शृङ्खला खतराहरूबाट बच्नको लागि यो अवसरलाई नगुमाउनुहोस्। आज नै हाम्रो ब्लगको सदस्यता लिनुहोस् र हाम्रो नवीनतम अन्तर्दृष्टि प्राप्त गर्ने पहिलो बन्नुहोस्, जसले गर्दा तपाईंको संस्था विकसित खतराहरूको बीचमा लचिलो र सुरक्षित रहन्छ भन्ने कुरा सुनिश्चित हुन्छ। सँगै, हामी सबैको लागि अझ बलियो र सुरक्षित सफ्टवेयर इकोसिस्टम निर्माण गर्न सक्छौं।
हाम्रो भिडियो डेमो हेर्नुहोस्







