Bayangkan kamu mengetik npm install untuk sebuah paket utilitas yang tampak biasa — namanya meyakinkan, dokumentasinya rapi, bahkan sudah diunduh puluhan ribu kali. Tapi di balik layar, paket itu justru menginstal remote access trojan (RAT) dan pencuri kredensial di komputermu. Inilah modus kampanye malware MALFEX yang diungkap tim riset Checkmarx dan CloudSEK pada 1 Oktober 2026: delapan paket berbahaya di registry npm yang totalnya telah diunduh 40.767 kali — dan tiga di antaranya masih bisa diinstal hingga laporan itu terbit.
Yang membuat kasus ini layak diperhatikan developer Indonesia: kampanyenya bukan serangan kemarin sore. Operator di balik MALFEX aktif sejak Agustus 2023 — lebih dari tiga tahun menyusupkan paket berbahaya ke ekosistem npm sambil terus menyempurnakan tekniknya.
Anatomi Kampanye MALFEX
Menurut laporan Checkmarx, satu operator (diduga berbahasa Portugis, dengan akun npm dan repositori GitHub yang saling terhubung) menerbitkan total 12 paket: delapan berbahaya, empat sisanya paket "penutup" yang tampak jinak. Total 40.767 unduhan tercatat per 1 Oktober 2026 — dengan 3.017 unduhan dalam seminggu terakhir sebelum laporan terbit. Artinya, kampanye ini masih aktif, bukan artefak lama yang sudah mati.
Paket yang paling mencolok adalah function-flag: berbahaya sejak Juli 2025 dan menyumbang 37.419 unduhan — namun hingga laporan terbit tidak ada satu pun peringatan keamanan resmi yang menandainya di npm. Dua paket lain yang masih bisa diinstal adalah function-color dan cdn-img-fetch. Lima paket sudah dihapus dari registry, tetapi advisori OSV hanya diterbitkan untuk sebagian paket — celah dokumentasi yang membuat ancaman ini sulit terdeteksi.
"Jika salah satu paket ini terinstal di Windows, isolasi host, hapus persistensi, dan rotasi kredensial yang terekspos dari sistem yang bersih." — anjuran respons insiden Checkmarx
Tiga Jalur Serangan, Satu Aktor
Checkmarx mengidentifikasi tiga jalur pengiriman independen yang tidak berbagi infrastruktur, tetapi terhubung oleh kesamaan kode dan perilaku — indikasi kuat satu aktor bereksperimen dari waktu ke waktu:
1. Overlord RAT via skrip instalasi
Paket seperti tlxbnhd, tldriver, dan mxdriver memanfaatkan skrip preinstall/postinstall npm — kode yang otomatis berjalan saat kamu menjalankan npm install. Skrip itu mengunduh executable Windows yang disamarkan sebagai file PNG, berisi skrip terenkripsi yang akhirnya memuat Overlord RAT, RAT berbasis Go yang bersifat open source. Overlord memberi penyerang kendali penuh: tangkapan layar, keylogging, remote shell, pencarian file, bahkan desktop tersembunyi agar tak terdeteksi. Varian dalam kampanye ini bahkan dapat memakai blockchain Solana untuk mengambil alamat server command-and-control (C2) terbaru — teknik yang membuat infrastruktur penyerang sulit dilacak dan dimatikan.
2. Infostealer movinlike saat paket dimuat
Jalur kedua mengeksekusi kode berbahaya saat paket di-require/diimpor oleh aplikasi — bukan saat instalasi. Payload-nya adalah infostealer Node.js bernama "movinlike" yang menargetkan delapan klien Discord, tujuh browser populer, dan dompet kripto untuk mencuri kredensial dan token akses. Token Discord yang dicuri bisa dimonetisasi atau dipakai untuk pengambilalihan akun lanjutan.
3. Downloader spesifik versi
Jalur ketiga memakai downloader yang aktif pada versi paket tertentu — contohnya cdn-img-fetch, di mana advisori OSV hanya mencakup versi 1.0.0 dan 1.0.1, padahal versi 1.0.2 dan 1.0.3 juga berbahaya. Pola ini menunjukkan aktor sengaja menyisipkan muatan hanya di rilis tertentu agar lolos dari pemindaian.
Satu catatan penting: meski skrip berbahaya bisa terpicu di Windows, macOS, dan Linux, payload akhirnya hanya berjalan di Windows.
Tutorial: Cara Memeriksa Paket npm Sebelum Install
Kampanye MALFEX berhasil justru karena korbannya melewatkan pemeriksaan dasar. Jadikan langkah berikut kebiasaan sebelum menambah dependensi apa pun:
1. Selidiki identitas paketnya
- Periksa profil maintainer. Buka halaman npm paket tersebut: apakah penerbitnya akun baru, tidak punya paket lain yang kredibel, atau namanya mirip akun resmi? Akun-akun MALFEX memakai nama yang mengandung "malfex" dan terhubung ke satu repositori GitHub.
- Periksa riwayat versi dan tanggal rilis. Paket legit yang matang punya riwayat rilis bertahap selama bertahun-tahun. Paket yang tiba-tiba muncul dengan versi 1.0.0 lalu langsung ramai diunduh patut dicurigai.
- Bandingkan jumlah unduhan dengan usia paket. Unduhan tinggi bukan jaminan aman —
function-flagpunya 37 ribu unduhan tanpa satu pun advisori. - Baca repositori sumbernya. Pastikan ada tautan GitHub yang valid dan commit history yang wajar — bukan repo kosong atau baru dibuat.
2. Periksa isi paket sebelum dipakai
- Intip skrip lifecycle di
package.json. Paket utilitas biasa (misalnya helper format string) tidak punya alasan menjalankan skrippreinstallataupostinstallyang mengunduh file dari internet. Ini adalah bendera merah terbesar kampanye MALFEX. - Unduh tanpa menginstal dulu. Kamu bisa mengunduh tarball paket dan memeriksanya secara manual sebelum memutuskan memasang — jangan langsung
npm installpaket yang belum dikenal. - Jalankan
npm auditsecara rutin pada proyekmu untuk mendeteksi dependensi yang sudah diketahui bermasalah.
3. Kunci dependensimu
- Selalu commit
package-lock.jsonke repositori agar seluruh tim memakai versi dependensi yang persis sama dan terverifikasi. - Gunakan versi pin (exact), bukan rentang (
^/~), untuk dependensi kritis — supaya update minor yang disusupi malware tidak masuk diam-diam. - Pertimbangkan mode instalasi yang menonaktifkan skrip lifecycle saat memasang paket yang belum terverifikasi.
Sudah Terlanjur Install? Ini Langkah Pembersihannya
Kalau kamu menemukan salah satu dari delapan paket MALFEX di package.json atau node_modules-mu — terutama di mesin Windows — anggap sistem sudah terkompromi dan ikuti urutan respons insiden dari Checkmarx:
- Isolasi mesin. Putuskan dari jaringan (cabut kabel/Wi-Fi) agar RAT tidak bisa berkomunikasi dengan C2 dan data tidak terus bocor.
- Hapus paket dan persistensinya. Uninstall paket dari proyek, lalu periksa mekanisme persistensi umum di Windows: entri autostart, scheduled task, dan proses asing yang berjalan. Karena Overlord punya kemampuan sembunyi, pemindaian antivirus terbaru dari vendor tepercaya sangat disarankan.
- Rotasi semua kredensial dari sistem yang bersih. Ganti password, revoke token API, dan putar ulang secret dari komputer lain yang dipastikan bersih — bukan dari mesin yang terinfeksi, karena keylogger masih bisa merekam.
- Audit seluruh dependensi proyek. Jalankan
npm audit, periksapackage-lock.jsonuntuk paket-paket lain dari penerbit yang sama, dan telusuri apakah ada dependensi transitif yang ikut tercemar. - Periksa akun yang datanya mungkin dicuri. Mengingat
movinlikemengincar Discord, browser, dan dompet kripto — cek aktivitas login asing di akun-akun tersebut.
Pengaturan Aman untuk Tim dan Organisasi
Untuk tim engineering, pertahanan tidak bisa bergantung pada kewaspadaan individu saja:
- Gunakan private registry/proxy sebagai satu-satunya sumber paket — dependensi baru hanya masuk setelah melewati kurasi.
- Terapkan allowlist dependensi: daftar paket yang disetujui, lengkap dengan versi pin. Penambahan paket baru butuh review rekan tim.
- Integrasikan pemindaian SCA (Software Composition Analysis) ke pipeline CI/CD — setiap pull request yang menambah dependensi otomatis dipindai.
- Blokir delapan paket MALFEX secara eksplisit di level registry/proxy organisasi, sesuai anjuran Checkmarx.
FAQ
Apakah pengguna Linux atau Mac aman dari MALFEX?
Relatif, tapi jangan lengah. Payload akhirnya hanya berjalan di Windows — di macOS dan Linux ia gagal diam-diam. Namun tekniknya (skrip postinstall berbahaya) bersifat lintas platform, dan varian masa depan bisa saja menargetkan sistem lain.
Kenapa paket dengan 37 ribu unduhan tidak ditandai berbahaya?
Ini pelajaran terbesar kasus ini: popularitas bukan validasi keamanan. Advisori OSV hanya diterbitkan untuk enam dari delapan paket berbahaya, dan function-flag — penyumbang unduhan terbesar — tidak punya satu pun advisori. Registry sebesar npm tidak selalu secepat penyerang.
Bagaimana cara tahu paket yang saya pakai termasuk MALFEX?
Cari nama-nama ini di package.json, package-lock.json, dan node_modules: function-flag, function-color, cdn-img-fetch, tlxbnhd, tldriver, mxdriver, img-to-native, native-runner. Menurut laporan Checkmarx, tiga yang pertama masih bisa diinstal per 1 Oktober 2026.
Apakah npm audit cukup untuk mendeteksi MALFEX?
Tidak selalu. npm audit mengandalkan basis data advisori yang sudah diterbitkan — dan kasus ini menunjukkan advisori bisa tidak ada sama sekali. Kombinasikan dengan pemeriksaan manual (skrip lifecycle, reputasi maintainer) dan pemindai SCA.
Apa bedanya MALFEX dengan typosquatting biasa?
Typosquatting mengandalkan salah ketik (lodahs vs lodash). MALFEX lebih licin: memakai nama yang tampak legit (function-flag, cdn-img-fetch) plus paket "penutup" yang jinak, sehingga terlihat seperti proyek open source sungguhan — social engineering, bukan sekadar salah ketik.
Kesimpulan
MALFEX adalah pengingat pahit bahwa rantai pasok software adalah permukaan serangan, bukan sekadar urusan kenyamanan developer. Satu operator, bermodalkan nama paket yang meyakinkan dan skrip instalasi yang dieksekusi otomatis, berhasil menanam RAT dan pencuri kredensial di puluhan ribu mesin selama tiga tahun — dengan tiga paket yang masih hidup di registry saat laporan terbit.
Sumber
- Checkmarx — MALFEX npm Malware Campaign: Three Payloads And An Adversary That Signs Their Work (1 Okt 2026)
- SecurityWeek — Long-Running NPM Malware Campaign Accumulates 40,000 Downloads
- SparTech Software — MALFEX npm malware campaign racks up 40k downloads
- Cybernoz/Hackread — MALFEX npm Attack Spreads Windows RAT, Steals Discord and Browser Data
