Shai-Hulud adalah worm npm yang menyebar sendiri dengan mencuri kredensial pengembang lalu memakainya untuk menerbitkan versi berbahaya dari paket-paket lain milik korban. Sejak gelombang pertama pada September 2025, keluarga worm ini terus berevolusi menjadi Shai-Hulud 2.0, Mini Shai-Hulud, dan ChainDrop. Artikel ini merangkum kronologinya per 29 Oktober 2026 dan langkah perlindungan bagi proyek Anda.
Apa itu Shai-Hulud dan mengapa berbahaya
Worm biasa menyebar lewat jaringan. Shai-Hulud menyebar lewat kepercayaan dalam ekosistem paket. Setelah satu paket terinfeksi dan dipasang di mesin pengembang atau server CI, malware mencari token dan kunci, lalu memakai token npm korban untuk menyisipkan dirinya ke paket-paket lain yang dikelola orang yang sama dan menerbitkannya. Setiap maintainer yang terinfeksi menjadi distributor baru. Karena itu menghapus paket berbahaya dari registry tidak mengakhiri masalah: kredensial yang sudah dicuri dan persistensi di mesin tetap ada.
Ini contoh nyata dari risiko yang dibahas di artikel supply chain attack: yang diserang bukan aplikasi Anda, melainkan bahan bakunya.
Kronologi gelombang Shai-Hulud
Gelombang pertama, September 2025
CISA menerbitkan peringatan pada 23 September 2025 tentang kompromi rantai pasok yang memengaruhi npm dengan lebih dari 500 paket terdampak. Setelah akses awal, malware memindai lingkungan untuk mencari token GitHub dan kunci API AWS, Google Cloud, dan Azure, lalu mengirimkannya ke endpoint penyerang serta mengunggahnya ke repositori GitHub publik bernama "Shai-Hulud". Ia lalu menyebar otomatis dengan mengautentikasi ke npm sebagai pengembang korban.
Shai-Hulud 2.0, November 2025
Menurut analisis Datadog, komunitas mengidentifikasi gelombang kedua pada 24 November 2025. Sedikitnya 796 paket npm unik (1.092 versi) dibackdoor, dengan total lebih dari 20 juta unduhan mingguan. Skrip preinstall memasang runtime Bun, mencuri kredensial dari sistem berkas dan penyimpanan rahasia cloud, memasang runner GitHub self-hosted yang berpotensi dipakai untuk menjalankan perintah jarak jauh, dan mencoba menghapus direktori home korban bila tidak bisa mengirim data maupun mereplikasi diri. Berdasarkan sumber publik, Datadog memperkirakan data dari lebih dari 500 pengguna GitHub dan lebih dari 150 organisasi GitHub bocor, angka yang mereka sebut sebagai batas bawah.
Mini Shai-Hulud, Mei 2026
Menurut analisis OpenSSF, pada 11 Mei 2026 penyerang menerbitkan 84 artefak berbahaya di 42 paket @tanstack, lalu worm menyebar ke lebih dari 170 paket di namespace lain seperti @mistralai dan @uipath. Rantainya menarik: workflow pull_request_target yang menjalankan kode dari fork dengan hak repositori utama, cache GitHub Actions yang diracuni, lalu token OIDC dicuri dari memori runner rilis yang berizin id-token: write. Paket berbahaya bahkan dilaporkan membawa attestation SLSA Build Level 3 yang valid, karena attestation merekam build dari pipeline yang memang sah tetapi sudah dikuasai penyerang (OpenSSF sendiri berpendapat platform build-nya tidak memenuhi syarat isolasi L3). Pelajarannya, tanda tangan memastikan siapa yang membangun, bukan apakah proses build-nya aman. OpenSSF menyimpulkan: artefak yang ditandatangani belum tentu tepercaya. Ini sebabnya SBOM, SLSA, dan Sigstore perlu dilengkapi pengamanan pipeline.
ChainDrop, Agustus 2026
Dalam laporan 4 Agustus 2026, Microsoft Threat Intelligence menguraikan kampanye ChainDrop: lebih dari 400 paket npm dari beberapa penerbit tidak terkait, termasuk keyv, flat-cache, dan cache-manager, membawa varian Mini Shai-Hulud. Advisori Cyber Security Agency of Singapore (6 Agustus) menyebut lebih dari 1.300 versi paket terdampak dengan total sekitar 2 miliar unduhan bulanan. Perbedaan angka terjadi karena unit hitungnya berbeda, paket versus versi, jadi baca selalu satuannya. Menurut Microsoft, dengan token publish npm curian worm mendaftar paket yang dapat diterbitkan oleh identitas tersebut, menaikkan versi patch, menyisipkan hook preinstall dan loader, lalu menerbitkan ulang, sehingga rilis berbahaya tampak seperti pembaruan patch biasa tanpa commit sumber yang sepadan.
Persistensi lewat berkas konfigurasi editor dan asisten AI
Poin yang sering terlewat: menurut Microsoft, dengan kredensial GitHub curian, malware menyisipkan berkas ke cabang repositori, yaitu .claude/settings.json, .claude/setup.mjs, .vscode/tasks.json, dan .vscode/setup.mjs. Perubahan itu dapat memicu ulang payload saat Claude Code atau Visual Studio Code dipakai, bahkan setelah pemasangan paket asli dibersihkan. Maka tinjau berkas-berkas ini saat code review, sama seriusnya dengan berkas CI.
Cara melindungi proyek Anda
Di sisi konsumen paket
- Kunci dependensi. Commit lockfile dan pakai npm ci di CI. CISA menyarankan meninjau package-lock.json atau yarn.lock termasuk dependensi bertingkat.
- Beri jeda pada versi baru. Microsoft menyarankan npm CLI v12 dan fitur min-release-age. Pada sejumlah insiden npm, versi berbahaya terdeteksi dan dicabut dalam hitungan jam.
- Batasi skrip pemasangan. Pertimbangkan ignore-scripts=true, karena preinstall adalah titik eksekusi andalan worm ini. Pelajari juga perubahan keamanan npm terbaru.
- Pisahkan rahasia dari mesin build. Berikan kredensial CI seminimal mungkin dan berumur pendek.
Di sisi maintainer dan pipeline
- Hindari pull_request_target untuk menjalankan kode fork, pin action ke digest, beri izin id-token: write seminimal mungkin, dan perlakukan cache sebagai batas kepercayaan. Lihat juga panduan mengamankan pipeline CI/CD.
- Wajibkan MFA tahan phishing pada akun GitHub dan npm.
- Beri peringatan jika ada publikasi paket dari workflow yang gagal. Menurut OpenSSF, kedua run berbahaya TanStack berakhir gagal setelah paket sudah terbit, sehingga peringatan seperti ini bisa memperpendek jendela eksposur.
Jika Anda sempat memasang versi berbahaya
Anggap mesin dan runner terkompromi: bangun ulang dari kondisi bersih, putar semua kredensial (npm, GitHub, cloud, SSH, Kubernetes) dari mesin yang bersih, bersihkan cache npm dan CI, periksa repositori dari berkas persistensi di atas, dan cari repositori GitHub baru dengan deskripsi mencurigakan di akun Anda. Untuk ChainDrop, CSA Singapura juga menyarankan mencari repositori GitHub dengan deskripsi "Shai-Hulud: Here We Go Again". Pada gelombang pertama, CISA menyarankan memblokir koneksi keluar ke domain webhook.site dan memantau log firewall.
Relevansi bagi pengembang Indonesia
Banyak proyek web modern di Indonesia, dari startup hingga sistem internal instansi, bergantung pada npm. Token berumur panjang yang tersimpan di laptop pribadi pengembang adalah kombinasi yang ideal bagi worm ini. Langkah paling murah: cooldown versi, token berumur pendek, dan MFA tahan phishing.
Baca juga: GlassWorm: Malware Ekstensi VS Code dan Open VSX.
Pertanyaan yang Sering Diajukan
Apakah npm audit cukup untuk mendeteksi Shai-Hulud?
Tidak sepenuhnya. Versi berbahaya baru sering belum tercatat saat pertama muncul. Kombinasikan dengan cooldown versi, lockfile, dan pemantauan perilaku saat instalasi.
Mengapa provenance valid tidak menjamin keamanan?
Karena provenance membuktikan asal build, bukan integritas pipeline. Pada Mini Shai-Hulud pipeline yang sah sudah dikuasai penyerang.
Apa langkah pertama jika curiga terinfeksi?
Isolasikan mesin, putar kredensial dari perangkat bersih, lalu periksa riwayat pemasangan paket dan berkas persistensi.
Kesimpulan
Shai-Hulud menunjukkan bahwa worm kini bisa hidup di dalam proses rilis perangkat lunak itu sendiri. Pertahanan terbaiknya berlapis: lockfile, jeda versi, skrip dibatasi, rahasia minimal, dan pipeline yang ketat. Untuk memperdalam keamanan DevSecOps, lihat kursus Linuxhackingid. Rujukan: peringatan CISA, analisis OpenSSF, dan Microsoft tentang ChainDrop.
Setiap artikel ditinjau pimpinan praktik yang menangani pekerjaannya sebelum terbit.
