Security

Serangan Supply Chain “ChainDrop” Kompromikan Lebih dari 1.300 Paket npm, Ancam Jutaan Proyek JavaScript

Sebuah serangan supply chain berskala besar yang dijuluki ChainDrop dilaporkan telah menginfeksi lebih dari 1.300 paket di registri Node Package Manager (npm). Paket-paket yang terdampak diperkirakan memiliki total lebih dari 2 miliar unduhan per bulan, menjadikan insiden ini sebagai salah satu serangan terhadap ekosistem JavaScript terbesar dalam beberapa tahun terakhir.

Beberapa paket populer yang diketahui terinfeksi antara lain Keyv, Cacheable, flat-cache, serta file-entry-cache, yang selama ini banyak digunakan sebagai utilitas caching dalam berbagai proyek Node.js.

Berawal dari Akun GitHub Maintainer yang Diretas

Investigasi menunjukkan bahwa serangan bermula setelah akun GitHub milik maintainer Keyv berhasil dikompromikan. Dari titik awal tersebut, malware menyebar secara otomatis ke berbagai proyek lain yang memiliki keterkaitan, termasuk paket yang digunakan oleh organisasi besar seperti Deliveroo, Ornikar, OneReach, Picsart, Qlik, hingga ServiceTitan.

Sejumlah perusahaan keamanan aplikasi yang menganalisis insiden ini menemukan bahwa serangan tersebut memanfaatkan worm berbasis Shai-Hulud yang diberi nama ChainDrop.

Berdasarkan hasil investigasi, sedikitnya 868 paket yang tersebar dalam 1.381 versi telah dipastikan terinfeksi. Pelaku diketahui langsung mendorong (push) file berbahaya ke branch utama proyek, kemudian menerbitkan versi baru paket melalui pipeline resmi GitHub Actions.

Karena proses build dan publikasi dilakukan menggunakan workflow resmi proyek, seluruh paket yang telah disusupi tetap memiliki informasi provenance yang valid sehingga tampak sebagai rilis resmi.

Malware Berjalan Otomatis Saat npm install

Versi paket yang telah disusupi menyisipkan dua file berbahaya, yaitu:

  • setup.mjs sebagai dropper.
  • Math_Symbol.js sebagai payload utama pencuri data (infostealer).

Selain itu, file package.json dimodifikasi dengan menambahkan proses:

"preinstall": "node setup.mjs"

Akibatnya, setiap kali pengguna menjalankan perintah npm install terhadap versi paket yang telah terinfitksi, file setup.mjs akan dieksekusi secara otomatis bahkan sebelum proses instalasi selesai.

Dropper tersebut kemudian mengunduh Bun JavaScript Runtime dari repositori resmi GitHub untuk menjalankan payload Math_Symbol.js. Setelah proses selesai, direktori sementara yang berisi Bun akan dihapus guna mengurangi jejak aktivitas.

Menargetkan Kredensial Developer dan Cloud

Payload utama memiliki fungsi sebagai infostealer yang dirancang untuk mengumpulkan berbagai kredensial sensitif dari workstation developer maupun server CI/CD.

Seluruh data yang berhasil dikumpulkan akan dienkripsi terlebih dahulu sebelum dikirim ke repositori GitHub publik yang menggunakan deskripsi “Shai-Hulud: Here We Go Again.”

Kode JavaScript tersebut juga sangat ter-obfuscation dan memiliki kemampuan menyebarkan dirinya sendiri ke paket lain yang sebelumnya belum terinfeksi.

Selain varian Math_Symbol.js, peneliti juga menemukan beberapa paket yang membawa payload serupa bernama math_init.js.

Data Sensitif yang Dicuri

Malware melakukan validasi setiap token npm secara real-time sebelum mencurinya. Setelah itu, malware akan mencari berbagai kredensial yang dapat digunakan untuk memperluas penyebaran ke repositori maupun paket npm lainnya.

Informasi yang menjadi target antara lain meliputi:

  • Seluruh environment variable sistem.
  • File konfigurasi lokal beserta kredensial.
  • GitHub Personal Access Token (PAT).
  • Token GitHub Actions.
  • Token npm.
  • Secret GitHub Actions pada self-hosted runner.
  • Kredensial AWS.
  • AWS Systems Manager Parameter Store.
  • AWS Secrets Manager.
  • Secret Kubernetes.
  • Token HashiCorp Vault.
  • Secret KV Vault.
  • Kredensial database.
  • Private key.
  • Kredensial Stripe.
  • Kredensial Slack.
  • Kredensial Twilio.
  • Kredensial Microsoft Azure.
  • Kredensial Google Cloud Platform (GCP).

Domain npm-cache[.]com Digunakan untuk Eksfiltrasi Data

Peneliti keamanan juga menemukan bahwa malware memanfaatkan domain npm-cache[.]com sebagai salah satu jalur eksfiltrasi data. Domain tersebut kini dianggap sebagai Indicator of Compromise (IoC) yang perlu segera diblokir apabila muncul dalam log jaringan organisasi.

Administrator Disarankan Menganggap Sistem Sudah Terkompromi

Apabila salah satu versi paket yang telah terinfeksi sempat dipasang, administrator disarankan untuk menganggap workstation developer maupun server CI/CD telah berhasil dikompromikan, meskipun paket tersebut sudah dihapus setelahnya.

Langkah mitigasi yang direkomendasikan meliputi:

  • Melakukan rebuild sistem dari backup yang dipastikan bersih atau melakukan instalasi ulang.
  • Mengganti seluruh token dan kredensial yang mungkin pernah diakses dari lingkungan yang terdampak.
  • Memeriksa log aktivitas untuk mendeteksi akses tidak sah.
  • Meninjau seluruh repositori guna memastikan tidak terdapat commit atau perubahan mencurigakan.

Karena investigasi masih berlangsung, jumlah paket dan versi yang telah disusupi diperkirakan masih akan terus bertambah. Penggunaan dependency allowlist, pemeriksaan integritas paket, serta mekanisme provenance menjadi langkah penting untuk mengurangi risiko serangan serupa di masa mendatang.

Sumber: The Hacker News

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button