Kampanye supply chain berbahaya berbasis malware Shai-Hulud kembali menggemparkan ekosistem JavaScript setelah ratusan paket npm populer ditemukan telah ditrojanisasi. Paket-paket yang disusupi mencakup nama-nama besar seperti Zapier, ENS Domains, PostHog, dan Postman, dengan tujuan utama mencuri secret milik developer serta token CI/CD yang kemudian diunggah secara otomatis ke GitHub dalam format terenkripsi.
Dalam waktu singkat, jumlah paket berbahaya melonjak signifikan. Ketika kampanye ini pertama kali muncul di pertengahan September, Shai-Hulud telah menginfeksi 187 paket melalui payload yang mampu memperbanyak dirinya sendiri dan memanfaatkan TruffleHog untuk mencuri secret. Penyerang mengunduh paket asli, memodifikasi file package.json untuk menyisipkan skrip berbahaya, lalu menerbitkannya kembali menggunakan akun maintainer yang telah disusupi.
Pada gelombang terbaru, peneliti keamanan Charlie Eriksen dari Aikido Security menemukan lebih dari 100 paket terinfeksi dalam hitungan jam. Jumlah tersebut kemudian meningkat menjadi hampir 500 berdasarkan daftar nama paket. Namun, penyelidikan platform keamanan cloud Wiz menunjukkan bahwa skala serangan jauh lebih besar, dengan lebih dari 27.000 paket berbahaya yang beredar dan sekitar 350 akun maintainer unik yang terlibat dalam penyebaran. Wiz juga mencatat bahwa lebih dari 1.000 repositori baru yang berisi secret curian muncul setiap 30 menit.
Repositori GitHub yang bermunculan dengan pola serupa mengindikasikan bahwa developer yang menginstal paket npm terkompromi memiliki kredensial GitHub di lingkungan mereka. Secret yang dicuri—termasuk token npm, token GitHub, serta kredensial cloud seperti AWS, GCP, dan Azure—dieksfiltrasi oleh malware ke repositori otomatis yang diberi deskripsi “Sha1-Hulud: The Second Coming.”
Analisis Teknis Shai-Hulud Varian Baru
Menurut Step Security, varian terbaru Shai-Hulud memuat dua file utama:
- setup_bun.js, dropper yang dikamuflasekan sebagai installer Bun,
- bun_environment.js, file berukuran sekitar 10MB dengan obfuscation ekstrem, termasuk ribuan entri hex, loop anti-analisis, serta fungsi yang dirancang untuk menyembunyikan string kode.
Malware ini menjalankan lima tahap, mulai dari pencurian secret, unggahan otomatis ke GitHub, hingga langkah destruktif yang dapat menghapus seluruh direktori home korban. Penghapusan terjadi hanya bila empat kondisi terpenuhi, seperti kegagalan autentikasi GitHub atau ketidakmampuan membuat repositori baru.
Koi Security, yang memantau kampanye secara paralel, memperkirakan total infeksi telah melampaui 800 paket bila menghitung seluruh versi paket yang terdampak. Mereka juga mengonfirmasi perilaku destruktif dari varian baru ini.
Paket Populer yang Terdampak
Daftar yang dirilis Aikido Security memperlihatkan sejumlah paket penting yang ikut terkompromi, termasuk:
- Toolkit resmi Zapier untuk pengembangan integrasi,
- Library ENS Domains yang umum digunakan oleh dompet kripto, DApps, bursa, serta aplikasi ENS Manager untuk resolusi .eth,
- Berbagai paket dari PostHog, AsyncAPI, dan nama terkenal lainnya.
Meskipun paket-paket tersebut masih tersedia di npm, beberapa sudah menampilkan peringatan mendeteksi publikasi tidak sah pada versi terbaru.
Rekomendasi Mitigasi untuk Developer dan Tim Keamanan
Pakar keamanan menyarankan tindakan berikut secara segera:
- Memeriksa daftar paket yang terinfeksi dan menurunkannya ke versi aman,
- Rotasi semua token dan kredensial terkait npm, GitHub, serta layanan cloud,
- Memastikan pipeline CI/CD tidak menjalankan npm postinstall script secara otomatis, bila memungkinkan,
- Mengganti seluruh paket yang terkompromi dengan versi legitimate setelah diverifikasi.
Kampanye Shai-Hulud terbaru muncul di tengah penerapan bertahap langkah-langkah keamanan tambahan di GitHub untuk melindungi ekosistem open-source dari serangan supply chain yang semakin kompleks.
