निर्भरता भ्रम के हमलों को रोकने के लिए सॉफ़्टवेयर आपूर्ति श्रृंखला रणनीतियाँ

निर्भरता भ्रम के हमलों को रोकने के लिए सॉफ़्टवेयर आपूर्ति श्रृंखला रणनीतियाँ

निर्भरता भ्रम को दूर करने के लिए सॉफ़्टवेयर आपूर्ति श्रृंखला रणनीतियाँ प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर हमला करती हैं। लंबवत खोज. ऐ.

"नाम में क्या रखा है? जिसे हम गुलाब कहते हैं, किसी भी अन्य नाम से उसकी सुगंध उतनी ही मीठी होगी।” जब शेक्सपियर ने 2 में ये शब्द (रोमियो और जूलियट, अधिनियम 2, दृश्य 1596) लिखे, तो वह कह रहे थे कि एक नाम सिर्फ एक परंपरा है। इसका कोई आंतरिक अर्थ नहीं है. जूलियट रोमियो से उसके नाम के कारण नहीं, बल्कि उसके स्वरूप के कारण प्रेम करती है।

लेकिन इसे जाने बिना, शेक्सपियर निर्भरता भ्रम के हमलों का भी वर्णन कर रहे थे।

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

हाल की शोध रिपोर्टों का अनुमान है कि 41% से 49% संगठनों पर निर्भरता भ्रम के हमलों का खतरा है। ओएक्स सिक्योरिटी के नए शोध से पता चलता है कि जब किसी संगठन पर निर्भरता भ्रम के हमले का खतरा होता है, तो उसकी 73% संपत्ति असुरक्षित होती है। शोध मध्यम आकार और बड़े संगठनों (1K+, 8) पर केंद्रित हैK+, 80K+ कर्मचारी) क्षेत्रों की एक विस्तृत श्रृंखला में - वित्त, गेमिंग, प्रौद्योगिकी और मीडिया - और सभी आकार के संगठनों में हर क्षेत्र में जोखिम पाया गया। शोध में यह भी पाया गया कि 1 बिलियन से अधिक उपयोगकर्ताओं वाले लगभग सभी एप्लिकेशन निर्भरता का उपयोग कर रहे हैं जो निर्भरता भ्रम के प्रति संवेदनशील हैं।

इस लेख का उद्देश्य आपको निर्भरता संबंधी भ्रम को समझने और इसे रोकने के तरीके को समझने में मदद करना है।

दुगुना दुगुना

निर्भरताएँ (जिन्हें पैकेज भी कहा जाता है) आपके सॉफ़्टवेयर के निर्माण खंड हैं। आमतौर पर सॉफ़्टवेयर के ये टुकड़े, चाहे पूरे समुदाय द्वारा विकसित किए गए हों या किसी कंपनी के भीतर, एक सामान्य और आवश्यक कार्य करते हैं।

पैकेज प्रबंधकों का उपयोग अक्सर निर्भरताएँ स्थापित करने और उन्हें अद्यतन रखने के लिए किया जाता है। वे पैकेज के नाम के लिए सार्वजनिक और निजी रजिस्ट्रियों को स्कैन करते हैं और, अन्य सभी चीजें समान होने पर, उच्चतम संस्करण संख्या का चयन करते हैं। हमलावर सार्वजनिक रजिस्ट्री पर समान नाम लेकिन उच्चतर संस्करण के साथ एक "डमी" पैकेज रखकर इसका लाभ उठाते हैं।

जब एक पैकेज मैनेजर को दो समान पैकेज मिलते हैं, एक सार्वजनिक रजिस्ट्री में और एक निजी रजिस्ट्री में, तो यह भ्रम पैदा करता है - इसलिए इसे "निर्भरता भ्रम" नाम दिया गया है। चूँकि दोनों पैकेज समान हैं, प्रबंधक स्वचालित रूप से उच्चतर संस्करण वाले पैकेज को स्थापित करने का चयन करेगा - इस मामले में, हमलावर का दुर्भावनापूर्ण पैकेज।

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

परिश्रम और परेशानी

निर्भरता भ्रम के हमले के लिए विभिन्न दृष्टिकोण हैं।

  • नामस्थान. किसी दुर्भावनापूर्ण सॉफ़्टवेयर लाइब्रेरी को सार्वजनिक रजिस्ट्री में अपलोड करके - जैसे कि पायथन पैकेज इंडेक्स (पीईपीआई) या जावास्क्रिप्ट एनपीएम रजिस्ट्री - वह है समान नाम दिया गया एक विश्वसनीय, आंतरिक रूप से उपयोग की जाने वाली लाइब्रेरी में, जो सिस्टम नेमस्पेस/यूआरएल जांच को छोड़ देते हैं या निजी रजिस्ट्री से लाने के लिए बाध्य नहीं करते हैं, वे गलती से दुर्भावनापूर्ण कोड खींच सकते हैं। हाल ही में PyTorch निर्भरता भ्रम की घटना ऐसा ही एक उदाहरण है।
  • डीएनएस स्पूफ़िंग. डीएनएस स्पूफिंग जैसी तकनीक का उपयोग करके, सिस्टम को वैध आंतरिक यूआरएल/पथ जैसा दिखने वाला प्रदर्शन करते हुए दुर्भावनापूर्ण रिपॉजिटरी से निर्भरता खींचने के लिए निर्देशित किया जा सकता है।
  • पटकथा. बिल्ड/इंस्टॉल स्क्रिप्ट को संशोधित करके या सतत एकीकरण/निरंतर वितरण (सीआई/सीडी) पाइपलाइन कॉन्फ़िगरेशन में, सिस्टम को स्थानीय रिपॉजिटरी के बजाय किसी दुर्भावनापूर्ण स्रोत से सॉफ़्टवेयर निर्भरता डाउनलोड करने के लिए धोखा दिया जा सकता है।

चीजें अच्छी तरह से और सावधानी से की गईं

निर्भरता भ्रम से बचाने के लिए, इन प्रथाओं को स्थापित करें।

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

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

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

सार्वजनिक रजिस्ट्री में पैकेज का नाम आरक्षित करने का एक अन्य कारण यह है कि यदि कोई और इसे आरक्षित करता है (दुर्भावनापूर्ण तरीके से या नहीं), तो डेवलपर्स को निजी रजिस्ट्री में सभी पैकेज नामों को उस नाम में बदलना होगा जिसे अभी तक सार्वजनिक रजिस्ट्री में आरक्षित नहीं किया गया है। यह एक लंबी और थकाऊ प्रक्रिया हो सकती है.

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

बाहर निकलें, एक भालू द्वारा पीछा किया गया

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

शेक्सपियर के गुलाबों ने सैकड़ों वर्षों तक निर्भरता भ्रम के हमलों के खतरे की भविष्यवाणी की होगी, लेकिन बार्ड का एक और उद्धरण उनके खिलाफ सुरक्षा के लिए कुछ ज्ञान प्रदान कर सकता है: "हर आंख को अपने लिए बातचीत करने दें और किसी भी एजेंट पर भरोसा न करें।" (मच एडो अबाउट नथिंग, एक्ट 2, दृश्य 1)

समय टिकट:

से अधिक डार्क रीडिंग