Xygeni ने हाल ही में 2025 में सॉफ्टवेयर सप्लाई चेन हमलों के परिदृश्य में एक चिंताजनक पैटर्न देखा है।दो लोकप्रिय पैकेज मैनेजरों में उभर कर सामने आया: PyPI और NPMहमारी चल रही खतरे की खुफिया जानकारी जुटाने की कोशिशों के तहत,Xygeni का मैलवेयर अर्ली वार्निंग (MEW) इस टूल ने एक ऐसे दुर्भावनापूर्ण पैकेज का एक विशिष्ट लेकिन कार्यप्रणाली के समान उदाहरण पहचाना है जिसे पहले किसी अन्य रजिस्ट्री में अपलोड किया गया था। यह मामला इस बात पर प्रकाश डालता है कि कैसे हमलावर विभिन्न प्रणालियों में, विशेष रूप से विभिन्न तकनीकों का उपयोग करके, हमले की तकनीकों को विकसित और पुन: उपयोग कर रहे हैं। दुर्भावनापूर्ण पायथन पैकेज और दुर्भावनापूर्ण एनपीएम पैकेजजिससे ओपन सोर्स सप्लाई चेन में दुर्भावनापूर्ण पैकेजों के घुसपैठ का खतरा बढ़ जाता है।
Xygeni का MEW: समानताओं को पहचानना
Xygeni का MEW टूल दुर्भावनापूर्ण पैकेजों का पता लगाने और उन्हें चिह्नित करने के लिए बनाया गया है, विशेष रूप से उन पैकेजों का जो 2025 में सॉफ्टवेयर सप्लाई चेन हमलों से जुड़े हैं, जैसे ही वे ओपन-सोर्स रजिस्ट्री में प्रकाशित होते हैं। यह नए पैकेजों के संदिग्ध व्यवहार का विश्लेषण करके काम करता है।
इस मामले में, इसने दो की पहचान की। दुर्भावनापूर्ण पायथन पैकेज (graphalgo PyPI पर) और दुर्भावनापूर्ण एनपीएम पैकेज (express-cookie-parser (एनपीएम पर)।
सॉफ्टवेयर आपूर्ति श्रृंखला हमलों में दुर्भावनापूर्ण पायथन और एनपीएम पैकेज (2025)
आइए उन साझा विशेषताओं का पता लगाएं जिनके कारण हमें अलर्ट मिले:
typosquatting
उन दोनों ने मौजूदा लोकप्रिय पैकेजों की नकल करने की कोशिश की।
- ग्राफल्गो (पीवाईपीआई): "ग्राफ और नेटवर्क बनाने और उनमें हेरफेर करने के लिए पायथन पैकेज।"एक उपयोगकर्ता द्वारा अपलोड किया गया" “लैरीटेक” 13 जून, 2025 को, इस पैकेज ने खुद को मूल गैर-हानिकारक ग्राफल्गो प्रोजेक्ट के PyPi विकल्प के रूप में प्रस्तुत किया, जिसका नाम बाद में ग्राफडिक्ट रखा गया।
- एक्सप्रेस-कुकी-पार्सर (एनपीएम)यह पैकेज प्रसिद्ध कुकी-पार्सर पैकेज की नकल करता है, यहाँ तक कि उसकी हूबहू कार्यप्रणाली को भी दर्शाता है। README.md. इस तरह की प्रतिरूपण मौजूदा भरोसे का लाभ उठाने की एक क्लासिक रणनीति है।
सुरक्षा की पहली पंक्ति के रूप में अस्पष्टीकरण
दोनों पैकेजों ने अपने दुर्भावनापूर्ण कोड को मूल फाइलों के भीतर छिपा दिया था। ग्राफल्गोअस्पष्ट कोड इसके भीतर पाया गया /utils/load_libraries.py. की दशा में एक्सप्रेस-कुकी-पार्सर, cookie-loader.min.js इसमें छिपा हुआ पेलोड शामिल था।
सामान्य तौर पर, यह प्रारंभिक अस्पष्टीकरण परत सामान्य निरीक्षण और स्थिर विश्लेषण को बाधित करने के लिए उपयोग की जाती है। अस्पष्टीकरण काफी सरल था: बार-बार ZLib संपीड़न और Base64 एन्कोडिंग। इस प्रकार का अस्पष्टीकरण स्पष्ट रूप से इंगित करता है कि सॉफ़्टवेयर अपने व्यवहार को छिपाने का प्रयास कर रहा है। अन्य साक्ष्यों के साथ, इसने Xygeni MEW को पैकेजों को संभावित मैलवेयर के रूप में वर्गीकृत करने में सक्षम बनाया। पुष्टिकरण चरण के दौरान, हमारे समीक्षकों ने तुरंत एक डीओबफस्केशन स्क्रिप्ट तैयार की जिसने स्पष्ट रूप से दुर्भावनापूर्ण ड्रॉपर चरण को उजागर किया।
बहु-चरणीय पेलोड वितरण और एक साझा उत्पत्ति बिंदु
दोनों पैकेज प्रारंभिक “ के रूप में कार्य करते थेड्रॉपर," वास्तविक पेलोड के लिए मंच तैयार करते हुए। उन्होंने एक सामान्य बाहरी " साझा किया।बीजफ़ाइल यूआरएल:https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
यह समान बाहरी सीड फ़ाइल एक साझा हमलावर की मौजूदगी का प्रबल संकेत है। दिलचस्प बात यह है कि इस सीड फ़ाइल की सामग्री साधारण पर्यावरण चर (जैसे, JWT_SECRET, PORT) प्रतीत होती है, जो संभवतः इसके वास्तविक कार्य को समझने में बाधा उत्पन्न कर सकती है।
डीजीए के साथ डायनामिक सी2 रिज़ॉल्यूशन
इन दुर्भावनापूर्ण पैकेजों में देखी गई एक परिष्कृत रणनीति कमांड और कंट्रोल (C2) सर्वर को गतिशील रूप से हल करने के लिए डोमेन जनरेशन एल्गोरिथम (DGA) का उपयोग है। यह तकनीक, जो अक्सर 2025 में उन्नत सॉफ़्टवेयर आपूर्ति श्रृंखला हमलों में देखी जाती है, सीड फ़ाइल की सामग्री से प्राप्त SHA256 हैश पर निर्भर करती है, जिसे अन्य हार्डकोडेड मानों के साथ जोड़ा जाता है। ऐसा करने से, C2 इन्फ्रास्ट्रक्चर बार-बार बदलता रहता है, जिससे पारंपरिक ब्लैकलिस्टिंग बहुत कम प्रभावी हो जाती है। इस मामले में, npm वेरिएंट ने एक निश्चित मान का उपयोग किया। 496AAC7E इसके डीजीए लॉजिक के हिस्से के रूप में।
दृढ़ता स्थापित करना
दोनों हमलावरों ने प्रभावित सिस्टमों पर स्थायी उपस्थिति स्थापित करने की कोशिश की। उनकी रणनीति में एक फ़ाइल डालना शामिल था, startup.py (PyPi के लिए) या startup.js (npm के लिए), विभिन्न ऑपरेटिंग सिस्टम (Windows, Linux, macOS) में सामान्य Google Chrome उपयोगकर्ता डेटा निर्देशिकाओं में।
निष्पादन के बाद सफाई
अपने निशान मिटाने के लिए, दोनों दुर्भावनापूर्ण स्क्रिप्ट ने सफाई अभियान चलाए। इसमें उनकी प्रारंभिक ड्रॉपर फ़ाइलों को हटाना शामिल था (load_libraries.py, cookie-loader.min.js) और वैध पैकेज फ़ाइलों को संशोधित करना (__init__.py, index.js) अब हटाए जा चुके घटकों के संदर्भों को हटाने के लिए।
दुर्भावनापूर्ण पायथन और एनपीएम पैकेजों में सुरक्षा उल्लंघन के संकेतक
- PyPI पैकेजग्राफल्गो (लैरीटेक द्वारा प्रकाशित, 13 जून, 2025)
- एनपीएम पैकेज: एक्सप्रेस-कुकी-पार्सर (विशेष रूप से संस्करण 1.4.12)
- साझा सीड यूआरएल तक पहुंच:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
- स्थायी फ़ाइलनाम:
startup.py(पायथन)startup.js(जावास्क्रिप्ट) - सामान्य स्थायी पथ (ओएस-निर्भर): गूगल क्रोम उपयोगकर्ता डेटा निर्देशिकाओं के भीतर (उदाहरण के लिए,
AppData\Local\Google\Chrome\UserData\Scripts\विंडोज़ पर,~/.config/google-chrome/Scripts/लिनक्स आदि पर)।
सॉफ्टवेयर सप्लाई चेन हमलों में दुर्भावनापूर्ण पैकेजों से बचाव कैसे करें (2025)
डेवलपर्स के लिए एक अनुशंसित दृष्टिकोण
यह घटना 2025 में सॉफ्टवेयर सप्लाई चेन हमलों के बढ़ते खतरे के परिदृश्य में एक महत्वपूर्ण केस स्टडी के रूप में काम करती है। यह दर्शाती है कि कैसे दुर्भावनापूर्ण पायथन पैकेज और दुर्भावनापूर्ण एनपीएम पैकेज विश्वसनीय सिस्टम में घुसपैठ कर सकते हैं, और अक्सर बहुत देर होने तक इनका पता नहीं चल पाता। यही कारण है कि शीघ्र पता लगाना, स्मार्ट टूलिंग और सक्रिय सिस्टम स्वच्छता अब किसी भी सुरक्षित डेवऑप्स वर्कफ़्लो के अनिवार्य हिस्से हैं। डेवलपर्स को निम्नलिखित बातों पर विचार करने के लिए प्रोत्साहित किया जाता है:
निर्भरता समीक्षा
यदि आपकी परियोजनाओं में शामिल हैं ग्राफल्गो or एक्सप्रेस-कुकी-पार्सरइसलिए, उन्हें हटाने की प्रक्रिया शुरू करना विवेकपूर्ण होगा।
- PyPI के लिए:
pip uninstall graphalgo - एनपीएम के लिए:
npm uninstall express-cookie-parser
सिस्टम स्वच्छता
एक व्यापक सिस्टम स्कैन करने पर विचार करें। साथ ही, क्रोम के सामान्य उपयोगकर्ता डेटा डायरेक्टरी पाथ्स में किसी भी अप्रत्याशित समस्या की मैन्युअल रूप से जांच करना भी उचित है। startup.py or startup.js फाइलें.
सक्रिय सुरक्षा उपाय
- नई निर्भरताओं का आकलन करेंएकीकरण से पहले नए पैकेजों का पूरी तरह से मूल्यांकन करने के लिए एक नियमित प्रक्रिया स्थापित करें, विशेष रूप से अपरिचित प्रकाशकों के पैकेजों पर ध्यान केंद्रित करें।
- सुरक्षा उपकरणों को एकीकृत करेंXygeni के MEW जैसे उपकरण, साथ ही अन्य सॉफ़्टवेयर कंपोज़िशन विश्लेषण (SCAइन समाधानों से संदिग्ध व्यवहारों और कमजोरियों की पहचान करके सुरक्षा की एक महत्वपूर्ण परत प्रदान की जा सकती है।
- कम से कम विशेषाधिकारन्यूनतम विशेषाधिकार के सिद्धांत के साथ विकास परिवेशों का संचालन करने से किसी भी प्रकार के उल्लंघन के संभावित प्रभाव को सीमित करने में मदद मिल सकती है।
- नेटवर्क जागरूकता: असामान्य कनेक्शनों के लिए आउटबाउंड नेटवर्क ट्रैफ़िक की निगरानी करने से कभी-कभी डीजीए द्वारा उत्पन्न सी2 संचार का पता चल सकता है।
के प्रमुख घटक load_libraries.py (ग्राफल्गो से)
download_remote_content(): यह निर्दिष्ट यूआरएल से फ़ाइलें लाने का काम संभालता है।run_process(): यह बाहरी पायथन स्क्रिप्ट को अलग तरीके से निष्पादित करता है, और गोपनीयता बनाए रखने के लिए आउटपुट को दबा देता है।get_output_file_path(): यह स्थायी startup.py फ़ाइल के लिए आदर्श सिस्टम स्थान निर्धारित करता है।remove_self(): यह प्रारंभिक दुर्भावनापूर्ण फ़ाइलों और पैकेज संशोधनों के निष्पादन के बाद की सफाई का समन्वय करता है।simple_shift_encrypt()/simple_shift_decrypt(): संचार चैनलों को छिपाने के लिए कस्टम क्रिप्टोग्राफिक फ़ंक्शन, जो डीजीए कार्यान्वयन के लिए महत्वपूर्ण हैं।load_libraries(): यह वह केंद्रीय फ़ंक्शन है जो प्रारंभिक डाउनलोड से लेकर अंतिम पेलोड निष्पादन और सफ़ाई तक की पूरी बहु-चरणीय प्रक्रिया का समन्वय करता है।
परिणाम
MEW द्वारा पहचाने गए अन्य संभावित रूप से दुर्भावनापूर्ण पैकेजों की तरह, निर्भरता फ़ायरवॉल ने इन दुर्भावनापूर्ण पैकेजों को अपनी निर्भरताओं में शामिल करने वाले उपयोगकर्ताओं को तुरंत सुरक्षित कर लिया। पुष्टि के बाद, हमने दोनों रजिस्ट्रियों के लिए अधिसूचना प्रक्रियाओं का पालन किया, जिन्होंने समीक्षा के बाद दोनों पैकेजों को हटा दिया।





