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 របស់ Pinata | 13c766575b9270a9825d, លិខិតសម្គាល់ការច្រោះដែលបានអ៊ិនកូដរឹង |
គោលដៅប្រមូលដំណាក់កាលទីពីរ (បានទាញយកពី 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-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 ឯកសារ 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 គឺចាំបាច់ ប៉ុន្តែមិនគ្រប់គ្រាន់ទេ៖ ដំណក់ទឹកដែលពន្យារពេលកំណត់ពេលវេលានាំចូល ដែលរៀបចំនៅក្នុងឯកសារទិន្នន័យនឹងឆ្លងកាត់ការត្រួតពិនិត្យពេលវេលាដំឡើងតែប៉ុណ្ណោះ ហើយជំហាននៃការបន្តទៅមុខជារឿយៗគឺជាសញ្ញាដែលអាចសង្កេតឃើញខ្លាំងបំផុតដែលនៅសេសសល់ដើម្បីចាប់បាន។







