TL, डॉ
PyPI पैकेजों के एक समूह ने नाम उधार लिया uvरस्ट-आधारित पाइथन पैकेज मैनेजर, जो कि एक तेज़ और बेहद लोकप्रिय पैकेज मैनेजर है, को यूवी हेल्पर के रूप में प्रस्तुत किया गया है। इनमें लगभग कोई वास्तविक कार्यक्षमता नहीं है। इसके बजाय, इनमें एक विंडोज पेलोड है जो एक सेटअप तैयार करता है। प्रमाणीकरण बंद किया हुआ JupyterLab सर्वर और, बाद के संस्करणों में, इसे रिवर्स टनल के माध्यम से सार्वजनिक इंटरनेट पर प्रकाशित किया जाता है।
यही पूरी कहानी एक पंक्ति में है: एक भरोसेमंद टूल का नाम प्रलोभन के रूप में, और JupyterLab रिमोट-कोड-एक्जीक्यूशन इंजन के रूप में। एक Jupyter सर्वर आपके द्वारा टाइप किए गए किसी भी कोड को चलाता है।ebook सेल; एक खाली टोकन के साथ लॉन्च किया गया और प्रत्येक नेटवर्क इंटरफ़ेस से बंधा हुआ एक खुला दुभाषिया है जिसे पोर्ट तक पहुंचने वाला कोई भी व्यक्ति चला सकता है।
हम क्लस्टर को ट्रैक करते हैं नकली यूवीजांचे गए दो पैकेज हैं moon-uv (0.0.1-0.0.16) और my-magic-uv-helper (0.0.1), उसी ऑपरेटर द्वारा प्रकाशित किया गया और विश्लेषण के समय PyPI पर लाइव था।
| पारिस्थितिकी तंत्र | PyPI |
| संकुल | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| प्लेटफ़ॉर्म लक्षित | विंडोज |
| मुख्य व्यवहार | अनधिकृत JupyterLab सर्वर, रिवर्स टनल के माध्यम से इंटरनेट पर प्रकाशित। |
| वैध उपकरणों का दुरुपयोग किया गया | यूवी, जुपिटरलैब, क्लाउडफ्लेयर्ड, पिंगी |
इसका आकर्षण: एक ऐसा नाम जिस पर आप पहले से ही भरोसा करते हैं
uv पिछले दो वर्षों में सबसे अधिक स्थापित किए गए पायथन टूल में से एक है, इसलिए "एक सहायक" uv"FauxUV" एक ऐसा पैकेज है जिसे डेवलपर बिना सोचे-समझे इंस्टॉल कर लेता है। FauxUV अपनी विश्वसनीयता पूरी तरह से इसी नाम पर टिकाए रखता है। ये पैकेज... असली uv एस्ट्रल से इंस्टॉलर — पेलोड में मौजूद यूआरएल वास्तविक, प्रतिष्ठित होस्ट की ओर इशारा करते हैं — इसलिए सरसरी नज़र डालने पर केवल विश्वसनीय संदर्भ ही दिखाई देते हैं। इनमें से कोई भी पैकेज वास्तव में कुछ भी नहीं जोड़ता है। uv कार्यक्षमता; नाम ही पूरा छलावा है।
RCE इंजन के रूप में JupyterLab
इस पेलोड का मुख्य हिस्सा एक लॉन्चर है जो सभी सुरक्षा उपायों को हटाकर JupyterLab को शुरू करता है:
jupyter server --with jupyterlab --ip=0.0.0.0 # listen on every interface --ServerApp.token="" # no password, no token --allow_origin='*' # accept cross-origin connections --disable_check_xsrf # allow a remote browser/WebSocket to drive it प्रत्येक ध्वज एक सुरक्षा को हटा देता है, और संलग्न लिपि में उन्हें (मूल चीनी भाषा में) दर्शाया गया है: खाली टोकन "पासवर्ड और टोकन की जांच बंद कर देता है - कोई भी कनेक्ट कर सकता है।" जपयटरलब यह एक वैध डेटा-साइंस आईडीई है, लेकिन नहींebook सेल डिज़ाइन के अनुसार मनमाना कोड निष्पादित करता है। इसे इसी तरह कॉन्फ़िगर किया गया है और इससे जुड़ा हुआ है। 0.0.0.0इसके बाद, यह एक IDE होने के बजाय होस्ट पर एक अनधिकृत रिमोट शेल बन जाता है - इसके लिए किसी कस्टम मैलवेयर बाइनरी की आवश्यकता नहीं होती, बस एक मुख्यधारा का टूल गलत दिशा में इंगित किया गया होता है।
दो सहायक तत्व इसे सुलभ और दोहराने योग्य बनाते हैं:
- एक साइलेंट इंस्टॉलेशन ट्रिगर। शुरुआती संस्करण पॉवरशेल को चलाते हैं - निष्पादन नीति बाईपास से सीधा setup.py on पाइप स्थापित करेंपृष्ठभूमि में त्रुटियों को दबाकर रखा गया है। रंज सामान्य दिखता है। बाद के संस्करण उसी प्रिमिटिव को एक में ले जाते हैं। pip-uv कमांड-लाइन टूल का उपयोग करें — और इंस्टॉलेशन के समय होने वाले ऑटो-रन को पूरी तरह से बंद कर दें।
- एक सार्वजनिक रिवर्स टनल। एक सर्वर पर 0.0.0.0 यह अभी भी केवल उन होस्ट्स द्वारा ही पहुँचा जा सकता है जो मशीन तक रूट कर सकते हैं। एक बंडल मॉड्यूल एक [पिंग्गी] खोलता है।https://pinggy.io/) एसएसएच रिवर्स टनल जो स्थानीय जुपिटर पोर्ट को एक सार्वजनिक पते पर अग्रेषित करता है, जिससे वह सीमा हट जाती है। संलग्न स्क्रिप्ट में क्लाउडफ्लेयर का उपयोग करके एक वैकल्पिक पथ भी शामिल है (टिप्पणीबद्ध रूप में)। क्लाउडफ्लेयर्ड और एक netsh एक ही लक्ष्य को अलग-अलग बुनियादी ढांचे के माध्यम से प्रदर्शित करने के लिए, लिनोड आईपी पर पोर्ट-प्रॉक्सी का उपयोग किया जाता है।
संक्षेप में: पैकेज को इंस्टॉल करें, और एक विंडोज होस्ट पासवर्ड रहित जुपिटर लैब चलाएगा और इसे खुले इंटरनेट पर प्रकाशित करेगा।
फॉक्सयूवी का विकास कैसे हुआ
FauxUV के संस्करणों को तेजी से एक के बाद एक बाजार में उतारा गया, और पेलोड का ट्रिगर बिंदु उनमें बदलता रहा - यह इस बात की याद दिलाता है कि एक चिह्नित संस्करण शायद ही कभी किसी पैकेज लाइन की पूरी कहानी बताता है।
| ट्रेनिंग | संस्करण | ट्रिगर | इससे क्या लाभ होता है |
|---|---|---|---|
| इंस्टॉल-हुक | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py pip install पर | uv install + PATH prepend |
| CLI-रनटाइम | moon-uv 0.0.5 - 0.0.13 | pip-uv आदेश | पासवर्ड रहित जुपिटर लैब लॉन्चर |
| सुरंग | moon-uv 0.0.14 - 0.0.16 | pip-uv आदेश | एक सक्रिय पिंगी रिवर्स टनल |
विशेष रूप से, इंस्टॉलेशन के समय ऑटो-रन हटाया बाद के, अधिक सक्षम संस्करणों में — इसलिए एक स्कैनर जो केवल जीवनचक्र पर आधारित है hooks नई रिलीज़ को इस प्रकार अंक दिए जाएंगे कम जोखिम भरा, बिलकुल उल्टा।
समझौते के संकेतक
पैकेज स्रोत पढ़कर पुष्टि की गई; अंतिम बिंदुओं को चिह्नित किया गया टिप्पणी फ़ाइलों में मौजूद हैं लेकिन विश्लेषित संस्करण द्वारा निष्पादित नहीं किए गए हैं। नेटवर्क संकेतक निष्क्रिय कर दिए गए हैं।
| प्रकार | सूचक |
|---|---|
| कमांड इंस्टॉल करें | powershell -ExecutionPolicy Bypass पीआईपी इंस्टॉलेशन के समय असली यूवी इंस्टॉलर को प्राप्त करना |
| JupyterLab फ़्लैग | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| रिवर्स टनल (सक्रिय) | free[.]pinggy[.]io:443 स्थानीय अग्रेषण 127.0.0.1:8888 |
| टनल होस्ट (टिप्पणी सहित) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| आईपी (टिप्पणी सहित) | 45[.]79[.]134[.]161 (लिनोड) के माध्यम से netsh port-proxy |
| हठ | पहले जोड़ता है %USERPROFILE%\.local\bin उपयोगकर्ता पथ पर |
इन सटीक स्ट्रिंग्स से स्वतंत्र, सचेत करने योग्य व्यवहारिक संकेत: पाइप स्थापित करें जो उत्पन्न करता है powershell -ExecutionPolicy Bypass; कोई ज्यूपिटर लॉन्च संयोजन टोकन="" साथ में –आईपी=0.0.0.0और आउटबाउंड एसएसएच *.पिंग्गी.आईओ किसी डेवलपर या CI मशीन से।
प्रेक्षित व्यवहार और उत्पत्ति
दोनों पैकेज एक ही लेखक और एक ही कार्यप्रणाली साझा करते हैं: एक विश्वसनीय टूल का नाम, केवल विंडोज के लिए प्रतिबंध, त्रुटि-दबाव के साथ पृष्ठभूमि निष्पादन, और प्रतिष्ठित टूल पर निर्भरता ताकि सरसरी नज़र डालने पर केवल प्रतिष्ठित यूआरएल ही दिखाई दें। स्रोत में चीनी भाषा में टिप्पणियां हैं जो सुरक्षा संबंधी संकेतों का स्पष्ट रूप से वर्णन करती हैं; हम उन्हें फ़ाइल में देखे जा सकने वाले कथनों के रूप में रिपोर्ट करते हैं, न कि उद्देश्य के बारे में किसी दावे के रूप में। अनुमति_उत्पत्ति मूल्य और एक colab.bat फ़ाइलनाम Google Colab के लिए प्रचलित अनौपचारिक "शेयर माय लोकल रनटाइम" वर्कफ़्लो को दर्शाता है। स्रोत चाहे जो भी हो, पैकेज किया गया परिणाम एक ही होता है।
रक्षकों के लिए प्रभाव और मार्गदर्शन
कौन-कौन नकली यूवी किरणों के संपर्क में आता है? विंडोज डेवलपर्स और सीआई रनर्स जो पाइप स्थापित करें इनमें से एक पैकेज। पासवर्ड रहित JupyterLab 0.0.0.0 पोर्ट तक पहुँचने वाले किसी भी व्यक्ति के लिए रिमोट कोड निष्पादन संभव है; टनल "पोर्ट तक पहुँचने वाले लोगों" की सीमा को हटा देता है। सर्वर इंस्टॉल करने वाले उपयोगकर्ता के रूप में चलता है, और उस उपयोगकर्ता की फ़ाइलें, टोकन और क्लाउड क्रेडेंशियल प्राप्त करता है।
इसे नजरअंदाज करना आसान क्यों है? प्रत्येक नेटवर्क स्ट्रिंग एक प्रतिष्ठित होस्ट की ओर इंगित करती है — एस्ट्रल, जुपिटरलैब, क्लाउडफ्लेयर्डपिंगगी, कोलाब। हैश करने के लिए कोई मैलवेयर बाइनरी नहीं है और डिकोड करने के लिए कोई अस्पष्ट डेटा नहीं है। प्रतिष्ठा-आधारित और हस्ताक्षर-आधारित स्कैनिंग दोनों ही इसे कम महत्व देते हैं, यही कारण है कि व्यवहार संबंधी प्रश्न उठता है — इस पैकेज को इंस्टॉल करने से मशीन क्या काम करेगी? —वही है जो इसे पकड़ता है।
दिशा निर्देश:
- किसी भी स्थापना-समय का ध्यान रखें powershell -ExecutionPolicy Bypass यह किसी भी यूआरएल को फ़ेच करके बिल्ड-ब्रेकिंग सिग्नल के रूप में कार्य करता है।
- अलर्ट चालू ज्यूपिटर खाली टोकन के साथ लॉन्च किया गया और –आईपी=0.0.0.0यह संयोजन कभी भी वर्कस्टेशन या रनर पर नहीं दिखना चाहिए।
- टनल प्रदाताओं को भेजे जाने वाले आउटबाउंड एसएसएच की निगरानी करें (*.पिंग्गी.आईओ, *.trycloudflare.comडेवलपर और सीआई वातावरण से।
- स्थापित करें uv [इसके आधिकारिक स्रोत से](https://docs.astral.sh/uv/और उन तृतीय-पक्ष "सहायक" पैकेजों के प्रति संशयपूर्ण रहें जो पहले से ही आसानी से स्थापित किए जा सकने वाले टूल को रैप करते हैं।
- अपग्रेड के दौरान निर्भरताओं को पिन करें और उनकी पुनः समीक्षा करें — एक पैकेज लाइन संस्करण दर संस्करण नई क्षमताएं विकसित कर सकती है।



