Dalam artikel ini (4)
Paket npm yang Dipercaya Proyek Anda Baru Saja Menjadi Vektor Serangan
Cara dua gelombang serangan terpisah pada September 2025 mengubah pustaka JavaScript tepercaya menjadi kendaraan pencurian kripto dan worm yang menyebar sendiri
Dua miliar enam ratus juta unduhan per minggu. Itu bukan target. Itu radius ledakan. Ketika penyerang berhasil mengkompromikan akun maintainer npm terpercaya pada 8 September 2025, mereka tidak perlu menemukan zero-day yang cerdas di infrastruktur npm atau merekayasa balik primitif kriptografi. Mereka mengirim email phishing. Seseorang mengkliknya. Sisanya terjadi secara otomatis, secepat pipeline CI/CD yang berjalan di setiap zona waktu di seluruh bumi.
Gelombang 8 September: Satu Kredensial, Delapan Belas Paket, Dua Jam Paparan
Menurut analisis insiden terperinci dari Upwind, versi paket berbahaya pertama muncul di npm pada pukul 13:16 UTC tanggal 8 September 2025. Sekitar pukul 15:20 UTC, anggota komunitas telah menemukan kode mencurigakan dan memberikan peringatan di GitHub. Para maintainer memulihkan paket-paket yang dikompromikan dalam waktu dua jam. Waktu respons tersebut terbilang sangat cepat untuk ekosistem berbasis komunitas, namun tetap saja hasilnya tidak sebaik yang kamu harapkan, karena paket-paket yang dimaksud bukanlah utilitas obscure. Sebagaimana dilaporkan oleh Sweet Security, mengutip temuan awal Aikido Security, paket-paket yang dikompromikan secara kolektif menyumbang 2,6 miliar unduhan mingguan, menjadikan ini kompromi npm terbesar dalam sejarah berdasarkan metrik tersebut.
Brian Krebs merangkum cakupannya secara ringkas: 18 paket JavaScript populer, termasuk debug dan chalk, dibajak dan direkayasa untuk mencuri mata uang kripto. Kisah akses awal serangan ini sangat instruktif justru karena tidak glamor. Para penyerang tidak membobol npm. Mereka mengkompromikan seseorang. Satu kredensial maintainer yang terkena phishing memberi mereka kemampuan untuk mendorong versi baru yang berbahaya dari library-library yang menjadi fondasi dari begitu banyak aplikasi produksi.
NowSecure mencatat bahwa potensi paparan hilir meluas ke aplikasi mobile, karena banyak pipeline pengembangan mobile menarik dari ekosistem npm yang sama. Kode yang disuntikkan menargetkan dompet mata uang kripto dan transaksi blockchain, menjadikan motivasi finansialnya langsung dan jelas.
Pelajaran struktural di sini, yang harus diserap oleh setiap developer dan pelajar yang sadar keamanan, ada pada matematika dependensi. Menurut data yang dikutip oleh analisis keamanan npm cyberdesserts.com, rata-rata proyek npm menarik 79 dependensi transitif. Kamu mengaudit dependensi langsungmu. Kamu jarang mengaudit dependensi dari dependensimu, atau dependensi dari dependensi tersebut. Titik buta rekursif itulah yang diandalkan oleh para penyerang.
Gelombang 15 September: Ketika Payload Belajar Berjalan Sendiri
Tujuh hari kemudian, para pelaku ancaman kembali dengan sesuatu yang lebih ambisius. Menurut penelitian Trend Micro, pada 15 September, repositori npm mengalami serangan supply chain kedua yang sedang berlangsung, kembali dimulai melalui kampanye phishing bertarget terhadap akun-akun maintainer. Gelombang ini memperkenalkan dua payload yang terdokumentasi dengan perilaku dan tujuan yang berbeda secara signifikan, dan memahami perbedaannya berguna bagi siapa saja yang sedang membangun model mental tentang bagaimana serangan supply chain berkembang.
Payload pertama, bernama Cryptohijacker, secara diam-diam mengalihkan aset mata uang kripto dengan membajak API web dan memanipulasi lalu lintas jaringan. Payload ini berfokus pada finansial dan dirancang untuk beroperasi secara senyap. Telemetri Trend Micro mengonfirmasi bahwa organisasi-organisasi di Amerika Utara dan Eropa termasuk yang paling terdampak oleh Cryptohijacker.
Payload kedua, worm Shai-Hulud, merupakan kategori kekhawatiran yang sama sekali berbeda. Juga didokumentasikan oleh Trend Micro, Shai-Hulud dikirimkan melalui paket-paket yang dikompromikan, mencuri token layanan cloud, menyebarkan alat pemindai rahasia, dan menyebar ke akun-akun tambahan secara otomatis. Per laporan Trend Micro, belum ada deteksi worm Shai-Hulud di alam liar, yang merupakan konteks penting: kemampuannya ada, mekanismenya dipahami, dan para defender memiliki waktu untuk bersiap.
Tim riset ancaman Splunk menguraikan pola yang lebih luas dengan presisi yang berguna: serangan Shai-Hulud September 2025 menginfeksi lebih dari 500 paket npm dalam sebuah kompromi supply chain terkoordinasi dan, menurut penilaian mereka, menandai momen penting dalam keamanan supply chain, memperlihatkan teknik-teknik yang kini harus dipersiapkan oleh para defender sebagai tradecraft adversary standar.
Perbedaan skala antara kejadian 8 September (18 paket) dan gelombang 15 September (lebih dari 500 paket) mencerminkan betapa cepatnya para pelaku ancaman mengiterasi keberhasilan awal mereka.
Apa yang Dimungkinkan (dan Dipersulit) oleh Skala Ekosistem npm
Untuk memahami mengapa kejadian-kejadian ini memiliki bobot melampaui komunitas JavaScript, ada baiknya memahami skala ekosistemnya. Tim keamanan Splunk mencatat bahwa npm berisi lebih dari 2,5 juta paket dan memproses miliaran unduhan mingguan, merepresentasikan apa yang mereka sebut sebagai target yang tak tertahankan bagi penyerang yang ingin mengkompromikan supply chain perangkat lunak dalam skala besar.
Matematikanya, seperti yang diungkapkan Splunk, cukup lugas: kompromi satu paket populer dan kamu berpotensi mendapatkan akses ke ribuan aplikasi hilir beserta lingkungan produksi mereka.
Permukaan serangan meluas melampaui aplikasi web. NowSecure secara khusus menyoroti potensi dampak pada aplikasi mobile, karena pipeline pengembangan mobile secara rutin mengonsumsi paket npm sebagai dependensi build. Alat build yang dikompromikan tidak perlu menjangkau pengguna akhir secara langsung; ia hanya perlu menyentuh proses build sekali saja.
Analisis Splunk juga mengidentifikasi mekanisme spesifik yang membuat npm sangat bisa dieksploitasi: lifecycle hooks. Hook preinstall, install, dan postinstall milik npm mengeksekusi kode secara otomatis selama instalasi paket, tanpa prompt atau konfirmasi pengguna apa pun. Script postinstall berbahaya berjalan begitu seorang developer mengetik npm install. Ini bukan kasus tepi yang obscure; ini adalah fungsionalitas npm standar yang telah dipelajari oleh para pelaku ancaman untuk dijadikan senjata secara andal.
Apa Artinya Ini Bagimu sebagai Pelajar dan Builder
Jika kamu sedang belajar pengembangan perangkat lunak, mempelajari keamanan, atau membangun apa pun yang berhubungan dengan JavaScript, kisah ini adalah studi kasus praktis tentang bagaimana risiko perangkat lunak modern sebenarnya bekerja.
Perimeter bukan kode aplikasimu. Perimeter meluas ke setiap paket yang kamu instal, setiap paket yang diinstal oleh paket-paket tersebut, dan manusia-manusia yang memelihara semuanya.
Langkah-langkah yang bisa diambil tidaklah rumit. Kunci versi dependensimu menggunakan file package-lock.json atau yarn.lock agar versi baru yang dikompromikan tidak otomatis masuk ke instalasi berikutnya. Audit pohon dependensimu menggunakan alat seperti npm audit. Perhatikan ketika komunitas keamanan memberikan peringatan di GitHub, karena respons 8 September menunjukkan bahwa kecepatan komunitas bisa sangat berarti. Dan jika kamu memelihara paket open source, perlakukan kredensial npm publish-mu dengan keseriusan yang sama seperti akses database produksi, karena dari sudut pandang penyerang, keduanya setara.
Tidak adanya deteksi worm Shai-Hulud yang terkonfirmasi di alam liar adalah kabar baik yang nyata, dan itu mencerminkan respons komunitas yang cepat sekaligus persiapan defender yang aktif. Jendela untuk membangun kebiasaan yang lebih baik seputar kebersihan dependensi masih terbuka. Kejadian-kejadian September 2025 adalah ilustrasi yang jelas dan terdokumentasi dengan baik tentang mengapa kebiasaan tersebut penting sebelum insiden terjadi, bukan setelahnya.