TL; DR
ఒకే npm పబ్లిషర్ ఎనిమిది చిన్న ప్యాకేజీలను పంపింది, వాటి పేర్లు బ్లాక్చెయిన్ మరియు వాలెట్ అభివృద్ధికి సంబంధించిన రోజువారీ నిర్మాణ అంశాల వలె ఉన్నాయి. base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpersమరియు crypto-validate-libప్రతి ఒక్కటీ పనిచేసే ఒక యుటిలిటీని కలిగి ఉంటుంది. అయితే, ఆ యుటిలిటీ తర్వాత, మాడ్యూల్ ఇంపోర్ట్ చేయబడిన వెంటనే అమలు అయ్యే ఒక సెల్ఫ్-ఇన్వోకింగ్ కోడ్ బ్లాక్ జతచేయబడి ఉంటుంది.
దిగుమతి చేసుకున్న సుమారు 37 సెకన్ల తర్వాతఆ బ్లాక్, టెస్ట్ ఫిక్స్చర్ రూపంలో ప్యాకేజీ లోపల పంపబడే పేలోడ్ను డీకోడ్ చేసి, దానిని యూజర్ హోమ్ డైరెక్టరీ కింద ఉన్న ఒక దాచిన ఫైల్లో రాస్తుంది, ప్రతిసారి పునఃప్రారంభం కావడానికి తనను తాను నమోదు చేసుకుంటుంది. login ఇది Windows, macOS, మరియు Linux అంతటా పనిచేస్తుంది మరియు డీకోడ్ చేయబడిన స్క్రిప్ట్ను డిటాచ్డ్ ప్రాసెస్గా ప్రారంభిస్తుంది. npm install సమయంలో దీనికి సంబంధించిన ఏదీ పనిచేయదు; ఇది కోడ్ ఇంపోర్ట్ చేయబడి, రన్ అయ్యే వరకు వేచి ఉంటుంది, ఇది ఇన్స్టాలేషన్ కంటే నిశ్శబ్దమైన సమయం.
పేలోడ్ అపారదర్శకంగా లేదు. ఇది సాధారణ బేస్64 రూపంలో వస్తుంది, కాబట్టి "టెస్ట్ ఫిక్స్చర్"ను డీకోడ్ చేయడం ద్వారా రెండవ దశను పూర్తిగా తిరిగి పొందవచ్చు: a క్రిప్టో-వాలెట్ మరియు రహస్యాల దొంగ అది మెషిన్ ఖాళీగా ఉండే వరకు వేచి ఉండి, ప్రైవేట్ కీలు మరియు సీడ్ ఫ్రేజ్లను సేకరించి, కనుగొన్న ప్రతిదాన్ని హార్డ్కోడెడ్ RSA-4096 కీతో ఎన్క్రిప్ట్ చేసి, పబ్లిక్ IPFS స్టోరేజ్కు పిన్ చేయడం ద్వారా దాన్ని బయటకు పంపి, ప్రతి 12 గంటలకు తిరిగి బీకన్ పంపుతుంది.
మేము క్లస్టర్ను ఈ విధంగా ట్రాక్ చేస్తాము ఫాంటమ్సింక్విశ్లేషణ సమయంలో ఎనిమిది ప్యాకేజీలూ ఒకే ఖాతా కింద ప్రచురించబడి, npm రిజిస్ట్రీలో ప్రత్యక్షంగా ఉన్నాయి.
| పర్యావరణ వ్యవస్థ | npm |
| ప్యాకేజీలు | base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpers, crypto-validate-lib |
| లక్ష్యంగా చేసుకున్న ప్లాట్ఫారమ్లు | విండోస్, మాకోస్, లైనక్స్ |
| ప్రధాన ప్రవర్తన | ఆలస్యమైన, దిగుమతి-సమయ డ్రాపర్ ఒక పరీక్షా ఫిక్చర్గా దాచబడింది; క్రాస్-ప్లాట్ఫారమ్ పర్సిస్టెన్స్ను ఇన్స్టాల్ చేస్తుంది |
| పేలోడ్ | క్రిప్టో-వాలెట్ మరియు రహస్యాల దొంగ, RSA-4096 ఎన్క్రిప్షన్, పబ్లిక్ IPFS పిన్నింగ్ ద్వారా సమాచార బహిష్కరణ |
దాడి శరీర నిర్మాణ శాస్త్రం
మొదటిసారి చూసినప్పుడు ప్రతి ప్యాకేజీ అంత ప్రత్యేకంగా ఏమీ కనిపించదు. బేస్58-యుటిల్స్ఉదాహరణకు, ఇది కొన్ని కిలోబైట్ల జీరో-డిపెండెన్సీ బేస్58 / బిట్కాయిన్-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రెండు డిజైన్ ఎంపికలు ప్రత్యేకంగా నిలుస్తాయి.
పేలోడ్ ఒక పరీక్షా పరికరంగా ప్రయాణిస్తుంది. రెండవ దశ స్పష్టమైన కోడ్గా వ్రాయబడలేదు. అది లో ఉంటుంది test/fixtures/keypairs.datకీ జతలను నిర్వహిస్తుందని చెప్పుకునే ఒక ప్యాకేజీలో కలిసిపోయే పేరు గల ఒక బేస్64 ఫైల్. ఆ టార్బాల్ను పైపైన చూసే మనిషికి, అది నమూనా డేటాలా కనిపిస్తుంది; దానికి జతచేయబడిన కోడ్కు, అది డీకోడ్ చేసి అమలు చేయాల్సిన ఒక స్క్రిప్ట్. ఆ డ్రాపర్లో నెట్వర్క్ చిరునామా ఏదీ ఉండదు — అవి రెండవ దశలో ఉంటాయి — కానీ అదనపు అస్పష్టత ఏదీ లేదు: ఆ ఫిక్స్చర్ అనేది బేస్64 యొక్క ఒకే పొర, కాబట్టి దానిని డీకోడ్ చేయడం (బేస్64 -డి) పూర్తిని తిరిగి పొందుతుంది syncd.js మరియు దాని నెట్వర్క్ ప్రవర్తన. ఆ పునరుద్ధరించబడిన దశ ఏమి చేస్తుందో తదుపరి విభాగం వివరిస్తుంది.
పేలుడు ఆలస్యం చేయబడింది మరియు అది ఇన్స్టాల్కి కాకుండా ఇంపోర్ట్కి ముడిపడి ఉంది. ఎందుకంటే ట్రిగ్గర్ అవసరం() ఇన్స్టాల్ హుక్కు బదులుగా సుమారు 37-సెకన్ల టైమర్ను జోడించడం ద్వారా, ఈ ప్రవర్తన కేవలం గమనించే తనిఖీలను తప్పించుకుంటుంది. npm సంస్థాపన ఈ దశలో, ఆలస్యం అనేక స్వల్పకాలిక శాండ్బాక్స్ మరియు CI రన్ల కంటే ఎక్కువసేపు కొనసాగుతుంది. ఏదైనా ఎగ్జిక్యూట్ అయ్యే సమయానికి, ప్యాకేజీని లాగిన ఇన్స్టాల్ ఎప్పుడో పూర్తయిపోయి ఉంటుంది.
ఒకసారి డీకోడ్ చేయబడిన స్క్రిప్ట్ డిస్క్లో ఉన్నప్పుడు ~/.cache-db/.node-sync/syncd.js — ఒక సాధారణ కాష్ డైరెక్టరీలా కనిపించేలా ఎంచుకున్న మార్గం — ఈ డ్రాపర్ దానిని మూడు ప్రధాన ప్లాట్ఫారమ్లలోనూ రీబూట్ల తర్వాత కూడా నిలిచి ఉండేలా చేస్తుంది:
- Linux: స్క్రిప్ట్ను పునఃప్రారంభించే ఒక క్రాన్ ఎంట్రీ. ఇప్పటికే ఉన్న క్రాన్టాబ్ను ఫిల్టర్ చేయడం ద్వారా ఈ ఎంట్రీ ఇన్స్టాల్ చేయబడుతుంది. grep -v syncdదీని దుష్ప్రభావం ఏమిటంటే, అదే పేరు కోసం గ్రెప్ చేసే సాధారణ జాబితా నుండి కొత్త ఎంట్రీని తొలగించడం.
- Windows: షెడ్యూల్ చేయబడిన పని పేరు WinNodeSync12 నిమిషాల వ్యవధిలో మళ్లీ రన్ అయ్యేలా సెట్ చేయబడింది.
- MacOS: ప్రారంభించబడిన ఉద్యోగం అని లేబుల్ చేయబడింది com.apple.syncdఅనేక ప్యాకేజీలలో ఉండేది — ఇది ఒక చట్టబద్ధమైన ఆపిల్ సిస్టమ్ సేవను అనుకరించే లేబుల్.
ఆ తర్వాత స్క్రిప్ట్ వెంటనే ఒక డిటాచ్డ్ ప్రాసెస్గా ప్రారంభించబడుతుంది, కాబట్టి ఇంపోర్ట్ చేసే ప్రోగ్రామ్ నిష్క్రమించిన తర్వాత కూడా అది నడుస్తూనే ఉంటుంది.
రెండవ దశ ఏమి చేస్తుంది
ఫిక్చర్ ఒకే బేస్64 లేయర్ అయినందున, రెండవ దశ స్పష్టంగా డీకోడ్ చేయబడుతుంది మరియు పూర్తిగా చదవవచ్చు. ఎనిమిది ప్యాకేజీలన్నీ ఒకే స్క్రిప్ట్ యొక్క మూడు వేరియంట్లలో ఒకదానిని కలిగి ఉంటాయి, ఇది హెడర్ వ్యాఖ్యలో తనను తాను ఈ విధంగా గుర్తిస్తుంది. phantom syncd v3 — Topo durmiente (నిద్రపోతున్న మోల్). దీని పని క్రిప్టోకరెన్సీ-వాలెట్ సమాచారాన్ని మరియు డెవలపర్ రహస్యాలను దొంగిలించి, వాటిని మెషిన్ నుండి బయటకు పంపించడం. ఇది ఈ దశలలో పనిచేస్తుంది:
- 1. యంత్రం నిశ్చలంగా ఉండే వరకు వేచి ఉండండి. ఏదైనా చేసే ముందు, syncd.js వినియోగదారు ఎంతసేపు నిష్క్రియంగా ఉన్నారో తనిఖీ చేస్తుంది మరియు ఒక పరిమితిని (సుమారు 15 నిమిషాలు) దాటిన తర్వాత మాత్రమే ముందుకు సాగుతుంది — xprintidle Linuxలో, ఐయోరెగ్ macOSలో HIDIdleTime మరియు Windowsలో PowerShell ఐడిల్-టైమ్ క్వెరీ. అందువల్ల, కీబోర్డు వద్ద ఎవరూ లేనప్పుడు హార్వెస్టింగ్ జరిగే అవకాశం ఉంది.
- 2. రిమోట్గా నియంత్రించబడే యాక్టివేషన్ స్విచ్ను తీసుకురండిఈ స్క్రిప్ట్ చర్య తీసుకునే ముందు డెడ్-డ్రాప్ నుండి ఒక చిన్న కాన్ఫిగ్ను తీసుకుంటుంది. ప్రాథమిక మూలం ఒక గిట్హబ్ గిస్ట్ రా URL (gist.githubusercontent.com/juang55/…/cfg.txt); ఆ కాన్ఫిగ్ ఇలా ఉంటేనే స్క్రిప్ట్ యాక్టివేట్ అవుతుంది క్రియాశీలక=1సారాంశం అందుబాటులో లేకపోతే, అది పబ్లిక్ గేట్వేల ద్వారా పొందిన మూడు హార్డ్కోడెడ్ IPFS కంటెంట్ ఐడెంటిఫైయర్లను ఉపయోగిస్తుంది. గేట్వే.పినాటా.క్లౌడ్, ipfs.ioమరియు cloudflare-ipfs.comఇది ఆపరేటర్కు సంఘటన జరిగిన తర్వాత ఆయుధాన్ని ఎత్తడం/వదులుకోవడమనే నియంత్రణను మరియు పడగొట్టడాన్ని తట్టుకునే ప్రత్యామ్నాయాన్ని అందిస్తుంది. (అతి చిన్న వేరియంట్, దీనిలో రవాణా చేయబడుతుంది) క్రిప్టో-వాలిడేట్-లిబ్, eth-wallet-helpersమరియు సోలనా-కీ-యుటిల్స్, గిస్ట్ లేయర్ను తొలగించి, కేవలం IPFS ఐడెంటిఫైయర్లపై మాత్రమే ఆధారపడుతుంది.)
- 3. వాలెట్ మెటీరియల్ మరియు రహస్యాలను సేకరించండి. ఈ స్క్రిప్ట్ యూజర్ యొక్క హోమ్ డైరెక్టరీని పరిశీలిస్తుంది — ~/.config/solana, ~/.ethereum/keystore, ~/.ఫౌండ్రీ, ~/.హార్డ్హాట్, ~/.sshమరియు డెస్క్టాప్/పత్రాలు/<span style="font-family: Mandali; "> డౌన్లోడ్</span> (స్పానిష్-భాషా ఫోల్డర్ పేర్లతో సహా), అదనంగా ~/.env మరియు షెల్ rc ఫైల్స్, మరియు దానికి సమానమైనవి అనువర్తనం డేటా విండోస్లోని లొకేషన్లు. ఇది Ethereum ప్రైవేట్ కీలు, Bitcoin WIF కీలు, BIP-39 సీడ్ ఫ్రేజ్లు, Solana కీపెయిర్లు, Ethereum కీస్టోర్ JSON, SSH కీలు మరియు రహస్యాలను కలిగి ఉన్న ఎన్విరాన్మెంట్ వేరియబుల్స్ను లక్ష్యంగా చేసుకుంటుంది. పెద్ద వేరియంట్ (లో ఏబిఐ-ఎన్కోడ్, బేస్58-యుటిల్స్, eth-dev) పూర్తి 2048-పదాల BIP-39 నిఘంటువును కలిగి ఉంటుంది మరియు రెగ్యులర్ ఎక్స్ప్రెషన్లను ఉపయోగిస్తుంది సారం అది చదివే ఏ టెక్స్ట్ నుండైనా వ్యక్తిగత కీలు మరియు ధృవీకరించబడిన సీడ్ పదబంధాలను తీసుకుంటుంది; బదులుగా రెండు చిన్న వేరియంట్లు కీవర్డ్ ద్వారా ఫైళ్లను సరిపోల్చుతాయి (సీడ్, జ్ఞాపకశక్తి, జేబు, metamask, ఫాంటమ్, లెడ్జర్, trezor, …) మరియు మొత్తం ఫైళ్లను అప్లోడ్ చేయండి.
- 4. పబ్లిక్ పిన్నింగ్ సర్వీస్ ద్వారా ఎన్క్రిప్ట్ చేసి, బయటకు పంపండి. ప్రతి ఫైండింగ్ ఒక హోస్ట్ ఫింగర్ప్రింట్తో జత చేయబడుతుంది (వినియోగదారు పేరు@హోస్ట్నేమ్, ప్లాట్ఫారమ్, టైమ్స్టాంప్) మరియు స్క్రిప్ట్లో పొందుపరిచిన హార్డ్కోడెడ్ RSA-4096 పబ్లిక్ కీతో ఎన్క్రిప్ట్ చేయబడింది. ఆ తర్వాత ఎన్క్రిప్ట్ చేయబడిన రికార్డును IPFSకు పిన్ చేయడం ద్వారా అప్లోడ్ చేయబడుతుంది. api.pinata.cloud/pinning/pinJSONToIPFSహార్డ్కోడెడ్ పినాటా API ఆధారాలతో ప్రామాణీకరించబడింది. స్వాధీనం చేసుకోవడానికి ప్రత్యేకమైన C2 సర్వర్ ఏదీ లేదు: దొంగిలించబడిన డేటా పబ్లిక్ వికేంద్రీకృత నిల్వలో ఉంచబడుతుంది, ఫలితంగా వచ్చే కంటెంట్ హాష్లను ఉపయోగించి ఆపరేటర్ దానిని తిరిగి పొందవచ్చు. అప్లోడ్లు కొన్ని సెకన్ల యాదృచ్ఛిక జిట్టర్తో జరుగుతాయి, మరియు ఒక స్థానిక లాగ్... టైమ్స్టాంప్ | కీ-రకం | తిరిగి వచ్చిన హాష్ వద్ద ఉంచబడుతుంది ~/.cache-db/.node-sync/.sl.
- 5. 12 గంటల చక్రంలో నిలకడగా ఉండి, సంకేతాలు పంపండి. రెండవ దశ దాని స్వంత నిలకడను తిరిగి స్థాపిస్తుంది — లైనక్స్లో ఒక క్రాన్ ఎంట్రీ, com.apple.syncd macOSలో launchd జాబ్, మరియు పేరు పెట్టబడిన షెడ్యూల్డ్ టాస్క్ విండోస్ నోడ్ సింక్ విండోస్లో — ప్రతి 12 గంటలకు మళ్లీ రన్ అయ్యేలా సెట్ చేయబడింది. ఇది ఒక అని గమనించండి. వివిధ డ్రాపర్ ఇన్స్టాల్ చేసే విండోస్ టాస్క్ పేరు (WinNodeSyncరెండూ వేటాడదగినవే.
కాలక్రమం
ఎనిమిది ప్యాకేజీలు 2026-07-13 మరియు 2026-07-14 తేదీలలో ఒకేసారి ప్రచురించబడ్డాయి. వాటిలో కొన్ని ఒకటి కంటే ఎక్కువ వెర్షన్లను కలిగి ఉన్నాయి; అన్ని వెర్షన్లలో డ్రాపర్ ఒకేలా ఉంటుంది, దాని పైన ఉన్న సాధారణ యుటిలిటీ కోడ్ పరిమాణం మారినప్పుడు లైన్ ఆఫ్సెట్లు మాత్రమే మారుతాయి.
| తేదీ | ఈవెంట్ |
|---|---|
| 2026-07-13 | క్లస్టర్లోని మొదటి ప్యాకేజీలు ఒక ప్రచురణకర్త కింద కనిపిస్తాయి (solana-key-utils, eth-wallet-helpers, crypto-validate-lib మరియు మిగిలిన వాటి తొలి రూపాలు) |
| 2026-07-13 → 07-14 | మిగిలిన పేర్లు మరియు తదుపరి వెర్షన్లు ప్రచురించబడ్డాయి; ప్రతి దానిలోనూ అవే జోడించబడిన డ్రాపర్ షిప్లు |
| 2026-07-14 | ఎనిమిదింటినీ గుర్తించి, విశ్లేషించారు; ప్రతి ప్యాకేజీ ఇప్పటికీ రిజిస్ట్రీ నుండి ఇన్స్టాల్ చేయదగినదే. |
ఈ పెరుగుదల అంతటా, క్లస్టర్ ప్రారంభంలో దాదాపు తటస్థంగా ఉన్న పబ్లిషర్ రిజిస్ట్రీ ప్రతిష్ట, గుర్తింపులు పెరిగేకొద్దీ తీవ్రంగా ప్రతికూలంగా మారింది — ఇది ప్యాకేజీలను ఫ్లాగ్ చేయడం వల్ల కలిగే ఒక గమనించదగిన దుష్ప్రభావం, అంతేగాని ఉద్దేశపూర్వకంగా రూపొందించిన లక్షణం కాదు.
రాజీ సూచికలు
విశ్లేషణ సమయంలో క్రింది సూచికలన్నీ ఉన్నట్లు నిర్ధారించబడ్డాయి — డీకోడింగ్ ద్వారా “రెండవ-దశ” పట్టికలలోనివి. test/fixtures/keypairs.dat మరియు తిరిగి పొందిన వాటిని చదవడం syncd.js.
ఫైల్స్ మరియు మార్గాలు
| సూచిక | పాత్ర |
|---|---|
~/.cache-db/.node-sync/syncd.js | డీకోడ్ చేయబడిన రెండవ దశ, 0o700 మోడ్తో వ్రాయబడింది |
~/.cache-db/.node-sync/.sl | స్థానిక బహిష్కరణ లాగ్ (టైమ్స్టాంప్ | కీ-రకం | IPFS హాష్) |
test/fixtures/keypairs.dat | బేస్64-ఎన్కోడ్ చేయబడిన పేలోడ్ ఒక "టెస్ట్ ఫిక్చర్"గా టార్బాల్ లోపల అమర్చబడింది |
రెండవ దశ నెట్వర్క్ మౌలిక సదుపాయాలు (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కు పిన్ చేయబడిన దొంగిలించబడిన డేటా |
| పినాటా API కీ | 13c766575b9270a9825d, హార్డ్కోడెడ్ ఎక్స్ఫిల్ట్రేషన్ క్రెడెన్షియల్ |
రెండవ-దశ సేకరణ లక్ష్యాలు (syncd.js నుండి తిరిగి పొందబడినవి)
| సూచిక | పాత్ర |
|---|---|
~/.config/solana, ~/.ethereum/keystore, ~/.foundry, ~/.hardhat, ~/.ssh, ~/.env, షెల్ rc ఫైల్స్ | కీలు మరియు రహస్యాల కోసం శోధించబడిన డైరెక్టరీలు/ఫైల్లు |
AppData\Roaming\Solana, AppData\Local\ethereum\keystore | విండోస్ సమానమైనవి శోధించబడ్డాయి |
| సేకరించిన కళాఖండాల రకాలు | ETH ప్రైవేట్ కీలు, బిట్కాయిన్ WIF, BIP-39 సీడ్ పదబంధాలు, సోలానా కీజతలు, ఇథీరియం కీస్టోర్ JSON, SSH కీలు, రహస్య ఎన్విరాన్మెంట్ వేరియబుల్స్ |
నిలకడ కళాఖండాలు
| వేదిక | సూచిక |
|---|---|
| linux | క్రోన్ ఎంట్రీ ప్రారంభం syncd.js; crontab ద్వారా ఇన్స్టాల్ చేయబడింది, ఫిల్టర్ చేయబడింది grep -v syncd |
| విండోస్ | షెడ్యూల్ చేయబడిన పని WinNodeSync (డ్రాపర్) మరియు WindowsNodeSync (రెండవ దశ) |
| MacOS | లాంచ్డి లేబుల్ com.apple.syncd |
| అన్ని | రెండవ దశ 12 గంటల చక్రంలో తిరిగి కొనసాగుతుంది |
బిహేవియరల్
- తర్వాత స్వీయ-ఆహ్వాన ఫంక్షన్ జోడించబడింది మాడ్యూల్.ఎగుమతులుషెడ్యూల్ చేయడం setTimeout దిగుమతిపై ~37,000 ms.
- చైల్డ్_ప్రాసెస్ స్పాన్(“నోడ్”, ) డిటాచ్డ్ ఆప్షన్ సెట్ చేయబడింది.
- రెండవ దశలో నిష్క్రియ-గేటెడ్ క్రియాశీలత (xprintidle / ఐయోరెగ్ HIDIdleTime / పవర్షెల్ నిష్క్రియ సమయం; ~15-నిమిషాల పరిమితి).
- ముందుగా RSA-4096 ఎన్క్రిప్షన్ను కనుగొని, ఆపై HTTPS POST పబ్లిక్ 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 |
<span style="font-family: Mandali; "> ప్రచురణ కర్త </span>
- సోల్బిల్డర్_ఐఓ - angel_lopez89[@]proton[.]meఇమెయిల్ ధృవీకరించబడలేదు, ధృవీకరించబడిన సోర్స్-కంట్రోల్ ఖాతా లేదు, లింక్ చేయబడిన రిపోజిటరీ లేదు.
ఆపాదించడం మరియు గమనించిన ప్రవర్తన
ఎనిమిది ప్యాకేజీలు ఒకే పబ్లిషర్ ఖాతాను మరియు ఒకే పేలోడ్ను పంచుకుంటాయి. ప్రతిదీ ఒక సాధారణ ప్యాకేజీ — కొన్ని కిలోబైట్ల నిజమైన యుటిలిటీ కోడ్, దానికి అదే డ్రాపర్ జోడించబడి ఉంటుంది — ఇది లింక్ చేయబడిన రిపోజిటరీ లేకుండా మరియు ధృవీకరించబడని డిస్పోజబుల్-శైలి ఇమెయిల్ కింద ప్రచురించబడింది. ఆ ఏకరూపత, భాగస్వామ్య డ్రాప్ మార్గం, భాగస్వామ్య పర్సిస్టెన్స్ లేబుల్లు, మరియు భాగస్వామ్య కీపెయిర్స్.డాట్ స్టేజింగ్ ఫైల్స్ అనేవి క్లస్టర్ను కలిపి ఉంచేవి.
ఆ ప్యాకేజీలు తమ సొంత ప్రవర్తన గురించి అసాధారణంగా నిష్కపటంగా ఉంటాయి. సోలనా-కీ-యుటిల్స్ జతచేయబడిన బ్లాక్ను సరళమైన పదాలలో వివరించే ఇన్లైన్ వ్యాఖ్యలను కలిగి ఉంటుంది — ఒకటి దానికి లేబుల్ చేస్తుంది ఫాంటమ్: అదృశ్య పట్టుదల, మరొకటి (స్పానిష్లో) ఇలా చదువుతుంది Ejecutar topo en background, “నేపథ్యంలో మోల్ను నడపండి.” ఇవి కోడ్ ఏమి చేస్తుందో తెలిపే దాని స్వంత వివరణలు; ఈ పోస్ట్లోని ప్రచార నామం ఆ మొదటి లేబుల్తో పాటు నకిలీ నోడ్ “సింక్ డెమోన్” నుండి తీసుకోబడింది (సమకాలీకరించబడింది) పట్టుదల యంత్రాంగం అనుకరించేది.
కోడ్ స్పష్టంగా ఏమి చేస్తుందో మాత్రమే మేము వివరిస్తాము. ప్యాకేజీల నామకరణం — అన్నీ క్రిప్టో, వాలెట్, మరియు బ్లాక్చెయిన్-టూలింగ్ పదాలే — వాటిని పేరు ద్వారా డౌన్లోడ్ చేసుకునే అవకాశం ఉన్న డెవలపర్ వర్గాన్ని సూచిస్తుంది; అది స్వయంగా ప్రచురణకర్త ఎవరో నిర్ధారించదు. బేస్64 ఫిక్స్చర్ను డీకోడ్ చేయడం ద్వారా రెండవ దశను పూర్తిగా పునరుద్ధరించవచ్చు, మరియు దాని ప్రవర్తన పైన వివరించబడింది: ఇది వాలెట్ కీలు, సీడ్ ఫ్రేజ్లు, మరియు సీక్రెట్లను సేకరించి, వాటిని RSA-ఎన్క్రిప్ట్ చేసి, పినాటా ద్వారా పబ్లిక్ IPFS స్టోరేజ్కు తరలిస్తుంది. ఒక ముఖ్యమైన డిజైన్ ఎంపిక ఏమిటంటే ప్రైవేట్ C2 సర్వర్ లేకపోవడం — కాన్ఫిగరేషన్ గిట్హబ్ గిస్ట్ మరియు IPFS నుండి వస్తుంది, మరియు దొంగిలించబడిన డేటా కంటెంట్ హ్యాష్ ద్వారా కీ చేయబడిన పబ్లిక్ వికేంద్రీకృత స్టోరేజ్లో ఉంచబడుతుంది, ఈ రెండింటినీ ఒకే దాడి చేసేవారి నియంత్రణలో ఉన్న హోస్ట్ కంటే స్వాధీనం చేసుకోవడం కష్టం. ఈ క్లస్టర్కు సంబంధించిన మునుపటి పబ్లిక్ రిపోర్టింగ్ ఏదీ ఈ రచన సమయంలో కనుగొనబడలేదు.
డిఫెండర్ల కోసం ప్రభావం, ట్రెండ్లు & మార్గదర్శకత్వం
ఎవరు బహిర్గతమయ్యారు. నోడ్ ప్రాజెక్ట్కు ఈ ప్యాకేజీలలో ఒకదాన్ని జోడించి, ఆపై దానిని ఇంపోర్ట్ చేసే కోడ్ను అమలు చేసిన ఎవరైనా. డిటోనేషన్ అనేది ఇన్స్టాల్-సమయంలో కాకుండా ఇంపోర్ట్-సమయంలో జరుగుతుంది కాబట్టి, కేవలం ప్యాకేజీ ఉండటం సరిపోదు — కానీ మాడ్యూల్ను లోడ్ చేసే ఏదైనా సాధారణ ఉపయోగం పేలోడ్ను చేరుకుంటుంది. ఈ ఎర పేర్లు Ethereum, Solana, Arbitrum, Layer-2, మరియు సాధారణ వాలెట్/ఎన్కోడింగ్ టూలింగ్పై నిర్మించే డెవలపర్లను లక్ష్యంగా చేసుకుంటాయి — రెండవ దశ వేటాడే ఆస్తులను కచ్చితంగా కలిగి ఉండే అవకాశం ఉన్న జనాభా వీరే. వాలెట్ కీలు, సీడ్ పదబంధాలు, కీస్టోర్లు, SSH కీలు లేదా వాటిని కలిగి ఉన్న మెషీన్లో ఈ మాడ్యూల్లలో ఒకదాన్ని అమలు చేసిన ఎవరైనా. .env సీక్రెట్స్ ఆ క్రెడెన్షియల్స్ను రాజీపడినవిగా భావించి, వాటిని మార్చాలి.
అంతర్గతంగా గ్రహించాల్సిన రెండు నమూనాలు. ప్రధమ, పేలోడ్-యాజ్-ఫిక్చర్రెండవ దశను బేస్64 రూపంలో, నమ్మశక్యమైన పేరు గల డేటా ఫైల్లో పంపించడం (test/fixtures/keypairs.dat) ప్యాకేజీ యొక్క కనిపించే మూలాన్ని శుభ్రంగా ఉంచుతుంది మరియు హానికరమైన కంటెంట్ను ఒక ఫైల్లోకి నెడుతుంది, దీనిని సమీక్ష సాధనాలు మరియు మానవ పరిశీలనలు తరచుగా నిష్క్రియ డేటాగా పరిగణిస్తాయి. రెండవది, క్రాస్-ప్లాట్ఫారమ్ పర్సిస్టెన్స్తో దిగుమతి-సమయం ఆలస్యమైన అమలుట్రిగ్గర్ను ఇన్స్టాల్ హుక్ నుండి వేరు చేయడం, ఒక టైమర్ను జోడించడం, ఆపై దానిని క్రాన్, షెడ్యూల్డ్ టాస్క్లు మరియు లాంచ్డి అంతటా కొనసాగించడం అనేది, ఆటోమేటెడ్ రిజిస్ట్రీ స్కానింగ్ చాలా నిశితంగా గమనించే గందరగోళమైన ఇన్స్టాల్-స్క్రిప్ట్ పద్ధతుల నుండి ఉద్దేశపూర్వకంగా దూరంగా తీసుకున్న ఒక చర్య.
రక్షకులు మరియు నిర్వహణదారులకు మార్గదర్శనం:
- తర్వాత జోడించిన కోడ్ను పరిగణించండి మాడ్యూల్.ఎగుమతులు సమీక్ష ప్రాధాన్యతగా — డ్రాపర్ లాజిక్ తరచుగా “అసలైన” మాడ్యూల్ ఉపరితలం క్రింద దాగి ఉంటుంది.
- డేటా ఫైల్లు జడమైనవి అని భావించవద్దు. ఒక బేస్64 బ్లోబ్ కింద పరీక్ష/ఫిక్స్చర్లు/ రన్టైమ్లో చదివి, డీకోడ్ చేయబడినది ఎగ్జిక్యూటబుల్కు సమీపంలో ఉంటుంది; ఫీడ్ చేసే ఫిక్చర్ ఫైల్ల రన్టైమ్ రీడ్లను ఫ్లాగ్ చేస్తుంది ఫంక్షన్/మూల్యాంకనం/రాసి-తరువాత-స్పాన్ గొలుసు.
- డ్రాప్ మార్గం కోసం వెతకండి ~/.cache-db/.node-sync/ మరియు నిలకడ యూనిట్ల కోసం WinNodeSync (షెడ్యూల్ చేయబడిన పని) మరియు com.apple.syncd ఈ పేర్లను పొందిన డెవలపర్ మెషీన్లలో (ప్రారంభించబడింది).
- క్రోన్ ఎంట్రీలు, షెడ్యూల్డ్ టాస్క్లు లేదా లాంచ్డి జాబ్లను సృష్టించే నోడ్ ప్రాసెస్ల గురించి హెచ్చరించండి — చట్టబద్ధమైన లైబ్రరీలు ఇంపోర్ట్ చేసేటప్పుడు ఇలా చాలా అరుదుగా చేస్తాయి.
- లాక్ఫైల్లు మరియు పిన్ చేసిన వెర్షన్లకు ప్రాధాన్యత ఇవ్వండి, మరియు ఏదైనా కొత్త చిన్న “యుటిలిటీ” డిపెండెన్సీ యొక్క డిఫ్ను సమీక్షించండి, ముఖ్యంగా జీరో-డిపెండెన్సీ ప్యాకేజీలు ప్రచురించబడ్డాయి ఎలాంటి లింక్ చేయబడిన రిపోజిటరీ లేని ధృవీకరించని ఖాతాల ద్వారా.
రిజిస్ట్రీ డిఫెండర్లకు ముఖ్యమైన విషయం ఏమిటంటే, ఇన్స్టాల్-హుక్ పర్యవేక్షణ అవసరం కానీ సరిపోదు: డేటా ఫైల్లో ఉంచబడిన, ఇంపోర్ట్ సమయంలో టైమర్ ఆలస్యంతో పనిచేసే డ్రాపర్, కేవలం ఇన్స్టాల్ సమయంలో జరిగే తనిఖీలో ఉత్తీర్ణత సాధిస్తుంది, మరియు పట్టుకోవడానికి మిగిలి ఉన్న సంకేతాలలో పర్సిస్టెన్స్ దశ తరచుగా అత్యంత స్పష్టమైనదిగా ఉంటుంది.







