TL; ड
२०२६-०५-२१ मा, npm प्रकाशक jaggle नौ संस्करणहरू जारी गरियो (1.0.0 मार्फत 1.0.8) को @jaggle/resizeobserves लगभग दुई घण्टाको झ्यालमा।
प्याकेज वैध गलत प्रयोग हो @juggle/resize-observer पोलिफिल — लाखौं साप्ताहिक डाउनलोडहरू भएको व्यापक रूपमा प्रयोग हुने प्याकेज — तर यसमा वास्तविक ResizeObserver कार्यान्वयन हुँदैन।
बरु, प्याकेजको पोस्टइन्स्टल हुक बन्डल गरिएको पाइथन पेलोड स्थापना गर्दछ, प्लेटफर्म-नेटिभ देखिने रनटाइम ब्रोकरको रूपमा पर्सिस्टन्स दर्ता गर्दछ, र क्रिप्टोकरेन्सी लेनदेनहरूलाई लक्षित गर्दै क्रस-प्लेटफर्म क्लिपबोर्ड अपहरणकर्ता तैनाथ गर्दछ।
लिनक्स दृढता यस्तो देखिन्छ python3-dbus-helper, MacOS as com.apple.python.runtime, र Windows as PyRuntimeBroker.
पेलोडले वालेट ठेगानाहरूको लागि क्लिपबोर्डलाई निरन्तर निगरानी गर्दछ ४० भन्दा बढी ब्लकचेनहरू र चुपचाप प्रतिलिपि गरिएका ठेगानाहरूलाई आक्रमणकारी-नियन्त्रित वालेटहरूले प्रतिस्थापन गर्दछ।
यो मालवेयर पूर्ण रूपमा स्थानीय रूपमा सञ्चालन हुन्छ र यसमा कुनै आउटबाउन्ड C2 पूर्वाधार हुँदैन, जसले गर्दा क्लिपबोर्ड प्रतिस्थापन नै एक्सफिल्ट्रेसन संयन्त्र हो।
प्राथमिक IOC प्याकेजको नाम नै हो: @jaggle/resizeobserves — “jaggle” मा घटाइएको स्वर र “resizeobserves” मा थपिएको “s” लाई ध्यान दिनुहोस्।
गम्भीरता: उच्च।
आक्रमण: यो कसरी काम गर्छ
npm: @jaggle/resizeobserves क्याजुअलमा मालवेयर जस्तो देखिँदैन npm दृश्य। यसको README.md को शब्दशः README हो npm: @juggle/रिसाइज-अवलोकनकर्ता — उही कोड नमूनाहरू, उही प्रयोग निर्देशनहरू, उही '@juggle/resize-observer' बाट {ResizeObserver } आयात गर्नुहोस् सन्दर्भहरू सबैतिर। साहित्यिक चोरी यति पूर्ण छ कि कागजातहरू हेर्दा जो कोहीले पनि मान्नेछ कि उनीहरूले वैध प्याकेजको कागजातहरू पढिरहेका छन्।
यो package.jsonयसको विपरीत, विरल छ: होइन भण्डार क्षेत्र, एकल छु प्रविष्टिलाई संकेत गर्दै bin/clipboard-guardian.jsर स्थापना पछि चल्ने स्क्रिप्ट नोड npm-install.js। README को "आधारभूत प्रयोग" उदाहरणहरूले टार्बलमा कतै नभएको जाभास्क्रिप्ट कार्यान्वयनलाई सन्दर्भ गर्दछ। प्याकेजमा रहेको जाभास्क्रिप्ट मात्र स्थापना स्क्रिप्ट हो।
चरण १ — npm पोस्टइन्स्टलले पाइथन पेलोडलाई बुटस्ट्र्याप गर्छ
npm-install.js मा प्लेटफर्म-सचेत छ। यसले पत्ता लगाउँछ a PIP निश्चित खोज मार्गमा कार्यान्वयनयोग्य (/usr/bin/pip3, /usr/स्थानीय/बिन/पिप, मा फर्कनु पाइथन३ -एम पिप), टार्बल डाइरेक्टरीबाट बन्डल गरिएको पाइथन प्याकेज स्थापना गर्दछ, र — लिनक्समा — तान्दछ xclip or एक्ससेल मार्फत apt-get, Pacmanवा dnf यदि दुवै पहिले नै उपस्थित छैनन् भने:
को प्रयोग -ब्रेक-सिस्टम-प्याकेजहरू जानाजानी गरिएको छ: आधुनिक लिनक्स वितरणहरूले PEP 668 को बाह्य-व्यवस्थित-वातावरण मार्कर सक्षम पारेर पाइथन पठाउँछन्, जसले पूर्वनिर्धारित रूपमा साइट-व्यापी पाइप स्थापनाहरूलाई रोक्छ। स्थापना स्क्रिप्टले स्थापनालाई बाध्य पार्छ।
स्क्रिप्ट पनि sudo-aware छ। जब चलिरहेको uid a को परिणाम हो sudo npm स्थापना गर्नुहोस्, स्क्रिप्ट पढ्छ SUDO_USER लाई र गोलाहरू बाहिर निस्कन्छ गेटेन्ट पासवर्ड पत्ता लगाउन वास्तविक प्रयोगकर्ताको गृह निर्देशिका, त्यसपछि यसको पर्सिस्टन्स फाइलहरू त्यहाँ लेख्छ, भित्र नभई / जरा। पर्सिस्टन्स प्रति प्रयोगकर्ता हो, प्रणालीव्यापी होइन।
चरण २ — रनटाइम-ब्रोकर नामहरू अन्तर्गत क्रस-ओएस दृढता
पाइथन प्याकेज स्थापना भएपछि, स्क्रिप्टले प्रत्येक अपरेटिङ सिस्टममा फरक नाम अन्तर्गत स्वतः-सुरुवात प्रविष्टि दर्ता गर्दछ:
- लिनक्स — मा एक systemd प्रयोगकर्ता एकाइ ~/.config/systemd/user/python3-dbus-helper.service। युनिटको विवरण is पाइथन डी-बस रनटाइम हेल्परस्क्रिप्टले यसलाई मार्फत पनि सक्षम पार्ने प्रयास गर्दछ systemctl - प्रयोगकर्ता सक्षम गर्नुहोस्, अन्तर्गत म्यानुअल सिमलिङ्कमा फर्कँदै पूर्वनिर्धारित.टार्गेट.वान्ट्स/ जब systemctl असफल हुन्छ। यदि sudo अन्तर्गत चलिरहेको छ भने, स्क्रिप्टले सुडो -यू systemctl -प्रयोगकर्ता, संग XDG_RUNTIME_DIR को बारेमा प्रयोगकर्ता-बस कलले काम गर्ने गरी सेट गर्नुहोस्।
- MacOS — LaunchAgent plist मा ~/लाइब्रेरी/लन्चएजेन्ट्स/com.apple.python.runtime.plist संग रनएटलोड = सत्य र जीवित राख्नुहोस् = सत्य, त्यसपछि मार्फत लोड गरियो लन्चसीटीएल लोड.
- Windows — PyRuntimeBroker नामक एक अनुसूचित कार्य, शून्यको कार्यान्वयन समय सीमा (अर्थात्, कुनै टाइमआउट छैन) संग, AtLogOn ट्रिगर गरियो, PowerShell मार्फत दर्ता गरियो।
तीनै नामहरू एक नजरमा विश्वसनीय छन्। पाइथन३-डीबस-सहायक लिनक्स डेस्कटपहरूमा वैध पाइथन-डी-बस एकीकरणको नामकरण कन्भेन्सनलाई पछ्याउँछ। com.apple.python.runtime मा जानुहोस् आफ्नै सेवाहरूको लागि एप्पलको रिभर्स-DNS लेबलिंगको नक्कल गर्दछ। पाइरनटाइमब्रोकर विन्डोजको प्रतिध्वनि गर्दछ रनटाइमब्रोकर.एक्सई — एउटा वास्तविक, हस्ताक्षरित माइक्रोसफ्ट सेवा जसले UWP एपहरूको लागि अनुमति अनुरोधहरू दलाल गर्दछ। यस सन्दर्भमा यी मध्ये कुनै पनि वास्तविक एप्पल/माइक्रोसफ्ट/पाइथन सेवाहरू होइनन्, तर द्रुत दृश्य स्क्यान गर्ने डिफेन्डर systemctl - प्रयोगकर्ता सूची-एकाइहरू or कार्यतालिका बनाउनुहोस् झर्किने सम्भावना छैन।
चरण ३ — क्लिपबोर्ड अपहरणकर्ता
पाइथन पेलोड, मा स्थापित क्लिपबोर्ड_गार्डियन/गार्डियन.py, प्रत्येक ४०० मिलिसेकेन्डमा प्रणाली क्लिपबोर्डमा अनन्त लूप पोलिंग चलाउँछ। प्रत्येक टिकमा, यसले हालको क्लिपबोर्ड सामग्रीहरू मार्फत तान्छ पाइपरक्लिप.पेस्ट() र तिनीहरूलाई Ethereum, Bitcoin, Monero, Solana, TRON, TON, Ripple, Litecoin, Dogecoin, Polkadot, NEAR, Cosmos, Algorand, Stellar, Cardano, Bitcoin Cash, Dash, Zcash, Aptos, Sui, Tezos, MultiversX, Harmony, Terra, Injective, Osmosis, Kava, Celestia, Nano, Filecoin, Ronin, Ergo, DigiByte, Hedera, BNB Smart Chain, र धेरै अन्यहरूका लागि वालेट-ठेगाना ढाँचाहरू समेट्ने चालीस भन्दा बढी पूर्व-संकलित नियमित अभिव्यक्तिहरूको सूची विरुद्ध चलाउँछ जुन पूर्वनिर्धारित कन्फिगरेसनमा स्टब गरिएको तर खाली छ (Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin)।
जब खेल अवतरण हुन्छ, स्क्रिप्टले त्यो चेनको लागि आक्रमणकारीको ठेगाना पढ्छ ~/.config/clipboard-guardian/config.json (वा यसको प्लेटफर्म समकक्षहरू) र प्रतिस्थापन गरिएको पाठको साथ क्लिपबोर्ड अधिलेखन गर्दछ:
कुनै नेटवर्क बीकन छैन। क्लिपरले घरमा फोन गर्दैन, संक्रमित होस्टहरू दर्ता गर्दैन, केहि पनि एक्सफिल्टर गर्दैन। एक्सफिल्टरेशन भनेको प्रतिस्थापन नै हो: जब प्रयोगकर्ताले आफ्नो वालेट UI बाट प्राप्तकर्ताको ठेगाना प्रतिलिपि गर्छ र पठाउने संवादमा टाँस्छ, टाँसिएको ठेगाना अपरेटरको हुन्छ। रकमहरू इन-ब्यान्डमा हराउँछन्, पारदर्शी रूपमा प्रयोगकर्ताको लागि।
यहाँ के नयाँ छ?
जेनेरिक क्रिप्टो-क्लिपर टेम्प्लेटको तुलनामा केही विवरणहरू फरक देखिन्छन्:
१. npm → पाइथन क्रसओभर। npm मा हामीले देख्ने धेरैजसो क्रिप्टो-क्लिपरहरू शुद्ध जाभास्क्रिप्ट हुन्, जसलाई प्रायः अस्पष्ट पारिन्छ _५१२२x एरे रोटेशन वा इभल(एटब(…)) स्ट्याकहरू। यो नमूनाले npm टार्बललाई पाइथन प्याकेजको लागि डेलिभरी र्यापरको रूपमा प्रयोग गर्दछ - सफा पाइथन - र pip लाई निर्भरता स्थापना ह्यान्डल गर्न दिन्छ (पाइपरक्लिप, प्सुटिल, वैकल्पिक सेटप्रोक्टाइटल) बन्डलमा घोषित pyproject.toml। पराजित गर्न कुनै जाभास्क्रिप्ट अस्पष्टता छैन। क्लिपर आफैंमा सादा, पढ्न सकिने पाइथन हो।
२. प्रशंसनीयताको लागि छनौट गरिएका ट्राइ-ओएस पर्सिस्टन्स लेबलहरू। धेरै क्रस-प्लेटफर्म स्थापनाकर्ताहरूले सामान्य नामहरू अन्तर्गत दृढता दर्ता गर्छन् (अपडेटर.सेवा, सहयोगी.प्लिस्ट)। यो नमूनाले प्रत्येक OS मा प्लेटफर्म-नेटिभ रनटाइम ब्रोकरहरूसँग मिल्दोजुल्दो लेबलहरू छनौट गर्न झन्झट लिन्छ। नामकरण भनेको चोरीको एक मात्र प्रयास हो - त्यहाँ कुनै रुटकिट छैन, कुनै प्रयोगकर्ताल्याण्ड लुकाइएको छैन, कुनै मार्ग अस्पष्ट छैन। शर्त यो हो कि डिफेन्डरहरूले विरलै अडिट गर्छन्। ~/.config/systemd/प्रयोगकर्ता/ र त्यो सेवा नामको पाइथन३-डीबस-सहायक सामान्य समीक्षामा देखिने छैन।
३. प्रक्रिया-शीर्षक भेष वास्तविक छ, तर विश्लेषण-विरोधी सुषुप्त छ। पाइथन पेलोडले परिभाषित गर्दछ a _भेष_प्रक्रिया() प्रकार्य जसले प्रक्रिया शीर्षक मार्फत सेट गर्दछ सेटप्रोक्टाइटल (लिनक्स/म्याकोस) वा सेटकन्सोलशीर्षकडब्ल्यू (विन्डोज) — र मुख्य () भन्छ। त्यसैले PS aux देखाउने छ पाइथन३-डीबस-सहायक सट्टामा पाइथन३ …/guardian.py। यद्यपि, उही मोड्युलले परिभाषित गर्दछ मनिटर_चलिरहेको_छ() ज्ञात प्रक्रिया-निगरानी उपकरणहरूको गणना गर्ने प्रकार्य (htop, btop का थप वस्तुहरू, कार्य प्रबन्धक, गतिविधि मनिटर, प्रक्रिया ह्याकर, स्रोत मनिटर, GNOME / KDE / Xfce / MATE प्रणाली मनिटरहरू, र यस्तै) — र मुख्य () यसलाई कहिल्यै बोलाउँदैन। प्रयोगकर्ताले प्रक्रिया मनिटर खुला राखेको छ वा छैन, प्रतिस्थापन लूप बिना शर्त चल्छ। प्रकार्य पठाइएको संस्करणमा मृत कोड हो। यो सम्भवतः पहिलेको पुनरावृत्तिबाट बचेको हो, वा अझै तार नभएको सुविधाको लागि मचान हो। जे भए पनि, प्रकाशित पेलोडको विश्लेषण विरोधी सतह एक प्रक्रिया-शीर्षक पुन: नामाकरण हो, सक्रिय मनिटर चोरी होइन।
४. बन्डल गरिएको कन्फिग-मर्ज व्यवहार। npm-install.js मा पूर्वनिर्धारित वालेट सूची लेख्छ ~/.config/clipboard-guardian/config.json र, यदि कन्फिग फाइल पहिले नै अवस्थित छ भने, कुनै पनि कुञ्जीहरूमा मर्ज हुन्छ जसको अवस्थित मान खाली छ। यसको मतलब एक प्रयोगकर्ता जो पहिले संक्रमित भएको छ र आंशिक रूपमा कन्फिग सफा गरेको छ - मानौं, खाली गरेर ethereum मान — प्रत्येक पछिल्ला मालिसियस प्याकेज स्थापनाद्वारा यसलाई पुन: भरिनेछ। कुनै पनि कोड मार्गमा पर्सिस्टन्स फाइलको कुनै सफाई छैन।
| मिति / समय (UTC) | घटना |
|---|---|
2026-05-21 18:50:32 | @jaggle/resizeobserves@1.0.0 प्रकाशित भयो। |
2026-05-21 19:55:55 | 1.0.1 प्रकाशित — बाह्य स्क्यानिङद्वारा फ्ल्याग गरिएको पहिलो संस्करण। |
2026-05-21 19:58:10 | 1.0.2 प्रकाशित भयो। |
2026-05-21 20:05:03 | 1.0.3 प्रकाशित भयो। |
2026-05-21 20:09:24 | 1.0.4 प्रकाशित भयो। |
2026-05-21 20:13:48 | 1.0.5 प्रकाशित भयो। |
2026-05-21 20:41:52 | 1.0.6 प्रकाशित भयो। |
2026-05-21 20:43:56 | 1.0.7 प्रकाशित — थप्छ a try/catch वालेट-कन्फिग लेख्ने चरण वरिपरि र्यापर npm-install.js. |
2026-05-21 20:46:15 | 1.0.8 प्रकाशित — स्थापनाकर्ताको नाम परिवर्तन गरियो npm-install.js → npm-install.cjs (बाइट-समान सामग्री)। |
2026-05-22 | फैसला र IOC प्रकाशित। संस्करणहरू अझै पनि प्रकाशन समयमा रजिस्ट्रीमा जीवित छन् (चालु)। |
एक घण्टा छप्पन मिनेटमा नौ संस्करणहरू टाइपोस्क्वाटको लागि पनि छिटो छ। ढाँचा a सँग मिल्दोजुल्दो छ प्रकाशित गर्नुहोस् र जलाउनुहोस् अभियान — रजिस्ट्रीलाई एउटै ह्यान्डलमुनि भर्नुहोस्, पत्ता लगाउने काम सुरु गर्नुहोस्, र एउटै संस्करण हटाएपछि नयाँ ह्यान्डलमा सार्नुहोस्। दौडमा देखिने डेल्टाहरू कस्मेटिक छन्: १.०.१ ले स्पष्ट थप्यो। /usr/bin/pip3-शैली पाइप खोज सूचीमा पथहरू (sudo-compatibility), १.०.७ ले वालेट-कन्फिग लेखनलाई प्रयास/क्याचमा बेर्यो, र १.०.८ ले स्थापनाकर्तालाई पुन: नामाकरण गर्यो .js लाई .cjs यसको सामग्री बाइट-समान राख्दै। द .cjs स्पष्ट बिना प्याकेजहरूमा अस्पष्ट मोड्युल रिजोल्युसनको बारेमा npm चेतावनीहरू सहित ट्र्याकहरूको नाम परिवर्तन गर्नुहोस् "प्रकार" फिल्ड, र ध्यान आकर्षित गर्न सक्ने स्थापना-समयको आवाजलाई दबाउने प्रयास हुन सक्छ। पाइथन पेलोड - वास्तवमा चोरी गर्ने एक मात्र भाग - सबै नौ संस्करणहरूमा अपरिवर्तित छ।
सम्झौताका सूचकहरू
प्याकेजहरू
| पारिस्थितिकी तंत्र | प्याकेज | संस्करण | स्थिति |
|---|---|---|---|
| npm | @jaggle/resizeobserves | 1.0.0 मार्फत 1.0.8 | प्रकाशनमा प्रत्यक्ष; हटाउन अनुरोध गरियो। |
फाइलहरू र ह्यासहरू
| मार्ग | टिप्पणीहरू |
|---|---|
clipboard_guardian/guardian.py(md5 f7935c2c82bc881288611ab6cd634f17) | सबै नौ प्रकाशित संस्करणहरूमा समान (1.0.0 मार्फत 1.0.8)। क्लिपर पेलोड। |
npm-install.js (1.0.0 – 1.0.7)npm-install.cjs (1.0.8) | पर्सिस्टन्स इन्स्टलर; उही एन्ड-टु-एन्ड व्यवहार। 1.0.7's .js र 1.0.8's .cjs बाइट-समान छन्। |
~/.config/clipboard-guardian/config.json | लिनक्स पर्सिस्टन्स कन्फिग र वालेट बन्डल। |
~/Library/Application Support/clipboard-guardian/config.json | macOS पर्सिस्टन्स कन्फिग र वालेट बन्डल। |
%APPDATA%\clipboard-guardian\config.json | विन्डोज पर्सिस्टन्स कन्फिग र वालेट बन्डल। |
~/.config/systemd/user/python3-dbus-helper.service | लिनक्स स्वतः सुरु हुने स्थिरता। |
~/Library/LaunchAgents/com.apple.python.runtime.plist | macOS LaunchAgent को निरन्तरता। |
~/Library/Logs/com.apple.python.runtime.log | एजेन्टको लागि macOS stdout/stderr लग। |
Scheduled Task PyRuntimeBroker | विन्डोज अटो-स्टार्ट कार्य (AtLogOn, कुनै समय समाप्ति छैन)। |
व्यवहार सूचकहरू
| संकेत | विवरण |
|---|---|
pip install --break-system-packages npm पोस्टइन्स्टलबाट | PEP ६६८ सुरक्षाहरू बाइपास गरेर साइट-व्यापी पाइथन स्थापनालाई बल दिन्छ। |
apt-get install -y xclip (वा प्याकम्यान/डीएनएफ) | प्याकेज स्थापनाको क्रममा Linux मा क्लिपबोर्ड उपयोगिताहरू स्थापना गर्दछ। |
python3-dbus-helper.service systemd प्रयोगकर्ता एकाइ | पर्सिस्टन्स एक प्रशंसनीय देखिने रनटाइम-सहायक नाम अन्तर्गत दर्ता गरिएको छ। |
com.apple.python.runtime लन्चएजेन्ट | वैध एप्पल प्रणाली मार्गहरू बाहिर पर्सिस्टन्स लेबल। |
PyRuntimeBroker तालिकाबद्ध कार्य | कुनै वैध स्थापनाकर्ता स्रोत बिना नै नक्कली विन्डोज रनटाइम ब्रोकर दृढता। |
पाइथन प्रक्रिया शीर्षक python3-dbus-helper आयात गर्दै pyperclip र psutil | प्रदर्शित प्रक्रिया नाम र आयातित पुस्तकालयहरू बीच व्यवहारिक बेमेल। |
| वालेट-ठेगानाको प्रतिलिपि पछि क्लिपबोर्ड ~०.४ सेकेन्डमा परिवर्तन हुन्छ | क्रिप्टोकरेन्सी ठेगाना प्रतिस्थापनको हस्ताक्षर व्यवहार। |
आक्रमणकारी वालेट बन्डल (डिफेन्डर हन्टिङ सूची)
वालेट सूची हार्ड-कोड गरिएको रूपमा पठाइन्छ npm-install.js मा र क्लिपबोर्ड_गार्डियन/गार्डियन.py। डिफेन्डरहरूले सूचीलाई ब्लकलिस्ट (कर्पोरेट वालेटहरूबाट यी ठेगानाहरूमा कुनै पनि स्थानान्तरणलाई शंकास्पद मान्नुहोस्) र हन्टिङ कुञ्जी (अप्रमाणित कन्फिग फाइल, बिल्ड आर्टिफ्याक्ट, वा डेभलपर मेसिनमा यी कुनै पनि स्ट्रिङको उपस्थितिलाई संक्रमण सूचकको रूपमा व्यवहार गर्नुहोस्) दुवैको रूपमा प्रयोग गर्न सक्छन्।
आक्रमणकारी वालेट बन्डल
| दल | ठेगाना |
|---|---|
| इथेरियम / BSC | 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18 |
| रोनिन (EVM) | ronin:450c0E58Fc2ba03632d3F5780ad8C966648B6F18 |
| Bitcoin | bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y |
| बिटकोइन नगद | bitcoincash:qqmvyxxklzp7l3eslxavhc8phl6hprdf25lwc29nlt |
| Litecoin | ltc1qnefc8x59a9cwtqnflt8hmqvezqw4hc7lt3fkqe |
| Dogecoin | DNEJmYRZtzyK44tZea4S7wV3otTyRk48Fy |
| ड्यास | XtJ7E6mnhPK93Vib29PGQrTmQjhTTqFwbS |
| Zcash | t1d4hcEnBjdh9X6Wb6R2dxqjnxddJ6ocP8M |
| DigiByte | DPmH2dhiGK3hk3A69tZUMz6tHzGFHBzSrH |
| Monero | 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf |
| Solana | DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5 |
| TRON | TVgEgMemmJABYYnbNr1Wi8bSgADEkdEBt2 |
| टोन | UQDTSkvwmptU9eG988KgxS3WjnYAZlXgfpJxnz4mhWZAvULr |
| लहर | r9tj3cMCiqRijNYqNVYNuwKykkQfS8FE4H |
| polkadot | 1JSkYqXQE4d28HdcmTPhbgCrdiPFTfSHxD67tam16p53oBG |
| निकट | 5d6aec44551529e8cd9ebd3aaa84b3832fc3c7463596b2b6e72635b80096a364 |
| ब्रह्मांड | cosmos1pzfl3kv5g8g0ernj86rwpar08u2zl9suthx28e |
| असमस | osmo1pzfl3kv5g8g0ernj86rwpar08u2zl9surv463t |
| सेलेस्टिया | celestia1pzfl3kv5g8g0ernj86rwpar08u2zl9su6ah6a5 |
| इंजेक्शन | inj1g5xquk8u9wsrvvkn74uq4kxfvejgkmccn578gh |
| काभा | kava1kjfvgcz4q0y9yae2f3pa33vhj2estxxj3sqqux |
| सद्भाव | one19hn0n7dzkhtl9ta9ekv5592s85jwstpka76t3a |
| टेरा | terra1h0dwu8z405jagdlr0fgr9jllac2sxajzlgme5x |
| एल्गोरान्ड | XSAMN3FTB5SUHUQFENBDDRXIMOPNFVLKAWA3RNOU54DWROMDZ6SR7DZ2PI |
| तारामण्डल | GACNZSV4EQO65NZZUOBS3TMJM7GFTSRNKQBVJOX5P2G7U7SEBQ2ZUDJE |
| कार्डानो | addr1qyj050vla4cglmyrgm4vzf3dxtn0gynpks4t7vp7s3lg49e9wt0s94hcztzdgecxcz5hu9uk56q60yth6d66w026s2kq3ma56f |
| MultiverseX | erd1slvlgqsmwzk0c8xtksm4eq5vdfnc26slpzqsyxhz456zvme5rpasue6ge0 |
| उपयुक्त | 0x580ecda1ebd6ca5a46be2097568d013308bd54ef1d147acb880b59f7709f280e |
| सुई | 0xf7e8a9a970fa65c058745c4b2cf2a856cc0283863e4ed1e142648f26097b0c78 |
| नैनो | nano_393n56a5pfz8zg3nkzf7mytfgagzhu5mn9i3xiqg54weq8n1u8jgezxas7dn |
| Filecoin | f1fypyww3xubopfnv7q6yh5l4bko44wmfktf3ckui |
| Tezos | tz1RccjnorHk61bt73ArLXcdgFjEj6T1ochk |
| एरिगो | 9g1pNQGnFg7Hk1d9Z66bgHMkguGU7R41btypAnbG1NF5FJoNdBA |
| हेडर | 0.0.10488092 |
पूर्वनिर्धारित कन्फिगरेसनमा रिजेक्स कभरेज भएका तर खाली वालेट स्लटहरू भएका चेनहरू — Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin, Beacon-Chain BNB — यस निर्माणमा सक्रिय रूपमा प्रतिस्थापन गरिएका छैनन् तर पत्ता लगाइएका छन्। तिनीहरूलाई प्रतिस्थापन दायराको सट्टा अनुगमन दायराको रूपमा व्यवहार गर्नुहोस्।
श्रेय र प्रेरणा
अभियानले पातलो एट्रिब्युसन सतह प्रदान गर्दछ। हामीले अपरेटर पहिचान पुष्टि गर्न सकेका छैनौं। हामी के रेकर्ड गर्न सक्छौं:
- प्रकाशक मेटाडेटा। एनपीएम खाता झगडा गर्नु यसको इमेललाई यसरी सूचीबद्ध गर्दछ olgascarlet@deltajohnsons.com मा इमेल गर्नुहोस्। डोमेन डेल्टाजोहन्सन्स.कम हामीले प्रमाणित गर्न सक्ने कर्पोरेट पहिचानको समाधान गर्दैन। npm खाताले कुनै इमेल प्रमाणीकरण देखाउँदैन र छैन SCM प्रमाणीकरण। त्यहाँ कुनै सम्बद्ध सार्वजनिक GitHub उपस्थिति छैन।
- भण्डार क्षेत्र। यो package.json बोक्दैन भण्डार क्षेत्र। वैध npm: @juggle/रिसाइज-अवलोकनकर्ता हजारौं ताराहरू र सक्रिय समस्याहरू भएको वास्तविक GitHub भण्डारमा औंल्याउँछ। भण्डार लिङ्कको अभाव npm UI मा सबैभन्दा छिटो दृश्यात्मक जानकारी हो।
- साहित्यिक चोरी पढ्नुहोस्। प्याकेज README वैध छ @juggle/रिसाइज-अवलोकनकर्ता बाइट-फर-बाइट README, सहित आयात गर्नुहोस् सन्दर्भ गर्ने उदाहरणहरू @juggle/रिसाइज-अवलोकनकर्ता आफैं (प्रकाशन प्याकेज होइन)। अपरेटरले आयातहरू पुन: लेख्ने प्रयास पनि गरेन - यो एक सामान्य संकेत हो कि रीडमी हटाइएको थियो, अनुकूलित गरिएको थिएन।
- अगाडि बढाउन कुनै पूर्वाधार छैन। त्यहाँ कुनै C2 अन्त्य बिन्दु छैन, DNS लुकअप छैन, IP छैन। दुर्भावनापूर्ण व्यवहार स्थानीय क्लिपर र हार्ड-कोडेड वालेट बन्डलमा पूर्ण रूपमा समेटिएको छ। यसले डोमेन- वा ASN-आधारित पिभोटिंग अनुपलब्ध बनाउँछ। अभियानहरूमा पिभोटिंग गर्ने डिफेन्डरहरूले फाइलमा भएका कुनै पनि पहिलेका क्लिपर विरुद्ध वालेटहरूलाई ह्यास-मिलान गर्नुपर्छ; प्याकेजहरूमा वालेटको पुन: प्रयोग सबैभन्दा ट्र्याक्टेबल क्रस-अभियान लिङ्क हो।
- नामकरणको विकल्प। @jaggle/रिसाइजअवलोकन गर्दछ बाट एक वर्ण टाढा छ @जगल र प्रसिद्धबाट एक इन्फ्लेक्सन रिसाइज-अवलोकनकर्ता। संयुक्त सम्पादन-दूरी दुई ग्लिफ हो। यो जानाजानी गरिएको दृश्य टक्कर हो, सामान्य स्क्वाट होइन।
प्रेरणा, पेलोड व्यवहारमा आधारित: अवसरवादी क्लिपबोर्ड प्रतिस्थापन मार्फत शुद्ध मुद्रीकरण। त्यहाँ कुनै प्रमाणपत्र कटाई छैन, कुनै होस्ट फिंगरप्रिन्टिङ छैन, कुनै वातावरण-चर पठन छैन। अपरेटरलाई पीडित को हो भन्ने वास्ता छैन - उनीहरूलाई वास्ता छ कि पीडितको अर्को स्थानान्तरण सूचीबद्ध ठेगानाहरू मध्ये एकमा बिन्दु हुन्छ। चालीस-श्रृंखला कभरेज कार्यमा लटरी मोडेल हो: कास्ट वाइड, आशा छ प्रति N स्थापना एक पटक एकल उच्च-मूल्य पेस्ट अवतरण हुन्छ।
अपरेटर टेकडाउनसँग चिन्तित नभएको देखिन्छ। एउटै स्कोप अन्तर्गत दुई घण्टा भित्र नौ संस्करणहरू प्रकाशित गर्नु भनेको प्रकाशन-र-बर्न ह्यान्डलको रूपमा पढिन्छ: टेकडाउन विलम्बता समात्नु अघि रजिस्ट्री फुटप्रिन्टलाई अधिकतम बनाउनुहोस्, त्यसपछि अगाडि बढ्नुहोस्। हामीले अवलोकन गरेका छैनौं। @जगल लेख्ने समयमा नयाँ दायरा अन्तर्गत पुन: प्रकाशन गर्दै, तर हामी समान दायराहरू अपेक्षा गर्नेछौं (@जग्गी, @जगल-, @जोगल) यदि अपरेटर अझै सक्रिय छ भने आगामी दिनहरूमा देखा पर्नेछ।
प्रभाव, प्रवृत्ति र रक्षकहरूले के गर्नुपर्छ
प्रभाव
हालको डेटासेटबाट वास्तविक पैसामा प्रभावको परिमाण निर्धारण सम्भव छैन। क्लिपरले कुनै टेलिमेट्री लेख्दैन र विश्लेषण कटअफको रूपमा वालेटहरूले प्रतिस्थापन स्थानान्तरणहरू प्राप्त गरेको अवलोकन गरिएको छैन (सूचीबद्ध चेनहरूको फलो-अप स्वीप हाम्रो सूचीमा छ)। वैध npm: @juggle/रिसाइज-अवलोकनकर्ता सात-अंकको साप्ताहिक डाउनलोडहरूमा औसत राम्रो छ - एक उच्च-ट्राफिक टाइपोस्क्वाट लक्ष्य - र दुर्भावनापूर्ण प्याकेज खुलासाको समयमा २४ घण्टा भन्दा कम समयको लागि लाइभ थियो, जसले खुलासा गरिएको जनसंख्यालाई सीमित गर्दछ तर यसलाई शून्य गर्दैन।
ट्र्याकिङ गर्न लायक ब्लास्ट रेडियस प्रत्यक्ष डाउनलोड होइन @jaggle/रिसाइजअवलोकन गर्दछ — ती सम्भवतः साना छन्। यो **ट्रान्जिटिभ इन्स्टल** हो: एक विकासकर्ताले स्यान्डबक्स प्रोजेक्टमा प्याकेज थप्दै, चलिरहेको छ npm स्थापना, र त्यसपछि स्थापना हुक कहिल्यै चलेको बिर्सँदै। पोस्टइन्स्टल प्रशोधन गर्ने प्रत्येक मेसिनमा अब स्वतः सुरु हुने प्रति-प्रयोगकर्ता क्लिपबोर्ड अपहरणकर्ता हुन्छ, परियोजना अझै डिस्कमा छ कि छैन भन्ने कुराको पर्वाह नगरी। प्याकेज डाइरेक्टरी हटाउँदै node_modules **जिम्मेवारी** हटाउँदैन।
उदीयमान ढाँचाहरू
यस अभियानले दुई प्रवृत्तिहरूको उदाहरण दिन्छ।
npm लाई पाइथन-पेलोड डेलिभरी र्यापरको रूपमा प्रयोग गरिन्छ। npm टार्बल ४-लाइन स्थापनाकर्ता हो; वास्तविक चोरीकर्ता पाइथन हो, जुन प्रणाली-व्यापी रूपमा स्थापित छ PIP बन्डल गरिएको डाइरेक्टरीबाट। यो नयाँ होइन — हामीले पहिले npm प्याकेजहरूले पाइथन छोडेको देखेका छौं — तर यो क्रिप्टो-क्लिपर अभियानहरूमा मापनयोग्य रूपमा सामान्य आकार बन्दै गइरहेको छ। अपरेटरलाई फाइदा दुई गुणा छ: पाइथन क्लिपबोर्ड पुस्तकालयहरू (पाइपरक्लिप ती मध्ये पहिलो) जाभास्क्रिप्ट समकक्षहरू भन्दा सफा र अधिक क्रस-प्लेटफर्म हुन्, र धेरैजसो स्वचालित एनपीएम स्क्यानरहरूले जाभास्क्रिप्ट फाइलहरूलाई धेरै तौल गर्छन् भने पाइथनले .py हल्का रूपमा बन्डलहरू। लागत यो हो कि स्थापना फुटप्रिन्ट धेरै ठूलो छ - एक ताजा pip स्थापना विकासकर्ता मेसिनमा लुकाउन गाह्रो छ जुन सामान्यतया गर्दैन pip स्थापना समयमा npm स्थापना.
प्लेटफर्म-नेटिभ नामहरू मात्र लुकाउने तरिका हुन्। धेरै हालसालैका क्लिपरहरू र साना-पेलोड चोरहरूले कोड-स्तरको अस्पष्टतालाई पूर्ण रूपमा त्यागेर वैध देखिने पर्सिस्टन्स लेबलहरूको पक्षमा लागेका छन्। पाइथन३-डीबस-सहायक, com.apple.python.runtime मा जानुहोस्, र पाइरनटाइमब्रोकर पाठ्यपुस्तकका उदाहरणहरू हुन् — चालीस प्रयोगकर्ता सेवाहरूको सूचीमा डिफेन्डरको आँखाले नामहरू छोड्नेछ। यो चोरीको सस्तो, टिकाउ रूप हो: टेकडाउन प्रति-प्याकेज हो, तर दृढता फाइलहरू टेकडाउनबाट बच्छन्, र वास्तविक देखिने प्लेटफर्म कम्पोनेन्टको नाममा राखिएको सेवा स्पष्ट अडिट बाहेक अरू केहि द्वारा सफा गरिने छैन।
रक्षकहरूले के गर्नुपर्छ?
- अडिट ~/.config/systemd/user/, ~/Library/LaunchAgents/, र Get-ScheduledTask उत्पादन IOC हरूमा सूचीबद्ध प्रविष्टिहरूको लागि विकासकर्ता मेसिनहरूमा। npm प्याकेज हटाउनाले यी ठाउँमा रहन्छन्; तिनीहरूलाई हातले हटाउन आवश्यक छ।
- सूचीबद्ध वालेट ठेगानाहरूमा स्थानान्तरणहरू रोक्नुहोस् कर्पोरेट-ट्रेजरी र DeFi-वालेट सीमाहरूमा जहाँ ठेगाना-अलोलिस्टिङ उपलब्ध छ।
- ~/.config/clipboard-guardian/config.json खोज्नुहोस् (र प्लेटफर्म समकक्षहरू) विकासकर्ता-मेसिन फ्लीटमा। फाइलको उपस्थिति उच्च-विश्वास संक्रमण हो जुन प्याकेज संस्करणले डेलिभर गरेको भए पनि।
- clipboard_guardian/guardian.py को लागि node_modules/ खोज्नुहोस् टेकडाउन भन्दा पहिलेको हुन सक्ने बिल्ड-क्यास स्न्यापसटहरूमा। फाइलको md5 सबै समीक्षा गरिएका संस्करणहरूमा स्थिर छ।
- लकफाइल-पिन @juggle/resize-observer (वैध प्याकेज) त्यसैले भविष्यका स्थापनाहरूले एक-वर्णको गलत प्रकार अन्तर्गत अरू कुनै पनि कुरामा समाधान गर्न सक्दैन, विशेष गरी लकफाइल-रहित कार्यप्रवाहहरूमा जस्तै एनपीएक्स.
- कुनै पनि npm postinstall प्रयोग गरेर pip install प्रयोग गर्नुहोस् उच्च-गम्भीरताको रूपमा निर्माणमा -pipeline नीति। npm प्याकेजलाई स्थापनाको समयमा pip आवश्यक पर्ने कुनै वैध कारण छैन — Python tooling ले Python tooling वितरण गर्दछ।
- पाइपरक्लिप आयात गर्ने पाइथन३-डीबस-हेल्पर नामक प्रक्रियाहरूको लागि process_iter() - तुलनात्मक अनुगमन डेटा खोज्नुहोस्। — डिस्कुएस मिसम्याच (क्लिपबोर्ड लाइब्रेरी समात्ने D-Bus हेल्पर) हामीसँग भएको सबैभन्दा सफा व्यवहारिक सूचक हो।
- संक्रमित मेसिनहरूबाट टाँसिएका वालेट ठेगानाहरू घुमाउनुहोस्। क्लिपबोर्ड अपहरणकर्ताले वालेट UI र पेस्ट लक्ष्य बीचको बाटोमा सम्झौता गर्छ; संक्रमित हुँदा प्रतिलिपि गरिएका ठेगानाहरू चुपचाप परिवर्तन हुन सक्छन्। संक्रमण विन्डोको समयमा पठाइएको कुनै पनि कुरालाई सम्भावित रूपमा गलत निर्देशित रूपमा व्यवहार गर्नुपर्छ।
निष्कर्ष: दृढताले टेकडाउनलाई जित्छ। रजिस्ट्री अन्ततः हट्नेछ @jaggle/रिसाइजअवलोकन गर्दछ सबै नौ संस्करणहरूमा; systemd एकाइ, LaunchAgent, र Scheduled Task ले आफैं हटाउने छैनन्।
सन्दर्भ
- @juggle/resize-observer npm मा — यो टाइपोस्क्वाटले प्रतिरूपण गर्ने वैध प्याकेज; बाइट-फर-बाइट README साहित्यिक चोरीको लागि आधारभूत रूपमा उपयोगी।
- @jaggle/resizeobserves रजिस्ट्री मेटाडेटा — फोरेन्सिक टाइमलाइनिङको लागि उपयोगी, नौ दुर्भावनापूर्ण संस्करणहरूको लागि टाइमस्ट्याम्पहरू प्रकाशित गर्नुहोस्।





