Oktober 08, 2026

Waspada MALFEX: 8 Paket npm Berbahaya Diunduh 40 Ribu Kali


 

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

  1. 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.
  2. 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.
  3. Bandingkan jumlah unduhan dengan usia paket. Unduhan tinggi bukan jaminan aman — function-flag punya 37 ribu unduhan tanpa satu pun advisori.
  4. 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

  1. Intip skrip lifecycle di package.json. Paket utilitas biasa (misalnya helper format string) tidak punya alasan menjalankan skrip preinstall atau postinstall yang mengunduh file dari internet. Ini adalah bendera merah terbesar kampanye MALFEX.
  2. Unduh tanpa menginstal dulu. Kamu bisa mengunduh tarball paket dan memeriksanya secara manual sebelum memutuskan memasang — jangan langsung npm install paket yang belum dikenal.
  3. Jalankan npm audit secara rutin pada proyekmu untuk mendeteksi dependensi yang sudah diketahui bermasalah.

3. Kunci dependensimu

  • Selalu commit package-lock.json ke 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:

  1. Isolasi mesin. Putuskan dari jaringan (cabut kabel/Wi-Fi) agar RAT tidak bisa berkomunikasi dengan C2 dan data tidak terus bocor.
  2. 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.
  3. 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.
  4. Audit seluruh dependensi proyek. Jalankan npm audit, periksa package-lock.json untuk paket-paket lain dari penerbit yang sama, dan telusuri apakah ada dependensi transitif yang ikut tercemar.
  5. Periksa akun yang datanya mungkin dicuri. Mengingat movinlike mengincar 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