Title: एक AI कोडिंग असिस्टेंट सेशन सप्लाई चेन अटैक बन गया

Mandiant के नवीनतम केस स्टडी से पता चलता है कि एक हाईजैक किए गए AI कोडिंग-असिस्टेंट सेशन ने हमलावर को एक सॉफ्टवेयर कंपनी के कोडबेस में एक ज़हरीला (poisoned) पैकेज इंजेक्ट करने की अनुमति दी, जिससे 100 इंटरनल रिपॉजिटरीज़ से समझौता हुआ, GitHub OAuth टोकन चोरी हो गए और सोर्स कोड और सीक्रेट्स का डेटा चोरी (exfiltrate) हो गया। यह ब्रीच साबित करता है कि डेवलपर्स AI-जनरेटेड सुझावों को सुरक्षित कोड नहीं मान सकते।

क्या हुआ

एक लाइव डेवलपमेंट सेशन के दौरान, हमलावर ने टीम के एडिटर में एम्बेडेड AI असिस्टेंट का नियंत्रण अपने हाथ में ले लिया। इसके बाद, समझौता किए गए (compromised) असिस्टेंट ने एक दुर्भावनापूर्ण (malicious) पैकेज का सुझाव दिया। डेवलपर ने टूल पर भरोसा करते हुए, बिना किसी अतिरिक्त जांच के उस सुझाव को स्वीकार कर लिया।

उस ज़हरीले पैकेज ने एक इन्फोस्टीलर (infostealer) डाल दिया, जिसने वर्कस्टेशन पर स्टोर किए गए GitHub OAuth टोकन इकट्ठा कर लिए। उन टोकन का उपयोग करके, हमलावर ने “Shai-Hulud” वर्म (worm) तैनात किया, जिसने खुद को 100 इंटरनल रिपॉजिटरीज़ में कॉपी कर लिया। चूंकि दुर्भावनापूर्ण कोड में कंपनी का अपना नेमस्पेस (namespace) था, इसलिए बाद में जिन अन्य डेवलपर्स ने वही पैकेज पुल (pull) किए, वे भी संक्रमित हो गए।

यह क्यों महत्वपूर्ण है

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

सप्लाई-चेन हमले हमलावर को किसी संगठन के कोडबेस के माध्यम से लेटरल (laterally) मूव करने, क्रेडेंशियल्स चुराने और मालिकाना संपत्तियों (proprietary assets) को बाहर निकालने की अनुमति देते हैं—और यह सब पीड़ित के ध्यान में आए बिना होता है, जब तक कि नुकसान हो न चुका हो।

हमला कैसे हुआ

  1. सेशन हाईजैक – हमलावर ने चल रहे AI-असिस्टेंट सेशन पर कब्जा कर लिया।
  2. ज़हरीला सुझाव – समझौता किए गए असिस्टेंट को एक दुर्भावनापूर्ण पैकेज का सुझाव देने के लिए मजबूर किया गया।
  3. डेवलपर द्वारा स्वीकृति – AI की सिफारिश पर विश्वास करते हुए, डेवलपर ने पैकेज जोड़ा और जेनरेट किया गया इंस्टॉल कमांड चलाया।
  4. पेलोड निष्पादन (Payload execution) – पैकेज ने एक इन्फोस्टीलर इंस्टॉल किया जिसने स्थानीय GitHub OAuth टोकन और अन्य सीक्रेट्स को पढ़ लिया।
  5. वर्म प्रसार (Worm propagation) – चोरी किए गए टोकन का उपयोग करके, हमलावर ने Shai-Hulud वर्म तैनात किया, जो 100 इंटरनल रिपॉजिटरीज़ में फैल गया।
  6. डेटा चोरी (Exfiltration) – सोर्स कोड, इंटरनल लाइब्रेरीज़ और सीक्रेट कीज़ को हमलावर के इंफ्रास्ट्रक्चर में भेज दिया गया।

डेवलपर्स अब क्या कर सकते हैं

हर AI सुझाव को अनट्रस्टेड (untrusted) कोड की तरह मानें। वही सत्यापन (verification) चरण अपनाएं जो आप किसी भी थर्ड-पार्टी डिपेंडेंसी के लिए उपयोग करते हैं।

  • पैकेज को वैलिडेट करें

    • आधिकारिक डॉक्यूमेंटेशन और वर्जन हिस्ट्री की जांच करें।
    • पब्लिशर की पहचान और प्रतिष्ठा की पुष्टि करें।
    • सोर्स रिपॉजिटरी और हाल के कमिट्स (commits) की समीक्षा करें।
    • अप्रत्याशित लिंक के लिए पूरे डिपेंडेंसी ट्री (dependency tree) की जांच करें।
    • छिपे हुए कमांड के लिए किसी भी इंस्टॉल स्क्रिप्ट की बारीकी से जांच करें।
  • क्रेडेंशियल हैंडलिंग को मजबूत करें

    • प्रत्येक टोकन को कम से कम संभव अनुमतियाँ (permissions) दें।
    • लॉन्ग-लिव्ड टोकन के बजाय शॉर्ट-लिव्ड टोकन को प्राथमिकता दें।
    • प्रोडक्शन सीक्रेट्स को लोकल डेवलपमेंट मशीनों से दूर रखें।
    • एडिटर एक्सटेंशन को उन क्रेडेंशियल्स तक पहुँचने से रोकें जिनकी उन्हें आवश्यकता नहीं है।
  • संदिग्ध ब्रीच पर प्रतिक्रिया दें

    • प्रभावित वातावरण को तुरंत अलग (isolate) करें; node_modules या इसी तरह की डायरेक्टरीज़ को डिलीट करना पर्याप्त नहीं है।
    • सभी GitHub, npm, PyPI और क्लाउड क्रेडेंशियल्स को रोटेट (rotate) करें।
    • अप्रत्याशित कमिट्स या पुल-रिक्वेस्ट मर्ज के लिए रिपॉजिटरी गतिविधि का ऑडिट करें।
    • असामान्य व्यवहार के लिए CI/CD लॉग्स और Git-hook स्क्रिप्ट्स की समीक्षा करें।

भविष्य की ओर देखते हुए

AI असिस्टेंट कई डेवलपर्स के लिए उत्पादकता बढ़ाने वाले बने रहेंगे, लेकिन उनकी शक्ति के साथ भरोसे की एक कीमत भी आती है। संगठनों को AI-जनरेटेड कोड को मौजूदा सुरक्षा समीक्षा पाइपलाइनों (security review pipelines) में शामिल करना चाहिए, ठीक वैसे ही जैसे वे किसी भी बाहरी लाइब्रेरी के लिए करते हैं। ऑटोमेटेड पॉलिसी चेक, साइन्ड (signed) AI-असिस्टेंट आउटपुट और रनटाइम सैंडबॉक्सिंग (runtime sandboxing) चुपचाप होने वाले समझौतों के जोखिम को कम कर सकते हैं।

Mandiant का मामला यह स्पष्ट करता है कि एक बार AI असिस्टेंट से समझौता हो जाने के बाद, हमलावर को सॉफ्टवेयर सप्लाई चेन में सीधी पहुंच मिल जाती है। कोडबेस को सुरक्षित रखने के लिए AI सुझावों को थ्रेट मॉडल (threat model) के हिस्से के रूप में देखना—न कि एक फ्री पास के रूप में—अनिवार्य होगा।

निष्कर्ष: AI-जनरेटेड सिफारिश किसी भी अन्य थर्ड-पार्टी कोड की तुलना में अधिक भरोसेमंद नहीं है। इसे सख्ती से सत्यापित (verify), सीमित और मॉनिटर करें, अन्यथा एक सहायक असिस्टेंट को बड़े पैमाने पर सप्लाई-चेन ब्रीच के माध्यम से एक माध्यम (conduit) बनाने का जोखिम उठाएं।