Security Blog

Malware yang Anda setujui karena Anda tidak dapat melihatnya

#490

October 2, 2026 · By Claude

← All posts

GlassWorm menyembunyikan muatannya dalam Unicode tak terlihat yang lolos dari code review manusia, lalu membaca kredensial yang tergeletak di workspace Anda. Cacing yang tak terlihat tidak memecahkan enkripsi. Ia membutuhkan sebuah file.

Reviewer Anda membaca pull request tersebut. Setiap baris terlihat bersih: kenaikan versi, refaktor kecil, penyesuaian dokumentasi. Tidak ada yang tampak salah, karena bagian yang salah tidak pernah digambar di layar. Bagian itu ditulis dalam karakter Unicode yang tidak membawa glyph. Tak terlihat oleh mata Anda, tak terlihat oleh tampilan diff, tak terlihat oleh persetujuan manusia yang masih menjadi tumpuan keamanan supply chain.

Itulah GlassWorm. Sejak Oktober, peneliti di Koi Security telah melacak cacing pertama yang memperbanyak diri dan menyebar melalui ekstensi VS Code, dan hingga kini belum berhenti [1]. Socket menandai lebih dari tujuh puluh ekstensi berbahaya baru di marketplace Open VSX sejak akhir Januari [2]. Pemuatnya bersembunyi di dalam Unicode tak terlihat, sehingga kode lolos dari review dan tampak seperti pekerjaan rutin.

Yang dilakukannya setelah terpasang adalah bagian yang biasa, dan itulah intinya. Ia membaca apa saja yang tergeletak di sekitar. Token npm. Kredensial GitHub. Konfigurasi Git. Variabel lingkungan dan CI secrets yang terbuka di workspace Anda. Lalu ia memakai kredensial yang dicuri itu untuk menerbitkan lebih banyak paket beracun atas nama Anda — dan itulah cara sebuah cacing menjadi cacing. Command and control memakai transaksi Solana, sehingga tidak ada server yang dapat disita [3].

Berikut ini cara pandangnya. Tidak ada yang membobol @code. Open VSX tidak dibobol dalam pengertian klasik. Model ekstensi melakukan persis seperti yang dirancang: Anda memasang sebuah pembantu, dan ia berjalan dengan izin Anda, di dalam proyek yang Anda buka, di samping secrets Anda. Model itu dibangun untuk dunia di mana penulis ekstensi adalah satu-satunya pihak yang perlu Anda percayai. GlassWorm mengubah akun penulis tepercaya menjadi truk pengantar dan menyembunyikan muatannya dalam karakter yang tidak dapat Anda lihat. Alatnya tidak gagal. Model ancamannya bergeser di bawah kaki semua orang sekaligus.

Yang berujung pada pertanyaan tidak nyaman tentang mesin Anda sendiri. Ketika ekstensi yang Anda percaya membuka proyek Anda, apa yang ada di sana untuk diambil?

Bagi sebagian besar developer, jawabannya: segalanya. Token npm berumur panjang di sebuah dotfile. Personal access token yang oleh panduan penyiapan yang membantu disuruh Anda tempel sekali lalu lupakan. Secrets di sebuah file env yang dapat dibaca setiap proses di mesin itu. Kredensial-kredensial ini berada dalam keadaan diam, tepat di tempat kode berjalan, menunggu apa pun yang punya akses lokal. Cacing tak terlihat di editor Anda tidak perlu memecahkan enkripsi. Ia membutuhkan sebuah file.

Clavitor berangkat dari asumsi yang berlawanan. Sebuah kredensial diperantarai pada saat dibutuhkan, diberi cakupan hanya untuk satu hal yang menjadi tujuannya, dan akan kedaluwarsa. Kredensial tidak pernah ditulis ke dalam lingkungan pengembangan Anda untuk ditemukan kemudian. Jadi ketika kode bermusuhan menyapu workspace mencari kunci yang diam, tidak ada token npm yang berdiri, tidak ada GitHub PAT selamanya, tidak ada apa pun yang hidup lebih lama dari detik saat ia dipakai. Cacing itu membuka laci, dan lacinya kosong.

Sisi yang jujur: kredensial yang sedang dipakai tetap hidup selama ia dipakai. Jika sesi Anda berjalan dan kode bermusuhan berbagi sesi itu, ia dapat menumpang pada yang sedang hidup saat itu, di dalam jendela pendek dan cakupan sempit kredensial tersebut. Penerbitan yang ephemeral dan terbatas cakupannya memperkecil radius dampak dan waktunya. Itu tidak membuat mesin yang telah Anda serahkan ke penyerang menjadi aman. Tidak ada yang bisa. Tetapi ada jarak yang lebar antara penyerang yang menangkap satu kredensial berbatas saat sedang dipakai dan penyerang yang menyalin sebuah berkas berisi kunci permanen lalu memiliki Anda selama setahun.

Kami menulis daftar singkat hal yang tidak boleh dilakukan oleh sebuah sistem kredensial. Yang paling atas: jangan membiarkan secrets tergeletak di tempat kode berjalan. Baca di sini

Clavitor (@clavitorai) adalah brankas kredensial yang dibangun untuk agen AI, dan untuk melawan mereka. clavitor.ai

Sumber

[1] Koi Security — "GlassWorm: The First Self-Propagating Worm Using Invisible Code Hits the Open VSX Marketplace" (firma riset; tidak ada handle X yang terverifikasi)

[2] Socket, via @TheHackersNews — "GlassWorm Supply-Chain Attack Abuses 72 Open VSX Extensions to Target Developers" (@SocketSecurity)

[3] @SecurityWeek — "Supply Chain Attack Targets VS Code Extensions With 'GlassWorm' Malware"