PhantomSync: កញ្ចប់រូបិយប័ណ្ណគ្រីបតូ npm លាក់ការលួចកាបូប

PhantomSync៖ កញ្ចប់ npm អ្នកអភិវឌ្ឍន៍គ្រីបតូចំនួនប្រាំបីលាក់ដំណក់ទឹកដែលពន្យារពេល និងបន្តដោយខ្លួនឯង។

TL; កុង

អ្នកបោះពុម្ពផ្សាយ npm តែមួយបានដឹកជញ្ជូនកញ្ចប់តូចៗចំនួនប្រាំបីដែលឈ្មោះរបស់ពួកគេអានដូចជាប្លុកសំណង់ប្រចាំថ្ងៃសម្រាប់ការអភិវឌ្ឍ blockchain និងកាបូបលុយ។ base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpersនិង crypto-validate-libពួកវានីមួយៗមានឧបករណ៍ប្រើប្រាស់ដែលដំណើរការ។ ទោះជាយ៉ាងណាក៏ដោយ ឧបករណ៍ប្រើប្រាស់នោះត្រូវបានបន្ថែមបន្ទាប់ពីឧបករណ៍ប្រើប្រាស់នោះ គឺជាប្លុកកូដដែលហៅដោយខ្លួនឯង ដែលដំណើរការនៅពេលដែលម៉ូឌុលត្រូវបាននាំចូល។

ប្រហែល 37 វិនាទីបន្ទាប់ពីនាំចូលប្លុកដែលឌិគ្រីប payload ដែលដឹកជញ្ជូននៅខាងក្នុងកញ្ចប់ដែលក្លែងបន្លំជាឧបករណ៍សាកល្បង សរសេរវាទៅឯកសារដែលលាក់នៅក្រោមថតផ្ទះរបស់អ្នកប្រើប្រាស់ ចុះឈ្មោះខ្លួនវាដើម្បីចាប់ផ្តើមឡើងវិញនៅលើរាល់ login នៅទូទាំង Windows, macOS និង Linux ហើយបើកដំណើរការស្គ្រីបដែលបានឌិគ្រីបជាដំណើរការដាច់ដោយឡែក។ គ្មានអ្វីអំពីរឿងនេះកើតឡើងក្នុងអំឡុងពេលដំឡើង npm ទេ។ វារង់ចាំកូដត្រូវបាននាំចូល និងដំណើរការ ដែលជាពេលវេលាស្ងប់ស្ងាត់ជាងការដំឡើង។

បន្ទុក​ផ្ទុក​មិន​ស្រអាប់​ទេ។ វា​បញ្ជូន​ជា base64 ធម្មតា ដូច្នេះ​ការ​ឌិគ្រីប "ឧបករណ៍​សាកល្បង" ស្ដារ​ដំណាក់កាល​ទីពីរ​ឡើង​វិញ​យ៉ាង​ពេញលេញ៖ a កាបូបលុយគ្រីបតូ និងអ្នកលួចអាថ៌កំបាំង ដែលរង់ចាំម៉ាស៊ីនទុកចោល ប្រមូលកូនសោឯកជន និងឃ្លាចាប់ផ្តើម អ៊ិនគ្រីបការរកឃើញនីមួយៗជាមួយកូនសោ RSA-4096 ដែលបានអ៊ិនកូដរួច ហើយច្រោះវាចេញដោយខ្ទាស់វាទៅកន្លែងផ្ទុក IPFS សាធារណៈ ដោយបញ្ចេញមកវិញរៀងរាល់ 12 ម៉ោងម្តង។

យើងតាមដានចង្កោមដូចជា PhantomSyncកញ្ចប់ទាំងប្រាំបីត្រូវបានផ្សាយផ្ទាល់នៅក្នុងបញ្ជីឈ្មោះ npm នៅពេលវិភាគ ដែលបានបោះពុម្ពផ្សាយក្រោមគណនីតែមួយ។

ប្រព័ន្ធអេកូម៉ោងងង
កញ្ចប់base58-utils, abi-encode, eth-dev, arb-kit, layer2-sdk, solana-key-utils, eth-wallet-helpers, crypto-validate-lib
វេទិកាដែលបានកំណត់គោលដៅវីនដូម៉ាក់អូអេសលីនុច
ឥរិយាបថស្នូលឧបករណ៍​ទម្លាក់​ពេលវេលា​នាំចូល​ដែល​បាន​ពន្យារពេល​ត្រូវ​បាន​លាក់​ជា​ឧបករណ៍​សាកល្បង; ដំឡើង​ការ​ស្ថិតស្ថេរ​ឆ្លង​វេទិកា
បន្ទុកកម្មវិធីលួចយកកាបូបលុយឌីជីថល និងសម្ងាត់ ការអ៊ិនគ្រីប RSA-4096 ការលួចយកតាមរយៈការខ្ទាស់ IPFS សាធារណៈ

កាយវិភាគសាស្ត្រវាយប្រហារ

កញ្ចប់នីមួយៗមើលទៅមិនគួរឱ្យកត់សម្គាល់នៅពេលអានលើកដំបូង។ base58-utilsឧទាហរណ៍ គឺជាលេខកូដជំនួយ 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

ជម្រើសរចនាពីរលេចធ្លោ។

បន្ទុក​ធ្វើដំណើរ​ជា​ឧបករណ៍​សាកល្បង។ ដំណាក់កាលទីពីរមិនត្រូវបានសរសេរជាកូដជាក់ស្តែងទេ។ វារស់នៅក្នុង test/fixtures/keypairs.datឯកសារ base64 ដែលឈ្មោះរបស់វាលាយបញ្ចូលគ្នាទៅក្នុងកញ្ចប់ដែលអះអាងថាអាចគ្រប់គ្រងគូសោ។ ចំពោះមនុស្សដែលកំពុងមើល tarball វាមើលទៅដូចជាទិន្នន័យគំរូ។ ចំពោះកូដដែលបានបន្ថែម វាគឺជាស្គ្រីបដើម្បីឌិកូដ និងដំណើរការ។ dropper ខ្លួនវាមិនមានអាសយដ្ឋានបណ្តាញទេ - អាសយដ្ឋានទាំងនោះស្ថិតនៅក្នុងដំណាក់កាលទីពីរ - ប៉ុន្តែមិនមានការបិទបាំងបន្ថែមទេ៖ ឧបករណ៍គឺជាស្រទាប់តែមួយនៃ base64 ដូច្នេះការឌិកូដវា (base64 -d) ស្តារឡើងវិញពេញលេញ syncd.js និងឥរិយាបថបណ្តាញរបស់វា។ ផ្នែកបន្ទាប់នឹងពន្យល់អំពីអ្វីដែលដំណាក់កាលដែលបានស្តារឡើងវិញនោះធ្វើ។

ការបំផ្ទុះត្រូវបានពន្យារពេល និងភ្ជាប់ទៅនឹងការនាំចូល មិនមែនការដំឡើងទេ។ ពីព្រោះឧបករណ៍បង្កហេតុគឺ ទាមទារ () បូករួមទាំងកម្មវិធីកំណត់ម៉ោងប្រហែល 37 វិនាទី ជាជាងឧបករណ៍ភ្ជាប់សម្រាប់ដំឡើង ឥរិយាបថនេះគេចវេះការត្រួតពិនិត្យដែលគ្រាន់តែមើល ល្ងាចដំឡើង ជំហាន ហើយការពន្យារពេលនេះមានរយៈពេលយូរជាងការដំណើរការ sandbox និង CI ដែលមានរយៈពេលខ្លីជាច្រើន។ នៅពេលដែលអ្វីមួយដំណើរការ ការដំឡើងដែលបានទាញយកកញ្ចប់មកប្រើប្រាស់ត្រូវបានបញ្ចប់ជាយូរមកហើយ។

នៅពេលដែលស្គ្រីបដែលបានឌិគ្រីបស្ថិតនៅលើថាសនៅ ~/.cache-db/.node-sync/syncd.js — ផ្លូវមួយដែលត្រូវបានជ្រើសរើសដើម្បីអានដូចជាថតឃ្លាំងសម្ងាត់ទម្លាប់ — ដំណក់ទឹកធ្វើឱ្យវារស់រានមានជីវិតពីការចាប់ផ្តើមឡើងវិញនៅលើវេទិកាសំខាន់ៗទាំងបី៖

  • លីនុច: ធាតុ cron ដែលបើកដំណើរការស្គ្រីបឡើងវិញ។ ធាតុនេះត្រូវបានដំឡើងដោយការត្រង crontab ដែលមានស្រាប់តាមរយៈ grep -v ធ្វើសមកាលកម្មដែលមានផលប៉ះពាល់នៃការទុកធាតុថ្មីចេញពីបញ្ជីធម្មតាដែល greps សម្រាប់ឈ្មោះដូចគ្នា។
  • វីនដូ: ភារកិច្ចដែលបានកំណត់ពេលដែលមានឈ្មោះថា WinNodeSyncកំណត់ឱ្យដំណើរការឡើងវិញក្នុងចន្លោះពេល 12 នាទី។
  • macOS: ការងារដែលទើបនឹងចាប់ផ្តើមដែលមានស្លាក com.apple.syncdដែលមានវត្តមាននៅក្នុងកញ្ចប់ជាច្រើន — ស្លាកដែលធ្វើត្រាប់តាមសេវាកម្មប្រព័ន្ធ Apple ស្របច្បាប់។

បន្ទាប់មក ស្គ្រីបត្រូវបានចាប់ផ្តើមភ្លាមៗជាដំណើរការដាច់ដោយឡែកមួយ ដូច្នេះវាបន្តដំណើរការបន្ទាប់ពីកម្មវិធីនាំចូលចេញ។

អ្វីដែលដំណាក់កាលទីពីរធ្វើ

ដោយសារតែឧបករណ៍នេះគឺជាស្រទាប់ base64 តែមួយ ដំណាក់កាលទីពីរឌិកូដបានយ៉ាងស្អាត និងអាចអានបានពេញលេញ។ កញ្ចប់ទាំងប្រាំបីមានស្គ្រីបដូចគ្នាមួយក្នុងចំណោមបីប្រភេទ ដែលកំណត់អត្តសញ្ញាណខ្លួនវានៅក្នុងមតិយោបល់បឋមកថា phantom syncd v3 — topo durmiente (“ម៉ូលដែលកំពុងដេក”)។ ការងាររបស់វាគឺលួចយកសម្ភារៈកាបូបលុយឌីជីថល និងអាថ៌កំបាំងរបស់អ្នកអភិវឌ្ឍន៍ ហើយផ្ញើវាចេញពីម៉ាស៊ីន។ វាដំណើរការតាមជំហានទាំងនេះ៖

  • 1. រង់ចាំរហូតដល់ម៉ាស៊ីនអស់ថាមពល។ មុននឹងធ្វើអ្វីមួយ syncd.js ពិនិត្យមើលរយៈពេលដែលអ្នកប្រើប្រាស់អសកម្ម ហើយបន្តលើសពីកម្រិតកំណត់ (ប្រហែល 15 នាទី) — xprintidle នៅលើលីនុច អ៊ីអូរ៉េក HIDIdleTime នៅលើ macOS និងសំណួរ PowerShell idle-time នៅលើ Windows។ ដូច្នេះ ការប្រមូលផលច្រើនតែកើតឡើងនៅពេលដែលគ្មាននរណាម្នាក់នៅក្តារចុច។
  • 2. ទាញយកកុងតាក់ធ្វើឱ្យសកម្មដែលគ្រប់គ្រងពីចម្ងាយស្គ្រីបទាញយកការកំណត់រចនាសម្ព័ន្ធតូចមួយពី dead-drop មុនពេលធ្វើសកម្មភាព។ ប្រភពចម្បងគឺ GitHub gist raw URL (gist.githubusercontent.com/juang55/…/cfg.txt); ស្គ្រីបនឹងធ្វើឱ្យសកម្មលុះត្រាតែការកំណត់រចនាសម្ព័ន្ធនោះអាន សកម្ម=១ប្រសិនបើ​ខ្លឹមសារ​មិនអាចប្រើបានទេ វានឹងធ្លាក់មកលើ​ឧបករណ៍កំណត់អត្តសញ្ញាណមាតិកា IPFS ដែលបានអ៊ិនកូដរឹងចំនួនបី ដែលត្រូវបានទាញយកតាមរយៈច្រកទ្វារសាធារណៈ។ gateway.pinata.cloud, ipfs.ioនិង cloudflare-ipfs.comនេះផ្តល់ឱ្យប្រតិបត្តិករនូវការគ្រប់គ្រងដោយដៃ/ដកហូតអាវុធបន្ទាប់ពីការពិត និងជម្រើសបម្រុងដែលធន់នឹងការដកចេញ។ (វ៉ារ្យ៉ង់តូចបំផុត ដឹកជញ្ជូនក្នុង លីប​ផ្ទៀងផ្ទាត់​គ្រីបតូ, ជំនួយការកាបូប ethនិង សូឡាណា-ឃី-ឧបករណ៍ប្រើប្រាស់, បានលុបស្រទាប់ gist ចេញ ហើយពឹងផ្អែកលើឧបករណ៍កំណត់អត្តសញ្ញាណ IPFS តែម្នាក់ឯង។)
  • ៣. ប្រមូលផលសម្ភារៈកាបូប និងអាថ៌កំបាំង។ ស្គ្រីបនេះដើរតាមថតផ្ទះរបស់អ្នកប្រើប្រាស់ — ~/.config/solana, ~/.ethereum/keystore, ~/.foundry, ~/.hardhat, ~ / .sshនិង ផ្ទៃតុ/ឯកសារ/ទាញយក (រួមទាំងឈ្មោះថតឯកសារជាភាសាអេស្ប៉ាញ) បូករួមទាំង ~/.env និងឯកសារ rc សែល និងសមមូល ទិន្នន័យ​កម្មវិធី ទីតាំងនៅលើ Windows។ វាផ្តោតលើកូនសោឯកជន Ethereum, កូនសោ Bitcoin WIF, ឃ្លាគ្រាប់ពូជ BIP-39, គូកូនសោ Solana, Ethereum keystore JSON, កូនសោ SSH និងអថេរបរិស្ថានសម្ងាត់។ វ៉ារ្យ៉ង់ធំជាង (នៅក្នុង abi-encode, base58-utils, eth-dev) មានវចនានុក្រម BIP-39 ពេញលេញចំនួន 2048 ពាក្យ ហើយប្រើកន្សោមធម្មតាដើម្បី extract កូនសោនីមួយៗ និងឃ្លាគ្រាប់ពូជដែលមានសុពលភាពពីអត្ថបទណាមួយដែលវាអាន។ វ៉ារ្យ៉ង់តូចៗពីរជំនួសមកវិញ ផ្គូផ្គងឯកសារតាមពាក្យគន្លឹះ (ពូជ, អនុស្សាវរីយ៍, កាបូប, metamask, ខ្មោច, សៀវភៅ, trezor, …) ហើយ​ផ្ទុក​ឡើង​ឯកសារ​ទាំងមូល។
  • ៤. អ៊ិនគ្រីប និងច្រោះតាមរយៈសេវាកម្ម pinning សាធារណៈ។ ការរកឃើញនីមួយៗត្រូវបានភ្ជាប់ជាមួយស្នាមម្រាមដៃរបស់ម៉ាស៊ីន (ឈ្មោះអ្នកប្រើប្រាស់@ឈ្មោះម៉ាស៊ីន, វេទិកា, ត្រាពេលវេលា) ហើយត្រូវបានអ៊ិនគ្រីបជាមួយនឹងកូនសោសាធារណៈ RSA-4096 ដែលបានអ៊ិនកូដរឹងដែលបានបង្កប់នៅក្នុងស្គ្រីប។ កំណត់ត្រាដែលបានអ៊ិនគ្រីបត្រូវបានផ្ទុកឡើងដោយការខ្ទាស់វាទៅ IPFS តាមរយៈ api.pinata.cloud/pinning/pinJSONToIPFSត្រូវបានផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវជាមួយនឹងលិខិតសម្គាល់ Pinata API ដែលបានអ៊ិនកូដរឹង។ មិនមានម៉ាស៊ីនមេ C2 ផ្ទាល់ខ្លួនដើម្បីរឹបអូសទេ៖ ទិន្នន័យដែលត្រូវបានគេលួចត្រូវបានចតនៅក្នុងការផ្ទុកទិន្នន័យវិមជ្ឈការសាធារណៈ ដែលអាចទាញយកបានដោយប្រតិបត្តិករដោយប្រើហាសមាតិកាលទ្ធផល។ ការផ្ទុកឡើងត្រូវបានទុកចន្លោះជាមួយនឹងការរំខានចៃដន្យពីរបីវិនាទី និងកំណត់ហេតុក្នុងស្រុកនៃ ត្រាពេលវេលា | ប្រភេទសោ | ហាសដែលបានបញ្ជូនត្រឡប់មកវិញ ត្រូវបានរក្សាទុកនៅ ~/.cache-db/.node-sync/.sl.
  • ៥. បន្ត ហើយបន្តដំណើរការរយៈពេល ១២ ម៉ោង។ ដំណាក់កាលទីពីរបង្កើតឡើងវិញនូវភាពស្ថិតស្ថេររបស់វា - ធាតុ cron នៅលើ Linux ដែលជា com.apple.syncd ការងារដែលបានបើកដំណើរការនៅលើ macOS និងភារកិច្ចដែលបានកំណត់ពេលដែលមានឈ្មោះថា WindowsNodeSync នៅលើ Windows — កំណត់ឱ្យដំណើរការឡើងវិញរៀងរាល់ 12 ម៉ោងម្តង។ ចំណាំថានេះគឺជា ផ្សេងគ្នា ឈ្មោះ​ភារកិច្ច Windows ពី​ឈ្មោះ​ដែល dropper ដំឡើង (WinNodeSync); ទាំងពីរគឺមានតម្លៃក្នុងការស្វែងរក។

ការកំណត់ពេលវេលា

កញ្ចប់ទាំងប្រាំបីត្រូវបានបោះពុម្ពផ្សាយជាបន្តបន្ទាប់នៅថ្ងៃទី 13-07-2026 និង 14-07-2026។ កញ្ចប់ជាច្រើនមានច្រើនជាងមួយកំណែ។ ដំណក់ទឹកគឺដូចគ្នាបេះបិទនៅទូទាំងកំណែ ដោយមានតែគម្លាតបន្ទាត់ប៉ុណ្ណោះដែលផ្លាស់ប្តូរនៅពេលដែលទំហំនៃលេខកូដឧបករណ៍ប្រើប្រាស់ដែលស្រាលនៅពីលើវាផ្លាស់ប្តូរ។

កាលបរិច្ឆេទព្រឹត្តការណ៍
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បន្ទុកទិន្នន័យដែលបានអ៊ិនកូដដោយ Base64 ត្រូវបានដាក់នៅខាងក្នុង tarball ជា "ឧបករណ៍សាកល្បង"

ហេដ្ឋារចនាសម្ព័ន្ធបណ្តាញដំណាក់កាលទីពីរ (ទាញយកពី 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 របស់ Pinata13c766575b9270a9825d, លិខិតសម្គាល់ការច្រោះដែលបានអ៊ិនកូដរឹង

គោលដៅប្រមូលដំណាក់កាលទីពីរ (បានទាញយកពី syncd.js)

ទ្រនិចបង្ហាញតួនាទី
~/.config/solana, ~/.ethereum/keystore, ~/.foundry, ~/.hardhat, ~/.ssh, ~/.env, ឯកសារ rc សែលថតឯកសារ/ឯកសារត្រូវបានស្វែងរកសម្រាប់សោ និងអាថ៌កំបាំង
AppData\Roaming\Solana, AppData\Local\ethereum\keystoreបានស្វែងរក Windows សមមូល
ប្រភេទវត្ថុបុរាណដែលប្រមូលផលបានកូនសោឯកជន ETH, Bitcoin WIF, ឃ្លាគ្រាប់ពូជ BIP-39, គូកូនសោ Solana, ឃ្លាំងកូនសោ Ethereum JSON, កូនសោ SSH, vars env សម្ងាត់

វត្ថុបុរាណនៃអត្ថិភាព

វេទិកាទ្រនិចបង្ហាញ
Linuxការបើកដំណើរការធាតុ cron syncd.js; បានដំឡើងតាមរយៈ crontab ដែលបានត្រងតាមរយៈ grep -v syncd
Windowsភារកិច្ចដែលបានកំណត់ពេល WinNodeSync (ដំណក់ទឹក) និង WindowsNodeSync (ដំណាក់កាលទីពីរ)
MacOSស្លាកសញ្ញា launchd com.apple.syncd
ទាំងអស់ដំណាក់កាលទីពីរនៅតែបន្តកើតមានលើវដ្ត 12 ម៉ោង

ឥរិយាបថ

  • អនុគមន៍​ហៅ​ដោយ​ខ្លួនឯង​ត្រូវ​បាន​បន្ថែម​បន្ទាប់​ពី ការនាំចេញម៉ូឌុល, កាលវិភាគ ក កំណត់ម៉ោងចេញ ប្រហែល 37,000 ms ពេលនាំចូល។
  • ដំណើរការកុមារ ពងកូន ("ណូត", ) ជាមួយនឹងសំណុំជម្រើសដាច់ដោយឡែក។
  • ការធ្វើឱ្យសកម្មដោយបិទជិតនៅដំណាក់កាលទីពីរ (xprintidle / អ៊ីអូរ៉េក ពេលវេលាទំនេរ HIDIdle / PowerShell; ~កម្រិតកំណត់ 15 នាទី)។
  • ការអ៊ិនគ្រីប RSA-4096 ក្នុងមួយការរកឃើញ បន្ទាប់មក HTTPS POST ទៅកាន់ API ភ្ជាប់ IPFS សាធារណៈ។

កញ្ចប់ និងកំណែ (npm, publisher solbuilder_io)

កញ្ចប់សមាជិកកំណែ
base58-utils1.0.0, 1.0.1, 1.0.3
abi-encode1.0.0, 1.0.1, 1.0.2
eth-dev1.0.0, 1.0.1, 1.0.2
arb-kit1.0.0, 1.0.1
layer2-sdk1.0.0, 1.0.1
solana-key-utils1.0.0
eth-wallet-helpers1.0.0
crypto-validate-lib1.0.0

បោះពុម្ពផ្សាយ

  • សូលប៊ីឌើរ_អាយអូ - angel_lopez89[@]ប្រូតុង[.]ខ្ញុំអ៊ីមែលមិនទាន់បានផ្ទៀងផ្ទាត់ គ្មានគណនីត្រួតពិនិត្យប្រភពដែលបានផ្ទៀងផ្ទាត់ គ្មានឃ្លាំងដែលបានភ្ជាប់។

ការសន្មត់ និងឥរិយាបថដែលសង្កេតឃើញ

កញ្ចប់ទាំងប្រាំបីចែករំលែកគណនីអ្នកបោះពុម្ពផ្សាយមួយ និងបន្ទុកទិន្នន័យមួយ។ កញ្ចប់នីមួយៗគឺជាកញ្ចប់តូចតាចមួយ — កូដឧបករណ៍ប្រើប្រាស់ពិតប្រាកដពីរបីគីឡូបៃដែលមានឧបករណ៍ទម្លាក់ដូចគ្នាត្រូវបានភ្ជាប់ — បានបោះពុម្ពផ្សាយដោយគ្មានឃ្លាំងផ្ទុកដែលមានតំណភ្ជាប់ និងក្រោមអ៊ីមែលរចនាប័ទ្មបោះចោលដែលមិនបានផ្ទៀងផ្ទាត់។ ឯកសណ្ឋាននោះ ផ្លូវទម្លាក់ដែលបានចែករំលែក ស្លាករក្សាការចែករំលែក និង keypairs.dat ឯកសារ staging គឺជាអ្វីដែលភ្ជាប់ចង្កោមជាមួយគ្នា។

កញ្ចប់ទាំងនោះមានភាពស្មោះត្រង់មិនធម្មតាអំពីអាកប្បកិរិយារបស់ពួកគេផ្ទាល់។ សូឡាណា-ឃី-ឧបករណ៍ប្រើប្រាស់ មានមតិយោបល់ក្នុងជួរដែលពិពណ៌នាអំពីប្លុកដែលបានបន្ថែមជាពាក្យសាមញ្ញ - មួយដាក់ស្លាកវា PHANTOM: ការតស៊ូមើលមិនឃើញមួយទៀត (ជាភាសាអេស្ប៉ាញ) អានថា Ejecutar topo en background, “ដំណើរការ mole នៅផ្ទៃខាងក្រោយ”។ ទាំងនេះគឺជាចំណារពន្យល់ផ្ទាល់របស់កូដអំពីអ្វីដែលវាធ្វើ; ឈ្មោះយុទ្ធនាការនៅក្នុងការបង្ហោះនេះត្រូវបានដកចេញពីស្លាកដំបូងនោះរួមជាមួយនឹង “sync daemon” ក្លែងក្លាយរបស់ node (ធ្វើសមកាលកម្ម) ដែលយន្តការតស៊ូធ្វើត្រាប់តាម។

យើងពិពណ៌នាតែអ្វីដែលកូដអាចសង្កេតឃើញប៉ុណ្ណោះ។ ការដាក់ឈ្មោះកញ្ចប់ — ពាក្យទាំងអស់សម្រាប់ឧបករណ៍គ្រីបតូ កាបូបលុយ និងប្លុកឆេន — បង្ហាញពីទស្សនិកជនអ្នកអភិវឌ្ឍន៍ដែលទំនងជាទាញយកវាតាមឈ្មោះ។ វាមិនកំណត់ដោយខ្លួនឯងថាអ្នកណាជាអ្នកបោះពុម្ពផ្សាយនោះទេ។ ដំណាក់កាលទីពីរអាចសង្គ្រោះបានយ៉ាងពេញលេញដោយការឌិគ្រីបឧបករណ៍ base64 ហើយឥរិយាបថរបស់វាត្រូវបានពិពណ៌នាខាងលើ៖ វាប្រមូលសោកាបូបលុយ ឃ្លាគ្រាប់ពូជ និងអាថ៌កំបាំង ហើយច្រោះវាចេញ ដែលបានអ៊ិនគ្រីបដោយ RSA ​​ទៅកាន់កន្លែងផ្ទុក IPFS សាធារណៈតាមរយៈ Pinata។ ជម្រើសរចនាគួរឱ្យកត់សម្គាល់មួយគឺអវត្តមាននៃម៉ាស៊ីនមេ C2 ឯកជន — ការកំណត់រចនាសម្ព័ន្ធមកដល់ពី GitHub gist និង IPFS ហើយទិន្នន័យដែលត្រូវបានគេលួចត្រូវបានចតនៅក្នុងការផ្ទុកវិមជ្ឈការសាធារណៈដែលត្រូវបានវាយដោយហាសមាតិកា ដែលទាំងពីរនេះពិបាកចាប់យកជាងម៉ាស៊ីនដែលគ្រប់គ្រងដោយអ្នកវាយប្រហារតែមួយ។ មិនមានរបាយការណ៍សាធារណៈពីមុនដែលត្រូវគ្នានឹងចង្កោមនេះត្រូវបានរកឃើញនៅពេលសរសេរនោះទេ។

ផលប៉ះពាល់ និន្នាការ និងការណែនាំសម្រាប់អ្នកការពារ

អ្នកណាដែលត្រូវបានលាតត្រដាង។ អ្នកណាដែលបានបន្ថែមកញ្ចប់មួយក្នុងចំណោមកញ្ចប់ទាំងនេះទៅក្នុងគម្រោង Node ហើយបន្ទាប់មកដំណើរការកូដដែលនាំចូលវា។ ដោយសារតែការបំផ្ទុះគឺជាពេលវេលានាំចូលជាជាងពេលវេលាដំឡើង គ្រាន់តែមានកញ្ចប់មានវត្តមានមិនគ្រប់គ្រាន់ទេ — ប៉ុន្តែការប្រើប្រាស់ធម្មតាណាមួយដែលផ្ទុកម៉ូឌុលឈានដល់បន្ទុក។ ឈ្មោះទាក់ទាញផ្តោតលើអ្នកអភិវឌ្ឍន៍ដែលកំពុងសាងសង់លើ Ethereum, Solana, Arbitrum, Layer-2 និងឧបករណ៍កាបូប/អ៊ិនកូដទូទៅ — ប្រជាជនទំនងជាមានទ្រព្យសកម្មពិតប្រាកដដែលដំណាក់កាលទីពីរកំពុងតាមប្រមាញ់។ អ្នកណាដែលបានដំណើរការម៉ូឌុលមួយក្នុងចំណោមម៉ូឌុលទាំងនេះនៅលើម៉ាស៊ីនដែលកាន់កូនសោកាបូប ឃ្លាគ្រាប់ពូជ ឃ្លាំងកូនសោ SSH ឬ .NS អាថ៌កំបាំងគួរតែចាត់ទុកព័ត៌មានសម្ងាត់ទាំងនោះថាមានការលួចចូល ហើយបង្វែរវាចេញ។

លំនាំពីរដែលមានតម្លៃក្នុងការធ្វើឱ្យស៊ីជម្រៅ។ ជាលើកដំបូង, បន្ទុកជាគ្រឿងបរិក្ខារ: ដឹកជញ្ជូនដំណាក់កាលទីពីរជា base64 នៅខាងក្នុងឯកសារទិន្នន័យដែលមានឈ្មោះគួរឱ្យជឿជាក់ (test/fixtures/keypairs.dat) រក្សាប្រភពដែលអាចមើលឃើញនៃកញ្ចប់ឱ្យមើលទៅស្អាត ហើយរុញខ្លឹមសារព្យាបាទចូលទៅក្នុងឯកសារដែលឧបករណ៍ពិនិត្យឡើងវិញ និងទិន្នន័យដែលមនុស្សលួចចម្លងជារឿយៗចាត់ទុកថាជាទិន្នន័យអសកម្ម។ ទីពីរ ការប្រតិបត្តិដែលពន្យារពេលនាំចូលជាមួយនឹងភាពស្ថិតស្ថេរឆ្លងវេទិកា៖ ការផ្លាស់ទីគន្លឹះចេញពីទំពក់ដំឡើង បន្ថែមកម្មវិធីកំណត់ពេលវេលា ហើយបន្ទាប់មកបន្តឆ្លងកាត់ cron ភារកិច្ចដែលបានកំណត់ពេល និង launchd គឺជាជំហានដោយចេតនាឆ្ងាយពីបច្ចេកទេសស្គ្រីបដំឡើងដែលមានសំឡេងរំខានជាង ដែលការស្កេនបញ្ជីឈ្មោះដោយស្វ័យប្រវត្តិតាមដានយ៉ាងដិតដល់បំផុត។

ការណែនាំសម្រាប់អ្នកការពារ និងអ្នកថែទាំ៖

  • ដោះស្រាយកូដដែលបានបន្ថែមបន្ទាប់ពី ការនាំចេញម៉ូឌុល ជាអាទិភាពនៃការពិនិត្យឡើងវិញ — តក្កវិជ្ជាដំណក់ទឹកច្រើនតែលាក់ខ្លួននៅខាងក្រោមផ្ទៃម៉ូឌុល "ពិត"។
  • កុំសន្មតថាឯកសារទិន្នន័យគឺអសកម្ម។ ប្លុក base64 មួយនៅក្រោម ការធ្វើតេស្ត/ការប្រកួត/ ដែលត្រូវបានអាននៅពេលដំណើរការ ហើយឌិគ្រីបគឺជាឯកសារដែលអាចប្រតិបត្តិបាននៅជាប់នឹងឯកសារ។ ការអានឯកសារនៅពេលដំណើរការនៃឯកសារហ្វិចទ័រដែលផ្តល់ចំណីដល់ មុខងារ/ការគេចចេញ/សរសេរ-បន្ទាប់មក-ពង ខ្សែសង្វាក់។
  • ស្វែងរកផ្លូវធ្លាក់ ~/.cache-db/.node-sync/ និងសម្រាប់ឯកតាអចិន្ត្រៃយ៍ WinNodeSync (ភារកិច្ចដែលបានកំណត់ពេល) និង com.apple.syncd (launchd) នៅលើម៉ាស៊ីនអ្នកអភិវឌ្ឍន៍ដែលបានទាញយកឈ្មោះទាំងនេះ។
  • ការជូនដំណឹងអំពីដំណើរការ Node ដែលបង្កើតធាតុ cron ភារកិច្ចដែលបានកំណត់ពេល ឬការងារដែលបើកដំណើរការ — បណ្ណាល័យស្របច្បាប់កម្រធ្វើបែបនេះនៅពេលនាំចូលណាស់។
  • ចូលចិត្ត​កំណែ​ដែល​បាន​ចាក់សោ និង​កំណែ​ដែល​បាន​ខ្ទាស់ ហើយ​ពិនិត្យ​មើល​ភាព​ខុស​គ្នា​នៃ​ការ​ពឹងផ្អែក "ឧបករណ៍​ប្រើប្រាស់" ថ្មី​តូចៗ​ណាមួយ ជាពិសេស កញ្ចប់សូន្យភាពអាស្រ័យបានបោះពុម្ពផ្សាយ ដោយគណនីដែលមិនបានផ្ទៀងផ្ទាត់ ដែលគ្មានឃ្លាំងដែលបានភ្ជាប់។

សម្រាប់អ្នកការពារការចុះឈ្មោះ ចំណុចសំខាន់គឺថា ការត្រួតពិនិត្យ install-hook គឺចាំបាច់ ប៉ុន្តែមិនគ្រប់គ្រាន់ទេ៖ ដំណក់ទឹកដែលពន្យារពេលកំណត់ពេលវេលានាំចូល ដែលរៀបចំនៅក្នុងឯកសារទិន្នន័យនឹងឆ្លងកាត់ការត្រួតពិនិត្យពេលវេលាដំឡើងតែប៉ុណ្ណោះ ហើយជំហាននៃការបន្តទៅមុខជារឿយៗគឺជាសញ្ញាដែលអាចសង្កេតឃើញខ្លាំងបំផុតដែលនៅសេសសល់ដើម្បីចាប់បាន។

ឧបករណ៍វិភាគសមាសភាពកម្មវិធី sca
ផ្តល់អាទិភាព ដោះស្រាយ និងធានាសុវត្ថិភាពហានិភ័យផ្នែកទន់របស់អ្នក
ទទួលបានគណនីឥតគិតថ្លៃរបស់អ្នក។
មិនតម្រូវឱ្យមានកាតឥណទានទេ។

ធានាសុវត្ថិភាពនៃការអភិវឌ្ឍន៍ និងការដឹកជញ្ជូនកម្មវិធីរបស់អ្នក

ជាមួយឈុតផលិតផល Xygeni