प्रौद्योगिकी

सप्लाई चेन के रास्ते भरोसेमंद सॉफ़्टवेयर में दुर्भावनापूर्ण कोड ऐसे घुसता है

Susan Hill

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

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

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

बिल्ड पाइपलाइन सबसे लालच भरा निशाना ठीक इसलिए बन गई क्योंकि वह बाकी सबसे ऊपरी छोर पर बैठी है। जब 2025 में लोकप्रिय GitHub Actions घटक tj-actions/changed-files से समझौता हुआ, तो हमलावरों ने उसके संस्करण टैग को फिर से लिखकर दुर्भावनापूर्ण कोड की ओर मोड़ दिया और बीस हज़ार से अधिक रिपॉज़िटरी के बिल्ड लॉग से राज़ खींच निकाले: एक्सेस कुंजियाँ, टोकन और निजी कुंजियाँ, सब सादे पाठ में। बाद के एक अभियान को, जिसे शोधकर्ताओं ने Megalodon नाम दिया, ने GitHub Actions को एक खुद-फैलने वाले पिछले दरवाज़े में बदल दिया, जो लगभग छह घंटों में 5,561 रिपॉज़िटरी तक पहुँच गया। जो मशीन आपका सॉफ़्टवेयर बनाती है, उसे सॉफ़्टवेयर जितनी ही आसानी से पलटा जा सकता है।

जो उपकरण डेवलपर रोज़ इस्तेमाल करते हैं, वे भी असर के दायरे में हैं। GlassWorm, जो पहली बार 2025 के आख़िर में मिला, OpenVSX और Microsoft के बाज़ारों में Visual Studio Code के एक्सटेंशन के ज़रिए फैला। इसने अपना पेलोड अदृश्य Unicode अक्षरों से छिपाया, ताकि दुर्भावनापूर्ण पंक्तियाँ संपादक में सचमुच अपठनीय रहें और मानवीय समीक्षा से बच निकलें। इंस्टॉल होते ही यह npm, GitHub और Git की लॉगिन जानकारी चुरा लेता था और फिर उनसे अपने आप और पैकेज तथा एक्सटेंशन संक्रमित करता था, जो किसी वर्म की पहचान है। चूँकि संपादक एक्सटेंशन को पृष्ठभूमि में चुपचाप अपडेट करते हैं, पीड़ितों को ज़हरीले संस्करण बिना कुछ क्लिक किए ही मिल गए। एक और ज़हरीले VS Code एक्सटेंशन का इस्तेमाल खुद GitHub की करीब 3,800 आंतरिक रिपॉज़िटरी चुराने में हुआ।

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

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

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

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

चर्चा

0 टिप्पणियाँ हैं।