Waspada: Serangan Besar pada Suply Chain npm Mengancam Miliaran Unduhan Setiap Minggu

Pada 8 September 2025, ekosistem JavaScript mengalami serangan besar pada rantai pasok (supply chain attack) yang menargetkan 18 paket npm yang banyak digunakan. Paket-paket ini saja diunduh lebih dari 2,6 miliar kali setiap minggu, menjadikannya salah satu serangan npm paling serius dalam beberapa tahun terakhir. Kejadian ini menyoroti semakin besarnya risiko ancaman rantai pasok dalam pengembangan berbasis cloud, dan menegaskan betapa pentingnya keamanan yang berfokus pada pencegahan sejak awal.

Dalam rantai pasok perangkat lunak open-source, penyebaran cepat kode berbahaya melalui dependensi yang dipercaya menimbulkan risiko besar bagi para developer dan organisasi yang mengandalkan paket-paket tersebut. Ketika serangan ini terjadi, komunitas dan penyedia layanan keamanan bergerak cepat untuk meminimalkan dampaknya, tetapi kejadian ini menjadi pengingat bahwa ancaman terhadap ekosistem pengembangan perangkat lunak terus ada dan harus diwaspadai.

Serangannya

Serangan ini dimulai melalui kampanye phishing yang ditargetkan kepada salah satu pengelola paket (maintainer) bernama “qix.” Penyerang menyamar sebagai tim dukungan npm dan mengklaim bahwa kredensial autentikasi dua faktor (2FA) milik maintainer perlu diperbarui. Setelah mengikuti instruksi tersebut, maintainer tanpa sengaja memberikan akses akunnya kepada penyerang.

Dengan akses itu, penyerang mengunggah pembaruan berbahaya ke 18 paket npm, termasuk pustaka populer seperti debug, chalk, dan ansi-styles. Versi berbahaya ini aktif selama sekitar dua jam sebelum terdeteksi dan dihapus. Dalam waktu singkat itu saja, serangan ini berpotensi memengaruhi jutaan developer dan lingkungan cloud yang mengandalkan pustaka-pustaka tersebut. Kode berbahaya yang ditanamkan adalah jenis “crypto-stealer” atau “wallet-drainer”, yang dirancang untuk dijalankan di browser pengguna dan mencuri uang dari transaksi kripto yang sedang berlangsung.

Paket yang Terinfeksi

  • ansi-styles@6.2.2
  • debug@4.4.2
  • chalk@5.6.1
  • supports-color@10.2.1
  • strip-ansi@7.1.1
  • ansi-regex@6.2.1
  • wrap-ansi@9.0.1
  • color-convert@3.1.1
  • color-name@2.0.1
  • is-arrayish@0.3.3
  • slice-ansi@7.1.1
  • color@5.0.1
  • color-string@2.1.1
  • simple-swizzle@0.2.3
  • supports-hyperlinks@4.1.1
  • has-ansi@6.0.1
  • chalk-template@1.1.1
  • backslash@0.2.1

Cara Kerja Malware

Kode berbahaya yang disisipkan ke dalam paket npm yang diserang dirancang khusus untuk menargetkan dompet kripto (cryptocurrency wallets). Namun, tingkat kerumitan serangan ini menunjukkan ancaman yang lebih luas terhadap alur pengembangan (development pipeline) dan lingkungan cloud. Cara kerjanya bisa dijelaskan dalam beberapa tahap:

1. Penyisipan ke Browser:
Malware ini menyisipkan dirinya langsung ke dalam lingkungan browser, dengan “mengaitkan” fungsi-fungsi penting seperti fetch, XMLHttpRequest, dan API khusus dompet seperti window.ethereum dan API Solana. Cara ini memungkinkannya memantau lalu lintas web dan interaksi dompet kripto secara real time.

2. Memantau Data Sensitif:
Setelah aktif, kode ini memindai respons jaringan dan data transaksi untuk mencari alamat dompet kripto dan detail transaksi. Malware ini bisa mengenali berbagai format dari Ethereum, Bitcoin, Solana, Tron, Litecoin, hingga Bitcoin Cash.

3. Mengganti Alamat Tujuan Transaksi:
Jika menemukan dompet atau transaksi, malware akan mengganti alamat tujuan yang sah dengan alamat milik penyerang. Biasanya, ia menggunakan alamat yang mirip (“lookalike”) dengan teknik pencocokan string agar perubahannya tidak mudah disadari, sehingga kemungkinan pencurian berhasil menjadi lebih tinggi.

4. Mengambil Alih Transaksi Sebelum Ditandatangani:
Malware ini mengubah parameter transaksi sebelum pengguna menandatanganinya. Pada Ethereum dan Solana, perubahan ini bisa mencakup penerima, persetujuan (approval), atau jumlah izin (allowance). Meskipun antarmuka pengguna (UI) terlihat normal, transaksi yang ditandatangani sebenarnya mengirimkan dana ke alamat milik penyerang.

5. Menjaga Kerahasiaan (Stealth):
Malware ini dibuat sekecil mungkin agar sulit dideteksi oleh alat keamanan biasa. Jika mendeteksi adanya dompet kripto, malware menghindari perubahan mencolok pada tampilan UI dan tetap bekerja diam-diam di latar belakang untuk menangkap dan mengubah transaksi nyata tanpa membuat pengguna curiga.

Meskipun tujuan utama serangan ini adalah pencurian uang, cara yang digunakan menunjukkan ancaman yang lebih luas. Perpustakaan (library) yang disusupi — bahkan yang tidak berhubungan langsung dengan kripto — bisa menjadi jalur masuk untuk aktivitas berbahaya. Aktivitas tersebut bisa berupa manipulasi data, akses jaringan tanpa izin, atau pencurian informasi sensitif di dalam alur pengembangan (development pipeline) dan beban kerja di cloud.

Dampak dan Tindakan Respons

Versi berbahaya dari paket-paket tersebut sempat aktif di registry npm selama kurang lebih 2 jam. Dalam jangka waktu itu, setiap developer atau sistem build otomatis yang menginstal atau memperbarui paket-paket ini bisa saja mengunduh kode yang sudah disusupi.

Komunitas open-source dan perusahaan keamanan merespons dengan cepat:

  • Deteksi oleh Komunitas: Para developer menemukan aktivitas mencurigakan dan membuat laporan di GitHub dan platform lain.
  • Tindakan Maintainer: Setelah diberi tahu, maintainer asli memastikan akunnya diretas dan segera bekerja sama dengan npm untuk mengembalikan paket ke versi aman.
  • Tim Keamanan npm: Tim keamanan npm menghapus versi berbahaya dari registry dan mengamankan akun maintainer yang diretas.

Cara Mengecek Apakah Organisasi Anda Terpengaruh

Untuk pelanggan Cortex Cloud™, platform ini menyediakan daftar lengkap paket npm yang digunakan, yang dapat ditemukan di bagian Code Asset → SoftwarePackages.

Dari halaman tersebut, Anda bisa mencari paket-paket yang terdampak untuk melihat apakah paket tersebut digunakan dalam aplikasi Anda dan di mana letaknya.

Cara Tim Keamanan Harus Merespons

Jika ditemukan paket-paket yang terdampak di lingkungan Anda, tim sebaiknya segera menginstal versi terbaru dari paket npm terkait (atau versi yang sudah dipastikan aman).
Dalam proses build aplikasi, pastikan perintah npm install dipasang (pinned) ke versi paket npm terbaru yang sudah diamankan agar tidak lagi menggunakan versi berbahaya.

Sumber Artikel:

link

Sebuah program edukasi yang disusun oleh Solusi247 untuk membangun talenta data Indonesia

Contact Us

Segitiga Emas Business Park
Jl. Prof. Dr. Satrio KAV 6, Setia Budi
Jakarta Selatan
P: +62 21 579 511 32
M: info@datalearns247.com