
Credit image: Freepix
Minggu ini, beberapa pustaka JavaScript yang sangat populer telah dibajak dan diubah menjadi penyebar malware. Ini adalah serangan “rantai pasok” (supply chain attack) yang berhasil dilakukan melalui phising (penipuan) yang ditargetkan dan pencurian data login.
Pustaka npm bernama eslint-config-prettier, yang diunduh lebih dari 30 juta kali setiap minggunya, menjadi korban setelah pembuatnya terjebak dalam serangan phising. Pustaka lain dari pembuat yang sama, seperti eslint-plugin-prettier, synckit, @pkgr/core, dan napi-postinstall, juga menjadi target.
Penyerang menggunakan data login yang dicuri untuk menerbitkan beberapa versi palsu dari pustaka-pustaka tersebut. Versi palsu ini sudah disisipi kode jahat yang bisa menginfeksi komputer Windows.
Baca juga: Modus Baru Penipuan Ancaman Callback Phising |
Pembuat Terkena Phishing, Pustaka Jadi Korban

Pada tanggal 18 Juli, para pengembang mulai melihat perilaku aneh setelah menginstal versi 8.10.1, 9.1.1, 10.1.6, dan 10.1.7 dari eslint-config-prettier
. Versi-versi ini diterbitkan ke npm (registry tempat pustaka JavaScript disimpan), tetapi tidak ada perubahan yang sesuai di repositori GitHub (tempat kode asli disimpan) yang bisa membenarkan rilis tersebut. Hal ini langsung menimbulkan kecurigaan di komunitas open-source.
Pustaka seperti eslint-config-prettier
dan eslint-plugin-prettier
sebenarnya dibuat untuk mempermudah pengembang bekerja dengan Prettier dan ESLint. Fungsinya untuk memastikan aturan format kode selalu rapi dan konsisten di seluruh proyek tanpa konflik.
Seorang pengembang bernama Dasa Paddock awalnya melaporkan masalah ini di GitHub, dan anggota komunitas lainnya dengan cepat ikut memberikan informasi.
Tak lama kemudian, pembuat pustaka tersebut, JounQin, mengonfirmasi bahwa ia telah menjadi korban serangan phising. Ini memungkinkan pihak yang tidak berwenang mendapatkan akses ke token npm-nya (semacam kunci akses) dan menerbitkan versi-versi yang telah disusupi.
“Ini adalah email phising itu,” tulis JounQin, sambil membagikan tangkapan layar email “Verifikasi akun Anda” yang terlihat sangat meyakinkan yang ia terima.
Email tersebut disamarkan agar terlihat berasal dari “support@npmjs.com,” padahal tautan di dalamnya mengarahkan pengguna ke domain ilegal npnjs[.]com
.
“Saya sudah menghapus token npm itu dan akan menerbitkan versi baru sesegera mungkin,” kata JounQin. “Terima kasih semuanya, dan maaf atas kelalaian saya,” lanjut pembuat tersebut.
Baca juga: Bertahan dari Serangan Siber |
Script Postinstall Berbahaya Menjalankan DLL Windows
Pada versi-versi yang berbahaya, ada sebuah script npm bernama postinstall
dengan nama install.js
yang akan otomatis berjalan begitu pustaka diinstal.
Script install.js
ini berisi fungsi mencurigakan bernama logDiskSpace()
. Bertentangan dengan namanya, fungsi ini tidak berfungsi memantau ruang disk. Sebaliknya, fungsi ini berusaha untuk menjalankan file DLL (Dynamic Link Library) berbahaya bernama node-gyp.dll
yang dibundel di dalam pustaka tersebut, melalui proses sistem Windows rundll32
.
Saat artikel ini ditulis, file DLL tersebut, yang dikenali sebagai trojan, memiliki skor deteksi 19/72 di VirusTotal. Ini berarti sebagian besar antivirus masih belum bisa mendeteksinya.
Akun X (Twitter) @MalwareUtkonos juga mengungkapkan bahwa pustaka npm got-fetch
(dari pembuat yang berbeda) juga dibajak dalam serangan yang identik.
Kemungkinan besar, pelaku ancaman yang sama berada di balik kedua serangan tersebut, mengingat file crashreporter.dll
yang ada di got-fetch
memiliki kemiripan dengan node-gyp.dll
yang disisipkan di pustaka JounQin.
BleepingComputer mengamati bahwa per kemarin, pembuat got-fetch
telah mengarsipkan seluruh repositori GitHub pustaka tersebut dan mendeklarasikan semua versi npmjs.com (bahkan yang tidak terpengaruh) sebagai “tidak direkomendasikan” (deprecated), kemungkinan sebagai respons terhadap serangan tersebut. Ia bahkan meminta pengguna untuk “mohon gunakan fetch bawaan di nodejs” sebagai gantinya.
Baca juga: Ancaman Rantai Pasok Mengintai UMKM |
Apa yang Harus Anda Lakukan?

Jika Anda seorang pengembang atau pengguna yang sering menginstal pustaka JavaScript, ini yang harus Anda lakukan:
1. Jangan Instal Versi-Versi yang Terkena Dampak Berikut:
eslint-config-prettier
versi 8.10.1, 9.1.1, 10.1.6, 10.1.7.eslint-plugin-prettier
versi 4.2.2, 4.2.3.synckit
versi 0.11.9@pkgr/core
versi 0.2.8napi-postinstall
versi 0.3.1got-fetch
versi 5.1.11, 5.1.12
2. Periksa Lockfile Anda: Pastikan file seperti package-lock.json
, pnpm-lock.yaml
, bun.lock
, atau yarn.lock
Anda tidak merujuk ke versi-versi berbahaya ini.
3. Periksa Sistem Anda: Jika Anda melakukan deploy (membangun/menerbitkan aplikasi) setelah tanggal 18 Juli, periksa log CI (Continuous Integration) dan lingkungan runtime Anda untuk mencari tanda-tanda kompromi, terutama pada mesin Windows.
4. Ubah Kata Sandi/Rahasia: Pertimbangkan untuk mengubah password atau kunci rahasia apa pun yang mungkin telah terekspos selama proses pembangunan aplikasi yang terpengaruh.
5. Periksa Pustaka Lain: Pembuat pustaka juga menandai versi yang terpengaruh sebagai “deprecated” di registry npmjs. Selain itu, seorang pengguna GitHub menyarankan agar setiap pustaka lain yang diterbitkan oleh pembuat yang sama juga diperiksa untuk mencari tanda-tanda kerusakan.
Konklusi
Kompromi ini menyusul serangkaian serangan rekayasa sosial serupa yang telah menargetkan pengembang pustaka populer dalam beberapa waktu terakhir.
Pada bulan Maret, lebih dari sepuluh pustaka npm yang banyak digunakan disusupi dan diubah menjadi pencuri informasi.
Bulan lalu, 17 paket Gluestack dengan lebih dari satu juta unduhan mingguan dibajak untuk menyebarkan Remote Access Trojan (RAT).
Ekosistem open-source sebagian besar beroperasi berdasarkan kepercayaan. Insiden seperti ini menggarisbawahi kerapuhan keamanan rantai pasok perangkat lunak dan pentingnya keamanan bagi pembuat pustaka. Satu klik yang salah sudah cukup untuk membahayakan jutaan pengguna.
Sumber berita: