Pelaku kejahatan siber memanfaatkan sistem otomasi rilis internal proyek Ethersphere guna menyebarkan versi berbahaya dari dua perangkat lunak jaringan penyimpanan terdesentralisasi Swarm, yaitu pustaka bee-js versi 13.3.0 dan aplikasi Swarm Desktop versi 0.56.2.
Kedua paket rilis tersebut dirancang untuk mengunduh dan mengeksekusi instruksi jahat yang bertugas mencuri kunci dompet digital Swarm Desktop bagi nodenya, bersama kata sandi teks biasa yang dipakai untuk membuka enkripsi kunci itu. Kode berbahaya tersebut juga diprogram untuk menanamkan pintu belakang (backdoor) pada sistem operasi Windows, macOS, maupun Linux pengguna.
Pustaka bee-js berfungsi sebagai fondasi JavaScript utama yang menopang aplikasi Swarm Desktop dan utilitas baris perintah swarm-cli. Sementara itu, Swarm Desktop bertugas menjalankan node Swarm langsung di perangkat pengguna serta menyimpan seluruh berkas kunci privat node di penyimpanan lokal.
Kedua rilis berbahaya itu kini telah ditarik seluruhnya dari peredaran publik, dan para pengelola proyek Ethersphere telah menerbitkan pembaruan Swarm Desktop yang bersih hari ini. Meskipun demikian, tindakan penarikan maupun pembaruan tersebut sama sekali tidak menghapus pintu belakang yang terlanjur terpasang pada komputer korban, juga tidak dapat melindungi kunci dompet digital yang sudah berhasil ditransmisikan ke server pelaku. Hingga naskah ini disusun, belum ada laporan mengenai insiden pencurian dana kripto dari para pengguna terdampak.
Paket instalasi Swarm Desktop 0.56.2 mulanya terpantau muncul di repositori GitHub sekitar pukul 00:36 UTC hari ini, sebelum ditarik dan dibatalkan distribusinya sekitar delapan setengah jam setelahnya. Berdasarkan dokumen analisis insiden dari perusahaan keamanan rantai pasok perangkat lunak Socket, mekanisme pembaruan otomatis bawaan aplikasi tersebut berpotensi mendistribusikan versi berbahaya kepada para pengguna komputer Windows x64 dan Mac berbasis Apple Silicon hanya dalam rentang waktu sepuluh menit sejak dipublikasikan. Komputer Mac berbasis prosesor Intel tidak pernah menerima tawaran pembaruan berbahaya ini, sedangkan para pengguna sistem Linux tidak dibekali mekanisme pembaruan otomatis sehingga tidak terpengaruh secara langsung.
Paket rilis bee-js varian 13.3.0 sempat bertahan sebagai rilis paling mutakhir di repositori npm selama kurang lebih 75 menit, mulai pukul 00:09 hingga 01:25 UTC hari ini. Rangkaian instruksi jahat di dalamnya disematkan sebagai skrip pascapemasangan (postinstall script), yang secara otomatis langsung dijalankan oleh manajer paket npm saat proses instalasi berlangsung kecuali bila pengguna telah menonaktifkan fitur eksekusi skrip instalasi secara manual. Hal tersebut berarti sebuah proyek tidak perlu memanggil atau mengimpor pustaka tersebut ke dalam basis kodenya agar muatan jahat dapat langsung aktif.
Perangkat lunak resmi proyek seperti paket swarm-cli dan bee-dashboard, serta repositori kode sumber Swarm Desktop, pada saat itu mengonfigurasikan batasan rentang versi dependensi yang mencakup pembaruan ke versi 13.3.0. Konsekuensinya, setiap proses pemasangan dependensi baru yang dieksekusi di dalam jendela waktu tersebut secara otomatis berpeluang menarik paket pustaka yang telah disusupi.
Hingga saat ini tidak ada laporan resmi yang memberikan angka pasti mengenai jumlah komputer yang telah terinfeksi oleh serangan rantai pasok tersebut. Pihak perusahaan keamanan Socket membuat perkiraan bahwa bee-js versi 13.3.0 diunduh sekitar sepuluh kali, yang mana angka tersebut sudah termasuk pengunduhan oleh pemindai keamanan otomatis dan server cermin (mirror). Di sisi lain, angka unduhan untuk instalasi Swarm Desktop 0.56.2 tercatat menyentuh 65 kali hingga pukul 08:27 UTC, dengan sebagian di antaranya merupakan unduhan oleh para peneliti keamanan siber.
Para pengelola proyek Ethersphere segera membatalkan versi 0.56.2 lalu menggantikannya hari ini dengan paket rilis yang bersih bernomor versi 0.56.3. Dalam berkas perubahan yang dipersiapkan untuk meluncurkan rilis baru tersebut, salah satu pengelola proyek menuliskan keterangan resmi bahwa rilis 0.56.2 “diterbitkan oleh penyerang menggunakan kredensial CI yang dicuri dan kini telah ditarik kembali.”
Paket rilis versi 0.56.3 pada dasarnya memuat basis kode program yang identik dengan versi sebelumnya yakni 0.56.1, yang ditandatangani ulang menggunakan sertifikat Developer ID yang baru saja diterbitkan, sebagaimana tertuang dalam catatan insiden dari pihak pengelola. Catatan teknis itu menguraikan bahwa sistem pembaruan otomatis pada aplikasi akan secara langsung mengalihkan perangkat yang menjalankan versi 0.56.2 ke versi baru tersebut, kendati instalasi pada sistem Linux tetap membutuhkan penggantian paket secara manual oleh administrator sistem. Hasil penelusuran komparasi kode sumber antara kedua versi yang dilakukan oleh The Hacker News membuktikan tidak ada perombakan kode apa pun selain perubahan nomor versi dan teks catatan rilis.
Ketika The Hacker News meninjau kembali repositori publik npm hari ini, paket versi 13.2.0 telah dipulihkan posisinya sebagai versi terbaru yang resmi untuk bee-js, sedangkan versi berbahaya 13.3.0 telah dihapus permanen sehingga tidak dapat lagi diunduh dari peladen registri paket tersebut.
Peringatan keamanan resmi pada GitHub Advisory terkait pustaka bee-js 13.3.0 menegaskan: “Setiap komputer yang telah memasang atau menjalankan paket ini harus dianggap telah sepenuhnya disusupi dan dikompromikan.” SafeDep, entitas keamanan rantai pasok perangkat lunak, turut mengeluarkan penilaian dan instruksi identik bagi seluruh sistem komputer mana pun yang sempat memasang aplikasi Swarm Desktop versi 0.56.2.
Bagi yang menggunakan dependensi bee-js di dalam proyek peranti lunak maupun alur kerja Continuous Integration (CI), pastikan untuk memeriksa kunci dependensi dan menghapus versi 13.3.0 dari lingkungan build. Bagi yang mengoperasikan aplikasi Swarm Desktop pada komputer, segera perbarui ke versi 0.56.3 atau instal ulang secara manual pada sistem Linux. Pada setiap perangkat komputer tempat kode berbahaya sempat tereksekusi, lakukan rotasi penuh terhadap semua kunci privat, token, serta kata sandi yang terkait, dan periksa adanya proses latar belakang yang mencurigakan.
Cara Kerja Perangkat Perusak
Kedua paket rilis berbahaya tersebut mengusung modul pemuat (loader) identik, sebagaimana diungkapkan oleh SafeDep dalam laporan analisis teknis mereka. Modul ini tersusun dari beberapa baris instruksi sederhana yang berfungsi menarik paket kode tambahan dari domain api.frameworkmetrics[.]xyz kemudian mengeksekusinya menggunakan hak akses pengguna yang sedang aktif. Di dalam bee-js, pemuat ini ditempatkan pada skrip postinstall, sedangkan pada Swarm Desktop modul ini dieksekusi setiap kali perangkat lunak dijalankan oleh pengguna.
Muatan kode yang diunduh dari peladen penyerang kemudian memindai keberadaan dua berkas sensitif di dalam direktori data Swarm Desktop, yakni berkas config.yaml dan berkas data-dir/keys/swarm.key. Jika kedua berkas konfigurasi ditemukan di penyimpanan lokal, modul jahat akan langsung mentransmisikannya ke peladen penampung milik peretas.
Berkas kunci swarm.key pada hakikatnya merupakan brankas Ethereum (Ethereum keystore) yang terenkripsi, tetapi aplikasi Swarm Desktop justru menyimpan kata sandi pembukanya dalam bentuk teks polos tanpa enkripsi di dalam berkas config.yaml. Melalui penguasaan atas kedua berkas tersebut, peretas dapat menguras habis saldo token xDAI dan xBZZ milik dompet node, mengambil dana rekening cek (chequebook), hingga menyita simpanan pasak (stake) yang dialokasikan, demikian penjelasan dari pihak keamanan.
Selain mencuri kredensial dompet, muatan yang diunduh memasang pintu belakang ke sistem operasi korban. Pada lingkungan Linux serta macOS, muatan menaruh remote shell berbasis Go yang dinamai evjawbreaker, yang disembunyikan di dalam direktori ~/.solidity. Shell pengendali jarak jauh ini berjalan di latar belakang sebagai layanan pengguna (user service) pada Linux dan beroperasi melalui konfigurasi LaunchAgent pada macOS.
Shell tersebut mengambil parameter alamat peladen pengendali (C2) langsung dari kontrak pintar (smart contract) jaringan Ethereum, sehingga penyerang dapat mengganti alamat koneksi server mereka kapan saja secara dinamis. Tercatat pelaku memperbarui parameter kontrak pintar tersebut tepat 29 menit sebelum injeksi kode berbahaya bee-js dimasukkan ke repositori.
Pada sistem operasi Windows, kode yang ditarik menginstal aplikasi klien kendali jarak jauh resmi ScreenConnect, lengkap dengan tanda tangan digital sah dari pengembang aslinya, ConnectWise. Klien kendali jarak jauh ini dikonfigurasikan berjalan sebagai layanan sistem (system service) yang terhubung langsung ke relai penyerang.
Jika pengguna memiliki hak akses administrator, kode jahat akan merebut elevasi hak istimewa administrator memanfaatkan teknik bypass User Account Control (UAC). Jika akun tersebut bukan administrator, sistem akan terus memunculkan dialog konfirmasi UAC setiap kali pengguna menekan tombol pembatalan. Berbekal privilese tinggi itu, malware menambahkan daftar pengecualian pada antivirus Microsoft Defender dan memasang klien ScreenConnect secara diam-diam tanpa disadari korban.
Kronologi Penerbitan Paket Berbahaya
Kedua berkas rilis yang terinfeksi dipublikasikan menggunakan akun bee-worker, yakni akun robot yang difungsikan oleh Ethersphere untuk mengotomatisasi seluruh siklus rilis piranti lunak mereka. Tidak ada satu pun dari perubahan berbahaya tersebut yang ditandatangani secara kriptografis maupun diajukan melalui mekanisme pull request resmi.
Dalam insiden bee-js, pelaku secara langsung menerbitkan rilis GitHub untuk penomoran versi baru, yang secara otomatis memicu alur kerja penerbitan ke repositori npm milik proyek. Skrip alur kerja CI tersebut sama sekali tidak memerlukan persetujuan manual (approval) dari pengelola dan secara otomatis menuntaskan proses publikasi paket ke peladen npm dalam durasi 73 detik saja, menurut temuan Socket.
Oleh karena paket tersebut dibangun langsung oleh alur kerja resmi milik repositori proyek, paket yang dihasilkan memiliki catatan provenance yang sepenuhnya valid, yaitu catatan kriptografis yang mengaitkan paket npm dengan repositori serta alur pipa CI yang memproduksinya. Catatan provenance ini hanya membuktikan lokasi tempat paket tersebut dikompilasi, bukan menjamin apakah ada manusia yang memeriksa keabsahan baris kode di dalamnya.
Untuk aplikasi Swarm Desktop, penyerang secara manual memicu eksekusi alur kerja build yang telah mengintegrasikan sertifikat penandatanganan resmi Apple dan Windows milik proyek tanpa membutuhkan persetujuan manual dari pihak pengawas. Alhasil, aplikasi macOS berhasil ditandatangani menggunakan Developer ID sah milik proyek dan lolos proses notarisasi resmi Apple, sehingga sistem operasi macOS hanya memunculkan dialog konfirmasi pembukaan aplikasi perdana yang lazim kepada pengguna, demikian hasil investigasi firma keamanan.
Menanggapi kelemahan tersebut, para pengelola proyek kini merombak prosedur penandatanganan aplikasi dengan mewajibkan adanya persetujuan manual terlebih dahulu dari tim DevOps proyek serta membatasi eksekusinya hanya boleh dijalankan dari cabang utama (main branch).
Titik mula bagaimana para peretas memperoleh akses masuk ke sistem automasi tersebut masih belum terungkap secara pasti ketika laporan ini ditulis. Catatan insiden yang dirilis pihak pengelola menuding adanya pencurian kredensial akun CI serta rahasia repositori sebagai penyebab utama insiden peretasan ini.
Hasil investigasi Socket mengindikasikan adanya pemanfaatan dua akun GitHub berbeda dalam melancarkan aksi ini: akun bot bee-worker serta sebuah akun milik salah satu pengelola proyek lama. Kendati demikian, tidak ada laporan yang berhasil merinci bagaimana kredensial kedua akun penting tersebut dapat dibobol oleh penyerang.
Keterkaitan dengan Serangan Siber Sebelumnya
Muatan malware yang ditemukan kali ini memperlihatkan kesamaan penggunaan kontrak pintar Ethereum, relai ScreenConnect, hingga pola penamaan berkas dengan ekstensi palsu untuk pengembang Solidity yang sebelumnya sempat beredar di bursa Open VSX pada September lalu. Para peneliti keamanan dari Pluto Security memaparkan temuan ekstensi jahat tersebut dalam laporan analisis EtherDuck yang dirilis pada 1 Oktober.
Pluto Security mengaitkan kampanye tersebut “dengan tingkat keyakinan tinggi” kepada kelompok kejahatan siber yang berada di balik ekstensi berbahaya SleepyDuck versi awal, yang pada tahun 2025 tercatat membaca alamat server komandonya melalui kontrak pintar Ethereum yang berbeda. Firma Socket menegaskan kesimpulan bahwa kelompok peretas yang sama bertanggung jawab penuh atas rilis berbahaya bee-js dan Swarm Desktop ini.
Indikator Kompromi Sistem
Para personel pertahanan keamanan jaringan dapat melakukan pemindaian menyeluruh pada berkas log serta perangkat komputer guna mendeteksi keberadaan indikator ancaman berikut: domain C2 api.frameworkmetrics[.]xyz, direktori tersembunyi ~/.solidity/evjawbreaker pada Linux/macOS, serta instalasi ScreenConnect yang tidak sah di Windows.
