- Serangan rantai pasokan npm aktif memanfaatkan phishing dan pengambilalihan akun pengelola untuk mendorong rilis Trojan.
- Malware "Shai-Hulud" yang menyebar sendiri mencuri rahasia dan menerbitkan ulang paket yang disusupi dalam skala besar.
- GitHub menerapkan kontrol yang lebih kuat: 2FA untuk penerbitan lokal, token granular berumur pendek, dan penerbitan tepercaya.
- Panduan ekosistem menekankan rotasi token, audit ketergantungan, dan penerapan alur kerja 2FA berbasis FIDO dan yang didukung OIDC.

Sumber terbuka mendukung pengembangan modern, namun skala dan keterbukaannya juga menciptakan permukaan serangan yang luas di mana keamanan npm harus terus berkembang untuk mengimbangi musuh.
Dalam beberapa minggu terakhir, para peneliti dan registri telah merinci serangkaian insiden yang berfokus pada npm yang menggabungkan rekayasa sosial, pencurian kredensial, dan publikasi paket berbahaya—berpuncak pada kampanye yang dapat menyebar melalui alur kerja rilis milik pengelola tepercaya.
Gelombang serangan terbaru terhadap ekosistem npm

Beberapa laporan menggambarkan phishing yang ditargetkan ditujukan pada pengelola npm, diikuti oleh peluncuran cepat versi baru yang membawa muatan pasca-instal yang dijalankan pada mesin pengembang dan sistem CI.
Satu kampanye, yang dilacak sebagai “Shai-Hulud,” mengirimkan worm multi-tahap yang menjelajahi lingkungan untuk mencari rahasia, menyalahgunakan API GitHub, dan mencoba memperbanyak diri dengan menerbitkan paket yang tercemar pada akun yang disusupi.
Tim keamanan dan registri bereaksi dengan cepat: GitHub menghapus ratusan paket yang terkena dampak dan menambahkan blok yang terkait dengan indikator malware yang disusupi, langkah-langkah yang mengganggu penyebaran lebih lanjut di seluruh registri.
Investigasi terpisah menghubungkan taktik ini dengan insiden sebelumnya (termasuk pencurian alur kerja “S1ngularity”/Nx dan gelombang pembaruan paket populer), menyoroti peningkatan yang jelas dari pencurian kredensial yang terisolasi ke rantai pasokan otomatis penyalahgunaan.
- Paket tepercaya diperbarui dengan skrip pasca-instal yang dirancang untuk mengumpulkan token dan mengekstrak data.
- Akun yang disusupi menerbitkan versi baru, melipatgandakan risiko di seluruh proyek dan ketergantungan hilir.
Peta jalan GitHub untuk memperkuat penerbitan npm
Untuk membatasi penyalahgunaan token dan menahan malware yang dapat menginfeksi, GitHub menguraikan perubahan yang mempersempit permukaan serangan penerbitan dan meningkatkan standar otentikasi pengelola.
- Penerbitan lokal akan membutuhkan otentikasi dua faktor (2FA), tanpa opsi pintas.
- Token granular yang digunakan untuk penerbitan akan memiliki masa pakai maksimum tujuh hari.
- Token klasik lama akan dihentikan penggunaannya dan penerbitan melalui token akan ditolak secara default.
- 2FA berbasis TOTP akan dihapuskan demi FIDO/WebAuthn metode.
- Penerbitan tepercaya akan diperluas, dengan lebih banyak yang memenuhi syarat Penyedia CI/CD.
Langkah-langkah ini akan diperkenalkan secara bertahap, dengan dukungan dokumentasi dan migrasi untuk membantu pengelola beradaptasi alur kerja dengan aman sambil meminimalkan gangguan; konsultasikan dengan dampak dari GitHub Copilot di desarrollo untuk melakukan perubahan dalam pekerjaan.
Bagaimana kampanye Shai-Hulud beroperasi
Pelaku ancaman biasanya memulai dengan memalsukan npm atau layanan terkait untuk melakukan phising terhadap pengelola, lalu menggunakan kredensial yang dicuri untuk menerbitkan pembaruan yang menjalankan pasca-instalasi berbahaya urutan.
Setelah dijalankan, muatan tersebut menghitung variabel lingkungan lokal, file konfigurasi, pengaturan npm, dan kunci cloud; muatan tersebut juga menyalahgunakan API GitHub untuk mencantumkan repositori yang dapat diakses, membuat cabang, dan menghapus alur kerja berbahaya yang mengotomatiskan pengumpulan dan penyimpanan rahasia.
Para peneliti mengamati penggunaan utilitas pemindaian rahasia (misalnya, TruffleHog) untuk memperluas jaringan kredensial yang dikumpulkan sebelum menghapus jejak. Data dipentaskan ke titik akhir yang dikendalikan penyerang dan, dalam beberapa kasus, dimasukkan ke dalam repositori publik yang baru dibuat bernama “Shai Hulud” di bawah akun korban.
Ciri khas worm ini adalah replikasi diri: jika token npm ditemukan, ia mencoba untuk menerbitkan paket yang diubah, yang secara efektif mengubah hak istimewa pengelola menjadi mesin untuk penyebaran eksponensial.
- Perilaku utama: penyalahgunaan pasca-instalasi, operasi API GitHub otomatis, dan injeksi alur kerja repositori.
- Ancaman tersebut termasuk kompromi akun cloud, pencurian IP melalui mirror repo penuh, dan gerakan lateral di seluruh organisasi.
Ruang lingkup dan dampak
Tim peneliti telah mengatalogkan ratusan rilis yang terdampak di berbagai proyek, termasuk pustaka yang banyak digunakan dengan jutaan unduhan mingguan, meningkatkan radius ledakan bagi konsumen yang tidak menaruh curiga.
Temuan telemetri dan respons insiden menunjukkan bahwa organisasi di Amerika Utara dan Eropa merupakan organisasi yang paling rentan terhadap muatan terkait, dengan risiko mulai dari pencurian kripto dan pencurian data terhadap gangguan pada jalur pembangunan dan penyebaran.
Temuan keamanan npm terkait yang perlu diperhatikan
Para analis juga menandai fezbox, sebuah paket npm berumur pendek yang menyematkan Muatan berbasis kode QR teknik untuk mengambil dan mengeksekusi JavaScript guna mengambil kredensial browser dari cookie—bentuk penghindaran steganografi yang tidak biasa.
Meskipun banyak aplikasi menghindari penyimpanan kata sandi dalam cookie saat ini, metode ini menggarisbawahi seberapa cepat penyerang mengulangi pengaburan dan pengiriman dalam ekosistem paket.
Penerbitan tepercaya: pergeseran yang lebih luas di seluruh registri
Penerbitan tepercaya—yang direkomendasikan oleh grup keamanan sumber terbuka—menggantikan kunci API yang berumur panjang dengan kunci API yang berumur pendek, Identitas yang didukung OIDC dari sistem CI, mengurangi risiko penyebaran token dan eksfiltrasi.
Pertama kali terlihat di PyPI dan kemudian diadopsi oleh RubyGems, crates.io, npm, dan NuGet, pendekatan ini menghadirkan asal kriptografi dan jaminan yang lebih kuat tentang bagaimana dan dimana paket telah dibangun.
Apa yang dapat dilakukan oleh pengelola sekarang
Ada langkah-langkah langsung yang dapat dilakukan oleh pengelola dan tim untuk mengurangi paparan sementara pertahanan tingkat registri diluncurkan dan meningkatkan keamanan secara keseluruhan. postur keamanan proyek mereka.
- Terapkan penerbitan tepercaya dengan OIDC dan hapus publikasi yang berumur panjang Token API dari CI/CD.
- Aktifkan dan terapkan FIDO/WebAuthn 2FA untuk penyedia npm, GitHub, dan CI.
- Tinjau dan kunci izin penerbitan; hapus token dan akun yang tidak digunakan.
- Ketergantungan audit (terutama pembaruan terkini) dan versi pin untuk mengurangi penyimpangan rantai pasokan.
- Putar kredensial npm, GitHub, dan cloud; asumsikan rahasia apa pun yang ada di mesin pengembang bisa terekspos.
- Pindai file alur kerja yang mencurigakan (misalnya, .github/workflows/shai-hulud-workflow.yml) dan cabang tak terduga.
Indikator dan ide berburu
Tim dapat meningkatkan deteksi dengan indikator dan kueri bersama, menyesuaikannya dengan perkakas lokal sambil menghindari kebisingan positif palsu.
- Contoh SHA-256 yang diamati di alam liar: 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- Artefak webhook dilaporkan: hxxps://webhooksite/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
- Perhatikan pembuatan repo publik bernama “Shai Hulud” di bawah akun kontributor.
- Mencari skrip pasca-instal pola eksekusi dan pergantian ketergantungan yang tiba-tiba.
Contoh isyarat perburuan (sesuaikan dengan platform Anda): pantau koneksi ke domain situs webhook; tandai penulisan shai-hulud-workflow.yml; peringatan pada baris perintah yang memanggil “trufflehog” di agen build; dan tinjau perubahan repo terbaru yang memperkenalkan Alur kerja CI tanpa persetujuan.
Sorotan garis waktu
Akhir Agustus melihat pelanggaran yang ditargetkan terkait dengan kelemahan alur kerja yang membocorkan token penerbitan dan menyebabkan rilis Trojan; awal hingga pertengahan September membawa serangan yang lebih luas yang melibatkan paket npm populer, dan kemudian kampanye Shai-Hulud dengan perbanyakan seperti cacing dan pemanenan rahasia yang agresif.
Secara keseluruhan, respons terkoordinasi dari operator registri dan vendor keamanan menghapus versi yang disusupi, memblokir IoC yang diketahui, dan mempercepat rencana untuk mewajibkan keaslian dan asal usul untuk penerbitan npm.
Insiden ini menunjukkan seberapa cepat pelaku ancaman dapat mengubah kepercayaan pengelola menjadi distribusi untuk kode berbahaya, dan mengapa ekosistem bergerak menuju FIDO 2FA, kredensial jangka pendek, dan rilis yang disahkan CI untuk memotong seluruh kelas serangan.
