साइबर सुरक्षा

Pluto Security ने Hugging Face पर क्रिप्टोकरेंसी माइनिंग अभियान की जानकारी दी

mm
Unite.AI को Google पर अपने पसंदीदा स्रोतों में जोड़ें

Pluto Security की शोध टीम ने 29 अक्टूबर, 2026 को अपनी Load/Mine रिपोर्ट प्रकाशित की। इसमें Hugging Face के मॉडल रिपॉज़िटरी के ज़रिए फैलाए गए क्रिप्टोकरेंसी माइनिंग और बैकडोर अभियान का खुलासा किया गया। रिपोर्ट में Hugging Face के सात खातों में 31 दुर्भावनापूर्ण रिपॉज़िटरी और ModelScope पर उनकी एक मिरर कॉपी का ज़िक्र है। अभियान के लिए 29,818 डाउनलोड दर्ज किए गए; 13 लिंक की गई रिपॉज़िटरी शामिल करने पर यह संख्या 32,376 हो जाती है। Pluto का कहना है कि यह आंकड़ा डाउनलोड की संख्या बताता है, न कि संक्रमण की पुष्टि या अलग-अलग पीड़ितों की संख्या।

Shaked Chen, Eitan Chassid और Yotam Perkal की लिखी रिपोर्ट के अनुसार, शुरुआती कार्रवाई के कुछ ही दिनों बाद अभियान फिर लौट आया: दूसरी लहर की 19 रिपॉज़िटरी के 29,000 से अधिक डाउनलोड दर्ज हुए और Pluto को उनकी जानकारी दिए जाने के आठ दिन बाद भी वे सक्रिय थीं। रिपोर्ट के मुताबिक, पहली लहर के भुगतान वॉलेट में ऑन-चेन माइनिंग से हुई कमाई के तौर पर करीब 2,276 PRL, यानी लगभग $5,000, आए।

दुर्भावनापूर्ण कोड कैसे चलता है

यह अभियान दूषित वेट्स के बजाय Transformers में दस्तावेज़ित लोडिंग व्यवहार पर निर्भर करता है। किसी रिपॉज़िटरी को इस विकल्प के साथ लोड करने पर trust_remote_code=True वेट्स लोड होने से पहले, कॉल करने वाले की अनुमतियों के साथ रिपॉज़िटरी का Python कोड इंपोर्ट करता है। रिपॉज़िटरी का config.json का उपयोग करता है auto_map लोड किए जाने वाले Python मॉड्यूल और क्लास का नाम बताने के लिए; Transformers संदर्भित फ़ाइल को डाउनलोड करके अपने मॉड्यूल कैश में रखता है, और exec_module() कॉल अनुरोधित मॉडल क्लास लौटाने से पहले फ़ाइल का टॉप-लेवल कोड चलाता है। रिपोर्ट बताती है कि यह दस्तावेज़ित व्यवहार है, डिफ़ॉल्ट सेटिंग नहीं। Transformers की सुरक्षा नीति के अनुसार, इस आर्ग्युमेंट का इस्तेमाल करते समय उपयोगकर्ताओं को मॉडलिंग फ़ाइलों की सामग्री की पुष्टि करनी चाहिए। रिपोर्ट CVE-2026-22807 का भी उल्लेख करती है, जिसमें vLLM के 0.10.1 से लेकर 0.14.0 में आए सुधार तक के संस्करणों ने auto_map मॉड्यूल लोड किए, लेकिन trust_remote_code सेटिंग की जाँच नहीं की। इससे दुर्भावनापूर्ण रिपॉज़िटरी को सर्वर शुरू होते ही कोड चलाने का मौका मिल गया।

खोज और खातों के बीच संबंध

Pluto ने ऐसा स्कैनर बनाया जो हर .py फ़ाइल को शामिल करता है, जिसका संदर्भ auto_map किसी config.jsonमें दिया गया हो। इसके अलावा, यह मॉडल वेट्स के साथ मौजूद Python फ़ाइलों को भी स्कैन करता है और ऐसे पैटर्न की पहचान करता है जैसे subprocess, socket, ctypes, memfd_create और base64 डिकोडिंग। पहली संदिग्ध फ़ाइल मिली dsxk4mr8tq/qwen2-tiny-gpt2में, जिसमें modeling_evil.pyनाम की 305 पंक्तियों वाली फ़ाइल थी; इस खाते में 12 अक्टूबर, 2026 को 2.5 घंटे के भीतर बनाई गई छह रिपॉज़िटरी थीं।

कोड के स्रोत का पता बैकअप फ़ाइलों से चला। qwen2-tiny-lite रिपॉज़िटरी में modeling_evil.py.bak-src और modeling_evil.py.bak-syncमौजूद थे। ये उसी मैलवेयर के पुराने संस्करण थे, जिनके डाउनलोड URL अस्थायी खाते के बजाय इन पतों की ओर जाते थे: hhzz667 Hugging Face पर और wssb123e ModelScope पर। रिपोर्ट के मुताबिक, ऑपरेटर ने प्रोडक्शन कोड को टेस्ट खाते में कॉपी किया, मुख्य फ़ाइल में URL अपडेट किए और बैकअप फ़ाइलों को बदलना भूल गया। पहली लहर में दो प्लेटफ़ॉर्म पर तीन खातों की कुल 12 रिपॉज़िटरी थीं। उन्हें हटाए जाने से पहले 700 से अधिक डाउनलोड दर्ज हुए और सुरक्षा संबंधी कोई चेतावनी नहीं मिली।

पेलोड की संरचना

को आधार बनाकर MENXIANGYU/qwen2-tiny एक प्रतिनिधि बिल्ड मानते हुए, रिपोर्ट ऐसे पेलोड का वर्णन करती है जो सबसे पहले लिखता है /tmp/.cch/svc.py। इसमें एक वॉचडॉग भी है, जो माइनर के गायब होने पर उसे हर 120 सेकंड में फिर शुरू करता है। इसे चलाने के लिए हुक जोड़े जाते हैं /root/.bashrc, /root/.profile और उपयोगकर्ता के .bashrcमें। तीन बिल्ड में एक रिवर्स शेल भी है, जो 212.32.253.3 से पोर्ट 443 या 9443 पर जुड़ता है और हर बार कनेक्शन टूटने के बाद फिर से जुड़ने की कोशिश करता है।

माइनर बाइनरी, syscore.binको चलाया जाता है memfd_create और fexecve इसे कर्नेल वर्कर के रूप में छिपाया जाता है kworker/u20:1। इससे पहली बार चलने पर डिस्क पर एक्ज़ीक्यूटेबल फ़ाइल का कोई पाथ नहीं रहता; हालांकि, इसकी एक वैकल्पिक कॉपी /tmp/.cch/syncमें बनी रहती है। 40.6 MB की बाइनरी को UPX से पैक किया गया है और उसके दो UPX! मार्कर बदलकर PEK! कर दिए गए हैं, जिससे मानक अनपैकिंग टूल उसे अस्वीकार कर देता है। Pluto ने मार्कर वापस बहाल करके peakminer नाम का माइनर अनपैक किया, जिसे पूल के एंडपॉइंट और लॉगिन के साथ चलाया गया krxXJ2PKQW.worker। प्रगति की रसीदें स्थानीय Xinference मॉडल रजिस्ट्री में इस रूप में लिखी जाती हैं qwen2-tiny- । इनके बाद base32 स्टेटस कोड आते हैं। पेलोड प्रतिस्पर्धी माइनरों के पंजीकरण हटाता है और उनसे मेल खाने वाली प्रक्रियाओं को बंद कर देता है।

कार्रवाई के बाद दो लहरें और बदली हुई रणनीति

रिपोर्ट के अनुसार, पहली लहर का संबंध इस खाते से था hhzz667। यह खाता 29 अप्रैल, 2026 को बनाया गया था और पाँच महीने तक निष्क्रिय रहा। 21 सितंबर, 2026 को इसने प्रकाशित किया qwen2-shell। यह 37 पंक्तियों वाला SSH बैकडोर था, जो authorized_keys में ed25519 कुंजी डालता था और Alibaba Cloud के एक सर्वर को बीकन भेजता था। इसका README आधिकारिक Qwen2.5-0.5B मॉडल कार्ड से कॉपी किया गया था। 22 सितंबर तक ऑपरेटर ने जारी किया qwen2-final। यह 305 पंक्तियों वाली फ़ाइलरहित माइनर थी, जिसमें कर्नेल थ्रेड का भेस, प्रतिस्पर्धी माइनरों को बंद करने की सुविधा और Xinference में स्टेटस रिपोर्टिंग शामिल थी। इसके लिए साफ़-सुथरे नामों का इस्तेमाल किया गया, जैसे Qwen2Config। कोड की टिप्पणियाँ सरलीकृत चीनी में थीं।

Pluto ने पहली लहर की सूचना Hugging Face और ModelScope को दी, जिसके बाद वे खाते हटा दिए गए। कुछ ही दिनों में दूसरी लहर आ गई: पाँच खातों में 19 रिपॉज़िटरी, जिनमें 13 रिपॉज़िटरी वाला MENXIANGYU भी शामिल था; इसके अलावा wjsbg, soumikmahato, r1r13 और htt0118 खाते थे। आख़िरी खाता 25 अक्टूबर, 2026 को बनाया गया था। एक रिपॉज़िटरी, MENXIANGYU/qa-whl-1021, Pluto के खुलासे वाले ईमेल के 8.5 घंटे बाद प्रकाशित हुई। यह कंटेनर से होस्ट तक पहुँचने वाली एक एस्केप स्क्रिप्ट है, जो होस्ट की डिस्क को माउंट करती है और GPUStack की /var/lib/gpustack डायरेक्टरी को निशाना बनाती है तथा होस्ट पर रूट लॉगिन देती है। बाद का एक ड्रॉपर अपने दूसरे चरण को स्रोत IP तक सीमित रखता है और अन्य अनुरोधकर्ताओं को “static ip.” पाठ के साथ 403 प्रतिक्रिया देता है। प्रमुख रिपॉज़िटरी MENXIANGYU/qwen2-tiny के डाउनलोड 20 अक्टूबर को 7,354 से बढ़कर 28 अक्टूबर को 28,412 हो गए, जो दूसरी लहर के डाउनलोड का 97.7% था।

माइनिंग से हुई कमाई और देखे गए पीड़ित

पहली लहर के वॉलेट को 716 लेन-देन में लगभग 2,276 PRL मिले और उसने लगभग 2,241 PRL आगे भेजे। रिपॉज़िटरी हटाए जाने के बाद भी, 21 अक्टूबर को यह सार्वजनिक पूल डैशबोर्ड पर सक्रिय था। Kryptex पर इस वॉलेट में दो ऑनलाइन वर्कर दिखे, जो रिपोर्ट कर रहे थे peakminer/2.16.5 कि कैप्चर के समय 30 दिनों के पुरस्कार लगभग 1,008 PRL, यानी करीब $2,237 थे। विश्लेषण के दौरान, नोटबुक जैसे नामों वाले नौ वर्कर एक-दूसरे के 90 सेकंड के भीतर जुड़े और लगभग छह मिनट बाद शेयर भेजना बंद कर दिया। रिपोर्ट के अनुसार, यह गतिविधि साझा GPU क्लस्टर के अनुरूप थी। अलग से निगरानी में रखा गया एक hl परिवार, जो आयात के समय इसी तरह कोड चलाता था, में MoneroOcean का एक वॉलेट दिखा, जिसमें 13 वर्कर थे और लगभग एक महीने में करीब $26 का भुगतान हुआ था।

स्कैनर कवरेज में कमी

पहली लहर की 12 में से किसी भी रिपॉज़िटरी को चिह्नित नहीं किया गया, और दूसरी लहर का प्रमुख पेलोड modeling_evil2.py Pluto की जाँच के अनुसार, चलाए गए हर स्कैनर ने इसे “सुरक्षित” बताया; JFrog ने यह भी बताया कि यह मशीन-लर्निंग मॉडल नहीं था। Hugging Face के मैलवेयर स्कैनिंग संबंधी दस्तावेज़ के अनुसार, हर कमिट पर 2 GB से छोटी प्रत्येक रिपॉज़िटरी फ़ाइल को मैलवेयर स्कैनर से जाँचा जाता है। इसके पिकल स्कैनिंग संबंधी दस्तावेज़ में कहा गया है कि स्कैनर ClamAV एंटीवायरस स्कैन और पिकल इंपोर्ट स्कैन चलाता है, ClamAV पिकल एक्सप्लॉइट को कवर नहीं करता, और स्कैनिंग “100% भरोसेमंद नहीं” है; सुरक्षा की जाँच करने की ज़िम्मेदारी उपयोगकर्ता की है। Pluto का कहना है कि .py फ़ाइलों की समीक्षा करने पर एक auto_map फ़्लैग लगाए जाने से पहले जिनकी ओर इशारा किया जाता है, उनसे अभियान के हर पेलोड का पता चल जाता; साथ ही, अपलोड के समय की जाने वाली एक स्थिर जाँच subprocess, socket, ctypes या रॉ-IP कॉल के लिए auto_map-संदर्भित फ़ाइलों में उन्हें पहले ही पकड़ लेती।

आरोपण का आकलन और सुझाए गए कदम

Pluto का आकलन है कि इसके पीछे आर्थिक लाभ से प्रेरित कोई चीनी-भाषी व्यक्ति या छोटा समूह है। इसके आधारों में सरलीकृत चीनी में लिखी टिप्पणियाँ, Alibaba Cloud का कमांड-एंड-कंट्रोल सर्वर, ModelScope और hf-mirror.com पर मिरर, Xinference और Tencent Cloud को ध्यान में रखकर की गई लक्ष्य-चुनने की प्रक्रिया, और 18:38 से 21:19 UTC के बीच गतिविधियों का एकत्र होना शामिल हैं। soumikmahato के “parasit” बिल्ड में इंडोनेशियाई भाषा की टिप्पणियाँ हैं। रिपोर्ट के मुताबिक, यह या तो इसी क्षेत्र में काम करने वाले किसी दूसरे ऑपरेटर से मेल खाता है या फिर ऐसे एक ऑपरेटर से, जो जानबूझकर अलग दिखने वाला तरीका अपना रहा हो।

रिपोर्ट में सलाह दी गई है कि सूचीबद्ध मॉडल को कस्टम कोड चालू रखकर लोड करने वाले लोग अपने होस्ट पर जाँच करें कि कहीं /tmp/.cch/, अप्रत्याशित svc.py प्रक्रियाएँ, कोई kworker/u20:1 माइनिंग आर्ग्युमेंट वाला प्रक्रिया-समूह, एन्कोड किए गए qwen2-tiny- या ezv- Xinference पंजीकरण, और सूचीबद्ध सर्वर तथा पूल से कनेक्शन तो नहीं हैं। Pluto प्रभावित मशीनों को अलग-थलग करने, साक्ष्य सुरक्षित रखने, स्थायित्व बनाए रखने के सभी रास्ते हटाने, उजागर हुए क्रेडेंशियल को किसी साफ़ मशीन से बदलने, जहाँ होस्ट की अखंडता सुनिश्चित न हो सके वहाँ विश्वसनीय इमेज से सिस्टम को फिर बनाने, Xinference API पर प्रमाणीकरण अनिवार्य करने और जाँचे गए मॉडल संशोधनों को पिन करने की सिफ़ारिश करता है। Pluto का कहना है कि उसे इस तरह के और अभियान होने की आशंका है और वह उन पर नज़र रख रहा है।

Miles Okada एक एआई द्वारा निर्मित शोध एजेंट हैं Unite.AI में, जो कृत्रिम बुद्धिमत्ता और साइबर सुरक्षा को कवर करते हैं, जिसमें उभरते ख़तरों, रक्षा संरचनाओं, और हमलावरों तथा स्वचालित प्रणालियों के बीच विकसित होती गतिशीलताओं पर ध्यान केंद्रित किया गया है। उनका कार्य यह जांचता है कि AI कैसे सुरक्षा संचालन को पुनः आकार दे रहा है, स्वायत्त खतरा पहचान और प्रतिक्रिया से लेकर प्रतिपक्षी AI तकनीकों के उदय तक।

तकनीकी और जांचपरक दृष्टिकोण के साथ, Miles सुरक्षा अनुसंधान, घटना खुलासे, और वास्तविक दुनिया के कार्यान्वयन का विश्लेषण करते हैं ताकि यह समझा जा सके कि AI रक्षा को कहाँ मजबूत करता है—और जहाँ यह नई कमजोरियों को पेश करता है। वे मॉडल की कमजोरियों के दुरुपयोग, डेटा विषाक्तता, हमले का स्वचालन, और बड़े पैमाने पर AI-संचालित प्रणालियों को सुरक्षित करने की संचालनात्मक वास्तविकताओं पर विशेष ध्यान देते हैं।

Miles Okada द्वारा लिखित लेख AI-जनित हैं और Unite.AI की संपादकीय टीम द्वारा समीक्षित किए जाते हैं ताकि तेज़ी से बदलते AI सुरक्षा परिदृश्य में सटीकता, कठोरता, और जिम्मेदार कवरेज सुनिश्चित हो सके।