TL; ड
एकल एनपीएम प्रकाशकले आठ साना प्याकेजहरू पठाए जसको नामहरू ब्लकचेन र वालेट विकासको लागि दैनिक निर्माण ब्लकहरू जस्तै पढिए, base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpers, र crypto-validate-lib। प्रत्येकमा एउटा काम गर्ने उपयोगिता हुन्छ। यद्यपि, त्यो उपयोगिता पछि थपिएको कोडको एक स्व-आह्वान ब्लक हो जुन मोड्युल आयात हुने बित्तिकै चल्छ।
आयात पछि लगभग ३७ सेकेन्ड, त्यो ब्लकले परीक्षण फिक्स्चरको रूपमा भेषमा प्याकेज भित्र पठाइने पेलोडलाई डिकोड गर्छ, प्रयोगकर्ताको गृह निर्देशिका अन्तर्गत लुकेको फाइलमा लेख्छ, प्रत्येक पटक पुन: सुरु गर्न आफैलाई दर्ता गर्छ। login Windows, macOS, र Linux मा, र डिकोड गरिएको स्क्रिप्टलाई एक अलग प्रक्रियाको रूपमा सुरु गर्छ। npm स्थापनाको समयमा यसको बारेमा केहि पनि काम गर्दैन; यो कोड आयात हुन र चल्नको लागि पर्खन्छ, जुन स्थापना भन्दा शान्त क्षण हो।
पेलोड अपारदर्शी छैन। यो प्लेन बेस६४ को रूपमा पठाइन्छ, त्यसैले "परीक्षण फिक्स्चर" डिकोड गर्दा दोस्रो चरण पूर्ण रूपमा पुन: प्राप्ति हुन्छ: a क्रिप्टो-वालेट र गोप्य कुरा चोर्ने व्यक्ति जसले मेसिन निष्क्रिय नहोउन्जेल पर्खन्छ, निजी कुञ्जीहरू र बीज वाक्यांशहरू सङ्कलन गर्छ, प्रत्येक खोजलाई हार्डकोड गरिएको RSA-4096 कुञ्जीले इन्क्रिप्ट गर्छ, र सार्वजनिक IPFS भण्डारणमा पिन गरेर यसलाई एक्सफिल्टर गर्छ, प्रत्येक १२ घण्टामा बिकन ब्याक गर्छ।
हामी क्लस्टरलाई यसरी ट्र्याक गर्छौं फ्यान्टमसिंक। विश्लेषणको समयमा सबै आठ प्याकेजहरू npm रजिस्ट्रीमा लाइभ थिए, एउटै खाता अन्तर्गत प्रकाशित।
| पारिस्थितिकी तंत्र | npm |
| प्याकेजहरू | base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpers, crypto-validate-lib |
| लक्षित प्लेटफर्महरू | विन्डोज, म्याकोस, लिनक्स |
| मुख्य व्यवहार | ढिलाइ भएको, आयात-समय ड्रपर परीक्षण फिक्स्चरको रूपमा लुकाइएको; क्रस-प्लेटफर्म पर्सिस्टन्स स्थापना गर्दछ। |
| पेलोड | क्रिप्टो-वालेट र गोप्य कुराहरू चोर्ने, RSA-4096 इन्क्रिप्शन, सार्वजनिक IPFS पिनिङ मार्फत एक्सफिल्टरेशन |
आक्रमण शरीर रचना
प्रत्येक प्याकेज पहिलो पटक पढ्दा नै अविस्मरणीय देखिन्छ। आधार५८-उपयोगिताहरूउदाहरणका लागि, केही किलोबाइट शून्य-निर्भरता Base58 / Bitcoin-WIF सहायक कोड हो — ठ्याक्कै नामले वाचा गरेको कुरा। सान्दर्भिक कोड बस्छ पछि मोड्युलको मोड्युल.निर्यात, जहाँ फाइलको माथिल्लो भागमा स्किम गर्ने पाठकले हेर्ने सम्भावना कम हुन्छ: एउटा स्व-आह्वान गर्ने प्रकार्य जसले टाइमरको साथ आफैलाई तालिका बनाउँछ।
प्याकेज स्रोतबाट पुनर्निर्माण गरिएको सञ्चालनको श्रृंखला यसरी चल्छ:
1. Package is required() by the host project
2. A self-invoking function schedules a callback ~37,000 ms later (setTimeout)
3. On fire, the callback reads test/fixtures/keypairs.dat (a base64 blob)
4. It base64-decodes that blob into a Node.js script
5. It writes the script to ~/.cache-db/.node-sync/syncd.js (mode 0o700)
6. It installs login-persistence for that script (see below)
7. It spawns "node syncd.js" as a detached processदुई डिजाइन विकल्पहरू फरक देखिन्छन्।
पेलोड परीक्षण फिक्स्चरको रूपमा यात्रा गर्छ। दोस्रो चरण स्पष्ट कोडको रूपमा लेखिएको छैन। यो यसमा रहन्छ परीक्षण/फिक्स्चर/कीपेयर.ड्याट, एउटा base64 फाइल जसको नाम प्याकेजमा मिसिन्छ जसले कुञ्जी जोडीहरू ह्यान्डल गर्ने दाबी गर्छ। टार्बल स्किम गर्ने मानिसलाई, यो नमूना डेटा जस्तो देखिन्छ; संलग्न कोडको लागि, यो डिकोड गर्न र चलाउनको लागि स्क्रिप्ट हो। ड्रपरमा आफैंमा कुनै नेटवर्क ठेगाना छैन — ती दोस्रो चरणमा बस्ने — तर त्यहाँ कुनै अतिरिक्त अस्पष्टता छैन: फिक्स्चर base64 को एकल तह हो, त्यसैले यसलाई डिकोड गर्दै (आधार६४ -d) पूर्ण रूपमा पुन: प्राप्ति गर्दछ सिङ्क गरिएको.जेएस र यसको नेटवर्क व्यवहार। अर्को खण्डले त्यो पुन: प्राप्ति चरणले के गर्छ भनेर बताउँछ।
विस्फोट ढिलो हुन्छ र स्थापनासँग होइन, आयातसँग सम्बन्धित हुन्छ। किनभने ट्रिगर भनेको आवश्यक छ () साथै स्थापना हुकको सट्टा ~३७-सेकेन्डको टाइमर, व्यवहारले जाँचहरूलाई छेउछाउ पुर्याउँछ जसले केवल हेर्छ npm स्थापना चरण, र ढिलाइले धेरै छोटो-आयुका स्यान्डबक्स र CI रनहरू भन्दा बढी टिक्छ। केहि पनि कार्यान्वयन हुँदा, प्याकेज तान्ने स्थापना धेरै समय समाप्त भइसकेको हुन्छ।
डिकोड गरिएको स्क्रिप्ट डिस्कमा भएपछि ~/.cache-db/.node-sync/syncd.js — नियमित क्यास डाइरेक्टरी जस्तै पढ्नको लागि रोजिएको मार्ग — ड्रपरले यसलाई तीनवटै प्रमुख प्लेटफर्महरूमा रिबुट गर्दा पनि जीवित बनाउँछ:
- लिनक्स: स्क्रिप्ट पुन: सुरु गर्ने क्रोन प्रविष्टि। प्रविष्टि अवस्थित क्रोन्ट्याबलाई फिल्टर गरेर स्थापना गरिन्छ grep -v सिङ्क गरियो, जसको साइड इफेक्ट भनेको एउटै नामको लागि greps गर्ने प्लेन सूचीबाट नयाँ प्रविष्टि छोड्नु हो।
- विन्डोज: नाम दिइएको तालिकाबद्ध कार्य विननोडसिंक, १२ मिनेटको अन्तरालमा पुन: चलाउन सेट गरिएको।
- म्याकोस: लेबल गरिएको सुरुवात गरिएको काम com.apple.syncd मा, धेरै प्याकेजहरूमा उपस्थित छ - एउटा लेबल जसले वैध एप्पल प्रणाली सेवाको नक्कल गर्दछ।
त्यसपछि स्क्रिप्ट तुरुन्तै एक अलग प्रक्रियाको रूपमा सुरु हुन्छ, त्यसैले यो आयात कार्यक्रम बाहिर निस्केपछि पनि चलिरहन्छ।
दोस्रो चरणले के गर्छ
फिक्स्चर एकल आधार ६४ तह भएकोले, दोस्रो चरण सफासँग डिकोड हुन्छ र पूर्ण रूपमा पढ्न सकिन्छ। सबै आठ प्याकेजहरूले एउटै स्क्रिप्टको तीन भेरियन्टहरू मध्ये एक बोक्छन्, जसले हेडर टिप्पणीमा आफूलाई पहिचान गर्दछ। phantom syncd v3 — topo durmiente ("स्लीपिङ मोल")। यसको काम क्रिप्टोकरेन्सी-वालेट सामग्री र विकासकर्ता गोप्य कुराहरू चोरेर मेसिनबाट पठाउनु हो। यो यी चरणहरूमा चल्छ:
- 1. मेसिन निष्क्रिय नभएसम्म पर्खनुहोस्। केहि गर्नु अघि, सिङ्क गरिएको.जेएस प्रयोगकर्ता कति समयदेखि निष्क्रिय छ भनेर जाँच गर्छ र केवल एक थ्रेसहोल्ड (लगभग १५ मिनेट) भन्दा बढी मात्र अगाडि बढ्छ — xprintidle ले तपाईंलाई लिनक्समा, आइओरेग macOS मा HIDIdleTime र Windows मा PowerShell आइडल-टाइम क्वेरी। त्यसैले किबोर्डमा कोही नभएको बेला हार्वेस्टिङ हुने गर्छ।
- २. टाढाबाट नियन्त्रित सक्रियता स्विच ल्याउनुहोस्। स्क्रिप्टले काम गर्नु अघि डेड-ड्रपबाट सानो कन्फिग तान्छ। प्राथमिक स्रोत GitHub को सारांश कच्चा URL हो (gist.githubusercontent.com/juang55/…/cfg.txt); त्यो कन्फिग पढेमा मात्र स्क्रिप्ट सक्रिय हुन्छ सक्रिय=१। यदि सारांश उपलब्ध छैन भने, यो सार्वजनिक गेटवेहरू मार्फत प्राप्त गरिएका तीन हार्डकोड गरिएका IPFS सामग्री पहिचानकर्ताहरूमा फिर्ता जान्छ। गेटवे.पिनाटा.क्लाउड, ipfs.io, र क्लाउडफ्लेयर-ipfs.com। यसले अपरेटरलाई तथ्य पछिको हात/निःशस्त्रीकरण नियन्त्रण र टेकडाउन-प्रतिरोधी फलब्याक दिन्छ। (सबैभन्दा सानो संस्करण, पठाइएको क्रिप्टो-मान्यता-लिब, eth-वालेट-सहायकहरू, र सोलाना-कि-उपयोगिताहरू, सारांश तह हटाइएको छ र IPFS पहिचानकर्ताहरूमा मात्र निर्भर गर्दछ।)
- ३. वालेटका सामग्री र गोप्य कुराहरू सङ्कलन गर्नुहोस्। स्क्रिप्टले प्रयोगकर्ताको गृह निर्देशिकामा हिँड्छ — ~/.config/सोलाना, ~/.इथेरियम/किस्टोर, ~/.फाउन्ड्री, ~/.हार्डह्याट, ~ / .ssh, र डेस्कटप/दस्तावेज/डाउनलोड (स्पेनी भाषाको फोल्डर नामहरू सहित), प्लस ~/.env र शेल आरसी फाइलहरू, र समकक्ष AppData विन्डोजमा स्थानहरू। यसले इथरियम निजी कुञ्जीहरू, बिटकोइन WIF कुञ्जीहरू, BIP-39 बीज वाक्यांशहरू, सोलाना किपेयरहरू, इथरियम किस्टोर JSON, SSH कुञ्जीहरू, र गोप्य-असर गर्ने वातावरण चरहरूलाई लक्षित गर्दछ। ठूलो संस्करण (मा अबी-इन्कोड, आधार५८-उपयोगिताहरू, इथ-डेभ) ले पूर्ण २०४८-शब्द BIP-३९ शब्दकोश बोक्छ र नियमित अभिव्यक्तिहरू प्रयोग गर्दछ निकाल्ने यसले पढ्ने कुनै पनि पाठबाट व्यक्तिगत कुञ्जीहरू र मान्य सीड वाक्यांशहरू; दुई साना भेरियन्टहरूले किवर्डद्वारा फाइलहरू मिलाउँछन् (बीउ, मोमोनिक, बटुले, metamask, प्रेत, लेजर, ट्रेजर, …) र सम्पूर्ण फाइलहरू अपलोड गर्नुहोस्।
- ४. सार्वजनिक पिनिङ सेवा मार्फत इन्क्रिप्ट र एक्सफिल्ट्रेट गर्नुहोस्। प्रत्येक खोज होस्ट फिंगरप्रिन्टसँग बन्डल गरिएको छ (प्रयोगकर्ता नाम @ होस्टनाम, प्लेटफर्म, टाइमस्ट्याम्प) र स्क्रिप्टमा एम्बेड गरिएको हार्डकोड गरिएको RSA-4096 सार्वजनिक कुञ्जीसँग इन्क्रिप्ट गरिएको। त्यसपछि इन्क्रिप्टेड रेकर्डलाई IPFS मा पिन गरेर अपलोड गरिन्छ। api.pinata.cloud/pinning/pinJSONToIPFS, हार्डकोड गरिएको पिनाटा एपीआई प्रमाणहरूद्वारा प्रमाणित। जफत गर्न कुनै बेस्पोक C2 सर्भर छैन: चोरी गरिएको डाटा सार्वजनिक विकेन्द्रीकृत भण्डारणमा पार्क गरिएको छ, परिणामस्वरूप सामग्री ह्यासहरू प्रयोग गरेर अपरेटरद्वारा पुन: प्राप्त गर्न सकिन्छ। अपलोडहरू केही सेकेन्डको अनियमित जिटरको साथ स्पेस गरिएको छ, र स्थानीय लग टाइमस्ट्याम्प | कुञ्जी-प्रकार | फिर्ता गरिएको-ह्यास मा राखिएको छ ~/.cache-db/.node-sync/.sl.
- ५. १२ घण्टाको चक्रमा निरन्तर रहनुहोस् र प्रकाश दिनुहोस्। दोस्रो चरणले आफ्नै स्थिरता पुन: स्थापित गर्दछ - लिनक्समा क्रोन प्रविष्टि, एक com.apple.syncd मा macOS मा काम सुरु गरियो, र नाम दिइएको तालिकाबद्ध कार्य विन्डोजनोडसिंक विन्डोजमा — हरेक १२ घण्टामा पुन: चलाउन सेट गरिएको। ध्यान दिनुहोस् यो एउटा हो विभिन्न ड्रपरले स्थापना गरेको विन्डोज टास्कको नाम (विननोडसिंक); दुवै खोज्न लायक छन्।
समय रेखा
आठ प्याकेजहरू २०२६-०७-१३ र २०२६-०७-१४ मा एकैसाथ प्रकाशित भएका थिए। धेरैले एकभन्दा बढी संस्करणहरू बोक्छन्; ड्रपर संस्करणहरूमा समान छ, माथिको सौम्य उपयोगिता कोडको आकार परिवर्तन हुँदा लाइन अफसेटहरू मात्र परिवर्तन हुन्छन्।
| मिति | घटना |
|---|---|
| 2026-07-13 | क्लस्टरमा पहिलो प्याकेजहरू एउटा प्रकाशक अन्तर्गत देखा पर्छन् (solana-key-utils, eth-wallet-helpers, crypto-validate-lib र बाँकीका प्रारम्भिक संस्करणहरू) |
| 2026-07-13 → 07-14 | बाँकी नामहरू र अनुवर्ती संस्करणहरू प्रकाशित; प्रत्येकमा उही संलग्न ड्रपर जहाजहरू |
| 2026-07-14 | सबै आठलाई फ्ल्याग र विश्लेषण गरिएको; प्रत्येक प्याकेज अझै पनि रजिस्ट्रीबाट स्थापना गर्न सकिन्छ |
फटको समयमा, प्रकाशकको रजिस्ट्री प्रतिष्ठा क्लस्टरको सुरुमा लगभग तटस्थबाट पत्ता लगाउने कार्यहरू जम्मा हुँदा कडा रूपमा नकारात्मकमा सर्यो - प्याकेजहरू फ्ल्याग गरिएको अवलोकनयोग्य साइड इफेक्ट, डिजाइन गरिएको सुविधा होइन।
सम्झौताका सूचकहरू
तलका सबै सूचकहरू विश्लेषणको समयमा उपस्थित भएको पुष्टि गरिएको थियो - डिकोडिङद्वारा "दोस्रो-चरण" तालिकाहरूमा भएकाहरू परीक्षण/फिक्स्चर/कीपेयर.ड्याट र बरामद गरिएको पढ्दै सिङ्क गरिएको.जेएस.
फाइलहरू र मार्गहरू
| सूचक | भूमिका |
|---|---|
~/.cache-db/.node-sync/syncd.js | डिकोड गरिएको दोस्रो चरण, मोड ०o७०० सँग लेखिएको |
~/.cache-db/.node-sync/.sl | स्थानीय एक्सफिल्ट्रेसन लग (टाइमस्ट्याम्प | कि-प्रकार | IPFS ह्यास) |
test/fixtures/keypairs.dat | "परीक्षण फिक्स्चर" को रूपमा टार्बल भित्र स्टेज गरिएको बेस६४-इनकोडेड पेलोड |
दोस्रो-चरण नेटवर्क पूर्वाधार (syncd.js बाट पुन: प्राप्ति गरिएको)
| सूचक | भूमिका |
|---|---|
gist.githubusercontent.com/juang55/b298754cb72942b1cdcf02ccd45cde2f/raw/cfg.txt | सक्रियता डेड-ड्रप; कन्फिग पढेमा मात्र स्क्रिप्ट चल्छ active=1 |
Qmcqz3w8j4qFQXDAXAxnrdc2oSX3nzBT4NqtpTqL8mr1ga | IPFS कन्फिग फलब्याक (CID) |
QmdTXoqVmTHY1i4ZWLdLkoQ9YChp5TXPh5cWXwnAYZt5iF | IPFS कन्फिग फलब्याक (CID) |
QmfJkLU5gdCpqbbqEjWYC2anXW9FmuEeSLLeLiHVJKYUjp | IPFS कन्फिग फलब्याक (CID) |
gateway.pinata.cloud, ipfs.io, cloudflare-ipfs.com | कन्फिग फलब्याक ल्याउन प्रयोग गरिने IPFS गेटवेहरू |
api.pinata.cloud/pinning/pinJSONToIPFS | एक्सफिल्ट्रेसन अन्त्य बिन्दु, चोरी भएको डेटा सार्वजनिक IPFS मा पिन गरियो |
| पिनाटा एपीआई कुञ्जी | 13c766575b9270a9825d, हार्डकोड गरिएको एक्सफिल्ट्रेसन प्रमाणपत्र |
दोस्रो-चरण सङ्कलन लक्ष्यहरू (syncd.js बाट पुन: प्राप्ति गरिएको)
| सूचक | भूमिका |
|---|---|
~/.config/solana, ~/.ethereum/keystore, ~/.foundry, ~/.hardhat, ~/.ssh, ~/.env, शेल आरसी फाइलहरू | कुञ्जी र गोप्य कुराहरूको खोजी गरिएका निर्देशिकाहरू/फाइलहरू |
AppData\Roaming\Solana, AppData\Local\ethereum\keystore | विन्डोज समकक्षहरू खोजियो |
| सङ्कलन गरिएका कलाकृतिहरूका प्रकारहरू | ETH निजी कुञ्जीहरू, बिटकोइन WIF, BIP-39 बीज वाक्यांशहरू, सोलाना कुञ्जी जोडीहरू, इथरियम किस्टोर JSON, SSH कुञ्जीहरू, गोप्य env vars |
दृढता कलाकृतिहरू
| प्लेटफर्म | सूचक |
|---|---|
| लिनक्स | क्रोन प्रविष्टि सुरुवात गर्दै syncd.js; फिल्टर गरिएको क्रोन्ट्याब मार्फत स्थापना गरिएको grep -v syncd |
| Windows | निर्धारित कार्य WinNodeSync (ड्रपर) र WindowsNodeSync (दोस्रो चरण) |
| MacOS | सुरुवात गरिएको लेबल com.apple.syncd |
| सबै | दोस्रो चरण १२ घण्टाको चक्रमा दोहोरिन्छ। |
व्यवहार
- स्व-आह्वान गर्ने प्रकार्य पछि थपियो मोड्युल.निर्यात, तालिका बनाउने समय समाप्ति सेट गर्नुहोस् आयातमा ~३७,००० मिलिसेकेन्ड।
- बच्चा_प्रक्रिया स्पोन ("नोड", ) छुट्याइएको विकल्प सेटको साथ।
- दोस्रो चरणमा निष्क्रिय-गेटेड सक्रियता (xprintidle ले तपाईंलाई / आइओरेग HIDIdleTime / PowerShell निष्क्रिय समय; ~१५-मिनेट थ्रेसहोल्ड)।
- प्रति-खोज RSA-4096 इन्क्रिप्सन, त्यसपछि HTTPS पोस्ट सार्वजनिक IPFS पिनिङ API मा।
प्याकेजहरू र संस्करणहरू (npm, प्रकाशक solbuilder_io)
| प्याकेज | संस्करण |
|---|---|
base58-utils | 1.0.0, 1.0.1, 1.0.3 |
abi-encode | 1.0.0, 1.0.1, 1.0.2 |
eth-dev | 1.0.0, 1.0.1, 1.0.2 |
arb-kit | 1.0.0, 1.0.1 |
layer2-sdk | 1.0.0, 1.0.1 |
solana-key-utils | 1.0.0 |
eth-wallet-helpers | 1.0.0 |
crypto-validate-lib | 1.0.0 |
प्रकाशक
- सोलबिल्डर_आईओ - angel_lopez89[@]प्रोटोन[.]म, इमेल अप्रमाणित, कुनै प्रमाणित स्रोत-नियन्त्रण खाता छैन, कुनै लिङ्क गरिएको भण्डार छैन।
विशेषता र अवलोकन गरिएको व्यवहार
आठ प्याकेजहरूले एउटा प्रकाशक खाता र एउटा पेलोड साझा गर्छन्। प्रत्येक एउटा तुच्छ प्याकेज हो — एउटै ड्रपर जोडिएको केही किलोबाइट वास्तविक उपयोगिता कोड — लिङ्क गरिएको भण्डार बिना र अप्रमाणित डिस्पोजेबल-शैली इमेल अन्तर्गत प्रकाशित। त्यो एकरूपता, साझा ड्रप मार्ग, साझा दृढता लेबलहरू, र साझा keypairs.dat मा स्टेजिङ फाइलले क्लस्टरलाई एकसाथ बाँध्छ।
प्याकेजहरू आफ्नै व्यवहारको बारेमा असामान्य रूपमा स्पष्ट छन्। सोलाना-कि-उपयोगिताहरू जोडिएको ब्लकलाई स्पष्ट शब्दमा वर्णन गर्ने इनलाइन टिप्पणीहरू राख्छ — एउटाले यसलाई लेबल गर्छ प्रेत: अदृश्य दृढता, अर्को (स्पेनिशमा) पढ्छ पृष्ठभूमिमा शीर्ष स्थान निकाल्नुहोस्, “पृष्ठभूमिमा तिल चलाउनुहोस्।” यी कोडले के गर्छ भन्ने कुराको आफ्नै एनोटेसनहरू हुन्; यस पोस्टमा अभियानको नाम नक्कली नोड “सिंक डेमन” सँगसँगै त्यो पहिलो लेबलबाट लिइएको हो (सिङ्क गरिएको) जुन दृढता मेसिनरीले अनुकरण गर्छ।
हामी कोडले अवलोकनयोग्य रूपमा के गर्छ भनेर मात्र वर्णन गर्छौं। प्याकेजहरूको नामकरण - सबै क्रिप्टो, वालेट, र ब्लकचेन-उपकरण सर्तहरू - ले विकासकर्ता दर्शकहरूलाई नामद्वारा तान्ने सम्भावनालाई संकेत गर्दछ; यसले आफैंले प्रकाशक को हो भनेर स्थापित गर्दैन। दोस्रो चरण base64 फिक्स्चर डिकोड गरेर पूर्ण रूपमा पुन: प्राप्ति योग्य थियो, र यसको व्यवहार माथि वर्णन गरिएको छ: यसले वालेट कुञ्जीहरू, बीज वाक्यांशहरू, र गोप्यहरू सङ्कलन गर्दछ र तिनीहरूलाई RSA-इन्क्रिप्टेड, Pinata मार्फत सार्वजनिक IPFS भण्डारणमा एक्सफिल्टर गर्दछ। एक उल्लेखनीय डिजाइन विकल्प भनेको निजी C2 सर्भरको अनुपस्थिति हो - कन्फिगरेसन GitHub सारांश र IPFS बाट आउँछ, र चोरी गरिएको डाटा सामग्री ह्यास द्वारा कुञ्जी गरिएको सार्वजनिक विकेन्द्रीकृत भण्डारणमा पार्क गरिएको छ, जुन दुवै एकल आक्रमणकारी-नियन्त्रित होस्ट भन्दा जफत गर्न गाह्रो छ। लेखनको समयमा यो क्लस्टरसँग मेल खाने कुनै पनि पूर्व सार्वजनिक रिपोर्टिङ अवस्थित थिएन।
रक्षकहरूको लागि प्रभाव, प्रवृत्ति र मार्गदर्शन
को पर्दाफास भएको छ। यी प्याकेजहरू मध्ये एउटा नोड प्रोजेक्टमा थप्ने र त्यसपछि यसलाई आयात गर्ने कोड चलाउने जो कोही। विस्फोटन स्थापना-समयको सट्टा आयात-समय भएकोले, प्याकेज उपस्थित हुनु मात्र पर्याप्त छैन - तर मोड्युल लोड गर्ने कुनै पनि सामान्य प्रयोग पेलोडमा पुग्छ। ल्युरले इथरियम, सोलाना, आर्बिट्रम, लेयर-२, र सामान्य वालेट/इनकोडिङ टुलिङमा निर्माण गर्ने विकासकर्ताहरूलाई लक्षित गर्दछ - जनसंख्यासँग दोस्रो चरणले खोजेको सम्पत्तिहरू हुने सम्भावना बढी हुन्छ। वालेट कुञ्जीहरू, बीज वाक्यांशहरू, कीस्टोरहरू, SSH कुञ्जीहरू, वा मेसिनमा यी मोड्युलहरू मध्ये एउटा चलाए। एनएस गोप्य कुराहरूले ती प्रमाणहरूलाई सम्झौता गरिएको रूपमा व्यवहार गर्नुपर्छ र तिनीहरूलाई घुमाउनुपर्छ।
आत्मसात् गर्न लायक दुई ढाँचाहरू। पहिलो, स्थिरताको रूपमा पेलोड: दोस्रो चरणलाई बेस६४ को रूपमा सम्भावित नाम दिइएको डेटा फाइल भित्र ढुवानी गर्दै (परीक्षण/फिक्स्चर/कीपेयर.ड्याट) ले प्याकेजको दृश्य स्रोतलाई सफा राख्छ र दुर्भावनापूर्ण सामग्रीलाई फाइलमा धकेल्छ जुन समीक्षा उपकरणहरू र मानव स्किमहरूलाई प्रायः निष्क्रिय डेटाको रूपमा व्यवहार गर्दछ। दोस्रो, क्रस-प्लेटफर्म दृढताका साथ आयात-समय ढिलाइ भएको कार्यान्वयन: स्थापना हुकबाट ट्रिगर सार्नु, टाइमर थप्नु, र त्यसपछि क्रोन, निर्धारित कार्यहरू, र लन्च गरिएकोमा निरन्तरता दिनु भनेको स्वचालित रजिस्ट्री स्क्यानिङले सबैभन्दा नजिकबाट हेर्ने हल्ला गर्ने स्थापना-स्क्रिप्ट प्रविधिहरूबाट जानाजानी टाढाको कदम हो।
रक्षक र मर्मतकर्ताहरूको लागि मार्गदर्शन:
- संलग्न कोडलाई पछि व्यवहार गर्नुहोस् मोड्युल.निर्यात समीक्षा प्राथमिकताको रूपमा — ड्रपर तर्क प्रायः "वास्तविक" मोड्युल सतह मुनि लुक्छ।
- डेटा फाइलहरू निष्क्रिय छन् भनी नसोच्नुहोस्। base64 ब्लब मुनि परीक्षण/फिक्स्चर/ जुन रनटाइममा पढिन्छ र डिकोड गरिन्छ त्यो कार्यान्वयनयोग्य-सम्बन्धित हुन्छ; फ्ल्याग रनटाइमले फिक्स्चर फाइलहरूको पढाइ पढ्छ जसले a लाई फिड गर्दछ समारोह/इभियल/त्यसपछि लेख्नुहोस्-spawn चेन
- झर्ने बाटो खोज्नुहोस् ~/.cache-db/.node-sync/ र पर्सिस्टन्स एकाइहरूको लागि विननोडसिंक (तालिकाबद्ध कार्य) र com.apple.syncd मा (सुरु गरिएको) यी नामहरू निकाल्ने विकासकर्ता मेसिनहरूमा।
- क्रोन प्रविष्टिहरू, निर्धारित कार्यहरू, वा सुरु गरिएका कार्यहरू सिर्जना गर्ने नोड प्रक्रियाहरूमा अलर्ट - वैध पुस्तकालयहरूले आयातमा यो विरलै गर्छन्।
- लकफाइलहरू र पिन गरिएका संस्करणहरू मन पराउनुहोस्, र कुनै पनि नयाँ सानो "उपयोगिता" निर्भरताको भिन्नताको समीक्षा गर्नुहोस्, विशेष गरी शून्य-निर्भरता प्याकेजहरू प्रकाशित लिङ्क गरिएको भण्डार बिना अप्रमाणित खाताहरू द्वारा।
रजिस्ट्री डिफेन्डरहरूको लागि, निष्कर्ष यो हो कि स्थापना-हुक अनुगमन आवश्यक छ तर पर्याप्त छैन: डेटा फाइल भित्र स्टेज गरिएको आयात-समय, टाइमर-ढिलाइ भएको ड्रपरले स्थापना-समय-मात्र जाँच पास गर्नेछ, र दृढता चरण प्रायः समात्न बाँकी रहेको सबैभन्दा ठूलो अवलोकनयोग्य संकेत हो।







