Keamanan siber

Serangan Rantai Pasokan NPM: Apa yang Terjadi dan Cara Memperbaikinya

mm
Securities.io maintains rigorous editorial standards and may receive compensation from reviewed links. We are not a registered investment adviser and this is not investment advice. Please view our affiliate disclosure.
Digital vault being cracked open

Industri cryptocurrency dan dunia secara umum baru-baru ini mengalami kejutan ketika para ahli keamanan mengidentifikasi serangan rantai pasokan yang menargetkan ekosistem Node.js dan telah mengkompromikan hingga 18 paket npm.

Itu karena beberapa paket ini mendapatkan miliaran unduhan per minggu.

Paket perangkat lunak digunakan untuk mendistribusikan perangkat lunak pihak ketiga. Sering diambil dari sumber eksternal melalui manajer paket, mereka biasanya mencakup kode sumber, pustaka, dokumentasi, dan file lain yang diperlukan untuk membangun dan menjalankan perangkat lunak.

Sekarang, sebuah paket yang berisi malware menyamar sebagai paket yang sah, padahal sebenarnya paket tersebut berbahaya dengan tujuan menginfeksi perangkat lunak. Setelah masuk ke sistem, malware dalam paket berbahaya dapat memodifikasi file, mencuri data, dan bahkan mengambil alih seluruh sistem sesuai keinginan penyerang.

Meskipun ekosistem sumber terbuka besar lainnya seperti Python dan .NET sama rentan terhadap serangan, penggunaan JavaScript yang luas membuatnya terutama terekspos kepada penjahat siber.

Node.js adalah lingkungan runtime sumber terbuka yang dibangun di atas JavaScript yang memungkinkan pengembang menjalankan kode mereka di luar peramban web.

Secara tradisional, bahasa pemrograman yang diinterpretasikan dan dikenal karena membantu membuat halaman web interaktif terutama digunakan untuk pengembangan web sisi klien di dalam peramban, tetapi Node.js memperluas penggunaan JavaScript ke sisi server dan aplikasi lainnya.

Dengan Node.js, pengembang dapat membangun aplikasi yang cepat dan skalabel seperti server web, API, alat, dan lainnya.

Ia mendapat manfaat dari ekosistem luas pustaka dan alat sumber terbuka yang tersedia melalui npm, yang menyederhanakan pengembangan dan menyediakan solusi untuk berbagai fungsi.

Node Package Manager, atau npm, adalah alat penting dalam pengembangan JavaScript, yang digunakan untuk menemukan, membangun, dan mengelola paket kode. Ia membantu dalam menangani dependensi, memungkinkan kolaborasi, dan menyederhanakan alur kerja.

Registri Perangkat Lunak terbesar di dunia ini berisi lebih dari 3 juta paket kode dan sepenuhnya gratis untuk digunakan.

Siapa pun dapat mengunduh semua paket perangkat lunak publik npm tanpa perlu mendaftar. Pengembang sumber terbuka menggunakan npm untuk berbagi dan meminjam perangkat lunak, sementara banyak organisasi menggunakannya untuk mengelola pengembangan privat.

Untuk menginstal npm di komputer Anda, Anda harus menginstal Node.js terlebih dahulu.

Manajer paket untuk JavaScript dipelihara oleh npm, Inc., anak perusahaan GitHub, platform pengembangan perangkat lunak terkemuka di dunia, yang telah dimiliki oleh Microsoft sejak 2018, ketika raksasa teknologi tersebut mengakuisisinya seharga $7,5 miliar untuk memberdayakan pengembang.

Minggu lalu, alat yang diandalkan oleh lebih dari 17 juta pengembang di seluruh dunia telah dikompromikan, menimbulkan kepanikan di Internet, meskipun hanya sebentar, karena para ahli menanganinya lebih awal, dan penyerang tidak dapat mencuri lebih dari $50. Inilah yang terjadi!

What Happened in the NPM Supply-Chain Attack (Sept 2025)

Dalam serangan rantai pasokan besar yang terjadi pada ekosistem JavaScript, peretas mengkompromikan serangkaian paket npm dengan malware. Tujuan serangan tersebut adalah mencuri aset digital dari pengguna yang tidak curiga.

Secara khusus, akun npm milik pengembang ‘qix’ telah diretas.

Qix adalah akun pemelihara sumber terbuka yang dikompromikan melalui serangan phishing. Hal ini memungkinkan penyerang menginfeksi 18 paket npm populer dengan kode berbahaya. Bersama-sama, paket-paket ini diunduh ratusan juta kali setiap minggu karena mereka disematkan dalam kerangka kerja, alat pengembang, dan layanan produksi.

Paket-paket yang terpengaruh meliputi chalk, debug, color-name, wrap-ansi, dan ansi-styles, yang merupakan beberapa yang paling populer, dengan paket npm yang kurang populer yang terpengaruh adalah backslash, chalk-template, dan has-ansi.

Gesek untuk menggulir →

Paket Versi yang Dikompromikan Tindakan
debug 4.4.2 Pin ke versi sebelum 4.4.2; instal ulang; pindai log build
chalk 5.6.1 Pin ke versi sebelum 5.6.1; redeploy build bersih
ansi-styles 6.2.2 Pin ke versi sebelum 6.2.2; audit dependensi hilir
ansi-regex 6.2.1 Pin ke versi sebelum 6.2.1
strip-ansi 7.1.1 Pin ke versi sebelum 7.1.1
wrap-ansi 9.0.1 Pin ke versi sebelum 9.0.1
color, color-convert, color-string, color-name 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 Pin ke versi yang terdaftar sebelumnya; kunci ulang dan rebuild
has-ansi, supports-color, slice-ansi 6.0.1 / 10.2.1 / 7.1.1 Pin ke versi yang terdaftar sebelumnya
backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 Pin ke versi yang terdaftar sebelumnya
duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 Hindari versi yang terdaftar; tunggu pembaruan vendor

Semua paket yang terpengaruh telah dihapus oleh registri npm. Dengan mengkompromikan pemelihara sumber terbuka bernilai tinggi, serangan ini memanfaatkan kepercayaan dalam ekosistem perangkat lunak sumber terbuka (OSS), karena pengembang tidak mengaudit setiap dependensi yang mereka gunakan. Mereka mengandalkan penggunaan dan reputasinya, serta keamanan registri.

Tweet Serangan Rantai Pasokan NPM

Untuk mengkompromikan paket-paket tersebut, peretas menggunakan jalur phishing. Penyerang pertama-tama meluncurkan kampanye phishing untuk merebut akun pemelihara paket npm, kemudian menyuntikkan kode berbahaya mereka ke dalam paket npm sebelum mengunggah versi yang telah dikompromikan.

Pengembang Josh Junon adalah orang yang menjadi korban email phishing yang merupakan bagian dari kampanye lebih besar yang meniru npm. Jadi, penyerang menggunakan situs phishing yang meniru halaman masuk npm untuk mencuri kredensialnya. Dan begitu penyerang masuk, mereka mengunci Junon dengan mengubah alamat email yang terdaftar pada akun npm Junon.

“Hai, ya saya terkena. Maaf semuanya, sangat memalukan,” tulis Junon di HackerNews, mengonfirmasi insiden tersebut. Ia menjelaskan sebelum memperjelas bahwa hanya npm yang terpengaruh:

“Terlihat sah pada pandangan pertama. Tidak mencari alasan, hanya mengalami minggu yang panjang dan pagi yang panik dan hanya mencoba menyelesaikan sesuatu dari daftar tugas saya. Membuat kesalahan dengan mengklik tautan alih-alih langsung ke situs.”

Email phishing tersebut berasal dari support [at] npmjs [dot] help dan menggunakan taktik menakut-nakuti untuk membuat Junon mengklik tautan, yang mengarahkannya ke situs phishing.

Berpura-pura menjadi dari npm, penyerang meminta dia memperbarui kredensial 2FA-nya, mengklaim sebagai bagian dari “komitmen berkelanjutan untuk keamanan akun,” dan bahwa mereka meminta hal yang sama dari semua pengguna.

“Catatan kami menunjukkan bahwa sudah lebih dari 12 bulan sejak pembaruan 2FA terakhir Anda,” kata email phishing tersebut, menambahkan bahwa mereka dengan “kredensial 2FA yang kedaluwarsa akan dikunci sementara mulai 10 September 2025, untuk mencegah akses tidak sah.”

Email yang sama juga digunakan untuk menargetkan pemelihara paket dan pengembang lainnya.

Mengingat penggunaan luas paket yang terpengaruh, ini bisa menjadi insiden besar jika tidak ditangani begitu cepat.

Sebagai catatan Charlie Erickson dari Aikido Security dalam sebuah laporan, tak terhitung situs web menghindari kerusakan serius dari serangan ini, di mana paket npm berisi potongan kode yang akan dijalankan pada klien situs web.

“Malware ini pada dasarnya adalah penyadap berbasis peramban yang membajak lalu lintas jaringan dan API aplikasi,” katanya dalam analisis serangannya. “Yang membuatnya berbahaya adalah operasinya pada banyak lapisan: Mengubah konten yang ditampilkan di situs web, memanipulasi panggilan API, dan memanipulasi apa yang diyakini aplikasi pengguna saat menandatangani. Bahkan jika antarmuka terlihat benar, transaksi yang mendasarinya dapat dialihkan di latar belakang.”

Kode berbahaya dirancang untuk mencuri kripto. Penyerang memindai string untuk alamat dompet kripto, menempatkan mereka yang bekerja pada aplikasi terkait kripto dalam risiko.

Malware bekerja diam-diam dalam peramban tanpa diketahui pengguna, menulis ulang alamat dompet dan mengarahkan dana ke akun yang dikendalikan oleh penyerang. Ia secara langsung membajak dan memanipulasi transaksi pada Bitcoin (BTC ), Ethereum (ETH ), Solana (SOL ), Tron (TRX ), Litecoin (LTC ), dan Bitcoin Cash (BCH ) pada sistem yang terkompromi.

Untuk melakukan ini, kode berbahaya memantau antarmuka pemrograman aplikasi peramban seperti fetch dan antarmuka dompet seperti window.ethereum.

Kode berbahaya “diam-diam menyadap aktivitas kripto dan Web3 di peramban, memanipulasi interaksi dompet, dan menulis ulang tujuan pembayaran sehingga dana dan persetujuan dialihkan ke akun yang dikendalikan penyerang tanpa tanda-tanda jelas bagi pengguna,” kata Erickson.

Setelah selesai, malware menutupi jejaknya sambil tetap berada di latar belakang untuk menangkap transaksi masa depan pada jaringan korban yang tidak curiga.

Mengingat keparahan serangan, Charles Guillemet, CTO di penyedia dompet perangkat keras Ledger, memperingatkan pengguna kripto untuk berhati-hati saat mengonfirmasi transaksi on-chain. Paket-paket yang terpengaruh, dia catat dalam posting, telah diunduh lebih dari 1 miliar kali.

Serangan rantai pasokan berskala besar, yang ia bagikan dengan komunitas, menargetkan dompet perangkat lunak kripto dengan muatan berbahaya “diam-diam menukar alamat kripto secara real-time untuk mencuri dana.”

“Jika Anda menggunakan dompet perangkat keras, perhatikan setiap transaksi sebelum menandatangani dan Anda aman. Jika Anda tidak menggunakan dompet perangkat keras, hindari melakukan transaksi on-chain untuk saat ini.”

– Guillemet

Sementara itu, 0xngmi, pendiri pseudonim DefiLlama, platform analitik kripto, menulis di X, untuk berbagi bahwa “area dampak efektif jauh lebih kecil daripada ‘semua situs web'”, karena hanya proyek-proyek yang diperbarui setelah paket npm yang terinfeksi malware dipublikasikan yang mungkin berisiko. Namun, “lebih aman untuk menghindari penggunaan situs web kripto sampai masalah ini selesai dan mereka membersihkan paket yang buruk,” tambahnya.

Pada akhirnya, peretas hanya berhasil mencuri kripto senilai $50 dari serangan rantai pasokan sebesar itu. $50 tersebut melibatkan Ether dan sejumlah meme coin seperti Brett dan Andy, di antara lainnya.

Hanya dapat $50?

 

Namun, ini lebih karena keberuntungan daripada apa pun karena platform intelijen kripto Security Alliance mencatat di X:

“Ini bisa jauh lebih buruk. Sebuah backdoor yang diam-diam dideploy dan menargetkan mesin pengembang dengan fokus pada keberlangsungan dapat tetap tidak terdeteksi selama siapa tahu berapa lama.”

Sejak itu, banyak aplikasi kripto seperti Aave, Uniswap, Ledger, Jupiter, MetaMask, Phantom, Blast, dan lainnya telah memberi tahu pengguna mereka bahwa mereka aman dari serangan npm.

Meskipun serangan gagal, ini menjadi pengingat tegas bagi pengembang bahwa, untuk keamanan maksimal, mereka harus melampaui basis kode mereka sendiri. Bahkan dependensi perangkat lunak yang telah dipercaya dan banyak digunakan juga dapat dikompromikan kapan saja.

Di sini, platform pengkodean seperti GitHub dan npm juga perlu melakukan lebih banyak untuk memastikan keamanan paket yang banyak digunakan.

“Paket yang lebih populer harus memerlukan attestasi bahwa mereka berasal dari provenance yang terpercaya dan bukan sekadar secara acak dari suatu lokasi di Internet.”

– Eriksen

Salah satu hal terbaik yang dapat dilakukan npm

Kompromi repositori kode, pada akhirnya, dapat menjadi sangat bencana bagi pengembang, yang mungkin harus meninggalkan seluruh proyek mereka sepenuhnya akibat insiden semacam itu.

Insiden ini menjadi bukti betapa terhubung dan rentannya ekosistem perangkat lunak saat ini terhadap eksploitasi. Satu akun yang dikompromikan dapat memberi penyerang jangkauan yang luas, menjadikannya penting untuk menerapkan langkah-langkah keamanan rantai pasokan yang lebih baik pada setiap tahap proses pengembangan.

Melindungi Diri dari Ancaman Malware yang Cepat Meningkat 

Dengan ancaman malware yang meningkat dan serangan menjadi lebih canggih serta terarah, penting bagi pengguna untuk menjadi teredukasi dan selalu waspada di semua platform.

Perangkat lunak berbahaya atau malware sebenarnya adalah salah satu jenis serangan siber yang paling umum. Di sini, penyerang mengembangkan kode perangkat lunak atau program komputer dengan tujuan mendapatkan akses atau menyebabkan kerusakan pada komputer korban tanpa korban menyadari bahwa mereka telah dikompromikan.

Setiap tahun, miliaran serangan malware terjadi di seluruh dunia pada semua jenis perangkat dan sistem operasi. Dengan menggunakan malware, penjahat siber menahan tidak hanya perangkat tetapi seluruh jaringan perusahaan sebagai sandera.

Dengan memperoleh akses tidak sah ke perangkat korban, penyerang mencuri aset digital dan data sensitif, termasuk kredensial masuk, nomor kartu kredit, dan informasi berharga lainnya. Serangan malware semakin menargetkan bisnis karena perusahaan menyimpan sejumlah besar data pribadi, yang dapat dieksploitasi penjahat untuk memeras sejumlah besar uang.

Data menunjukkan bahwa sebagian besar (59%) organisasi mengalami serangan semacam itu pada tahun 2024. Bahkan perusahaan kecil tidak aman, dengan 47% di antaranya terkena ransomware tahun lalu. Sementara itu, rata-rata pembayaran tebusan melonjak 500% menjadi $2 juta selama periode tersebut.

Biaya rata-rata pemulihan dari serangan malware juga naik hingga $2,73 juta. Salah satu ancaman terbesar yang dihadapi Internet saat ini adalah malware, yang dapat mengambil berbagai bentuk dengan tujuan tunggal merusak sistem komputer dan penggunanya.

Virus, ransomware, trojan, worm, spyware, adware, dan crypto-jacking semuanya merupakan jenis malware yang berbeda. Semua ini dirancang untuk memperoleh akses tidak sah ke jaringan atau merusak sistem komputer.

Ketika membahas penyebab utama serangan, yang paling besar sebesar 32% adalah penyerang mengeksploitasi kerentanan, diikuti oleh kredensial yang dikompromikan (29%) dan kemudian email berbahaya (23%).

Sekarang, bagaimana seseorang dapat melindungi diri dari ancaman yang selalu ada ini? Langkah pertama dan paling sederhana adalah selalu memperbarui komputer dan perangkat lunak Anda. Juga, sangat penting untuk tidak sembarangan mengklik apa pun di Internet. Terutama sebagai pengguna kripto, harus curiga terhadap tautan dan tidak mengunduh apa pun yang tidak Anda yakin.

Hal yang sama berlaku untuk lampiran email apa pun. Waspadalah membuka email mencurigakan dan usahakan berbagi file seminimal mungkin. Bijaksana untuk memiliki perangkat lunak antivirus terpasang di perangkat Anda.

Meskipun tak terhindarkan, organisasi juga dapat mempersiapkan diri melawan serangan malware dengan memperkuat pertahanan mereka. Cara paling sederhana untuk melakukannya adalah dengan menggunakan kata sandi kuat, autentikasi multi-faktor, dan VPN, yang juga dapat digunakan individu untuk melindungi diri secara lebih efektif.

Organisasi perlu terus memantau perangkat untuk tanda-tanda aktivitas mencurigakan, menilai kerentanan apa pun, dan melakukan pengujian penetrasi. Cadangan data sensitif pada drive yang terputus dari jaringan, di sisi lain, akan membantu pemulihan dari serangan malware.

Karyawan perlu dilatih untuk mendeteksi serangan semacam ini dengan lebih baik dan merespons dengan cepat dengan memiliki rencana respons insiden serta mengetahui siapa yang harus dihubungi ketika mencurigai ancaman malware.

Dengan memanfaatkan arsitektur jaringan zero trust, perusahaan dapat memastikan tidak ada yang dapat mengakses data atau aset yang tidak seharusnya. Dalam zero trust, pengguna tidak pernah dipercaya dan selalu diverifikasi.

Dalam kehidupan hiper-digital saat ini, praktik ini dapat membantu seseorang melindungi dirinya dari bahaya dunia yang semakin terhubung.

Ketika melindungi diri dari paket berbahaya, rekomendasi keamanan malware umum juga berlaku untuk serangan npm, namun tentu saja ada tindakan pencegahan khusus tambahan yang harus diambil karena ekosistem ini sangat rentan akibat sifat terbukanya, penggunaan kembali paket kecil secara intensif, dan pohon dependensi yang besar.

Untuk melindungi diri dari ancaman serius ini, Anda harus selalu memeriksa dua kali bahwa paket tersebut dapat diandalkan sebelum menginstalnya. Memverifikasi integritas paket akan memastikan bahwa pohon dependensi Anda tidak dimanipulasi.

Saat mencari tanda-tanda ketidakabsahan, selain sumber dan kepemilikan paket, periksa setiap perubahan yang dibuat pada pemelihara. Anda bisa juga ingin meneliti apa fungsi paket dan kebutuhan akan paket tersebut.

Gunakan alat keamanan yang terus memantau ancaman baru dan memberikan saran yang dapat ditindaklanjuti untuk mengurangi situasi. Pemeriksaan npm audit dapat dijalankan untuk kerentanan yang diketahui dalam dependensi proyek. Sementara itu, menerapkan pemindaian keamanan otomatis sebelum penyebaran akan memastikan hanya kode yang ditinjau dan disetujui yang masuk ke produksi.

Sekarang, untuk melindungi diri dari serangan malware terbaru, Anda perlu mem-pin paket yang terpengaruh ke versi teraman sebelum kompromi melalui fitur overrides di package.json.

Jalankan npm audit atau gunakan alat analisis komposisi perangkat lunak (SCA) untuk memeriksa versi yang terpengaruh dalam pohon dependensi Anda. Pantau setiap Indicator of Compromise (IoC) dengan memeriksa log build, lingkungan pengembang, dan lalu lintas keluar untuk aktivitas mencurigakan.

Klik di sini untuk daftar lima perusahaan teratas yang melawan serangan siber.

Pemikiran Akhir: Memperkuat Ketergantungan Open-Source

Ancaman di internet terus meningkat dan menjadi semakin canggih.

Dengan penyerang beralih ke vektor serangan baru dan menargetkan proyek yang kurang sumber daya, menjadi penting bagi pengembang, perusahaan, dan pengguna untuk tidak menunggu ancaman muncul sebelum bertindak, melainkan mengambil langkah proaktif karena satu tautan lemah dapat menjatuhkan seluruh sistem.

Dengan tetap terinformasi tentang ancaman yang muncul dan terus mengaudit rantai pasokan perangkat lunak serta memantau ancaman, kita dapat benar-benar melindungi diri dari risiko siber yang terus berkembang.

Klik di sini untuk daftar lima perusahaan publik teratas yang membayar penyerang siber.

Gaurav memulai perdagangan cryptocurrency pada 2017 dan telah jatuh cinta dengan ruang crypto sejak saat itu. Minatnya pada semua hal crypto menjadikannya seorang penulis yang berspesialisasi dalam cryptocurrency dan blockchain. Tak lama kemudian, dia menemukan dirinya bekerja dengan perusahaan crypto dan outlet media. Dia juga seorang penggemar besar Batman.