Para penyerang menanam infostealer di dalam 36 paket npm yang terhubung dengan ekosistem Arweave. Targetnya adalah kredensial pengembang, kunci SSH, dan file dompet crypto Exodus. Perusahaan keamanan JFrog melacak serangan ini kembali ke akun pemelihara yang telah dikompromikan.

Malware ini disebut IronWorm, dan dibangun menggunakan Rust. Ia aktif saat seorang pengembang menginstal paket npm. Setelah berjalan, ia memindai komputer yang terinfeksi untuk 86 variabel lingkungan dan 20 file kredensial, seperti yang ditemukan oleh tim riset JFrog. Ia mengejar token AWS, kunci API Anthropic dan OpenAI, kredensial otentikasi npm, dan data dompet crypto.

Paket proyek Arweave membawa malware Rust yang tersembunyi

Penyerang mengkompromikan akun npm yang disebut "asteroiddao," yang milik grup GitHub asteroid-dao, bagian dari proyek basis data terdesentralisasi Arweave/WeaveDB.

Semua paket yang terkait dengan akun "asteroiddao" diterbitkan kembali dalam waktu singkat, dengan setiap versi baru berisi file Linux sebesar 976 KB yang terletak di direktori tools/.

File ini diatur untuk berjalan otomatis melalui preinstall hook di package.json, artinya diluncurkan sebelum npm bahkan mulai menginstal apapun. Yang perlu dilakukan oleh korban hanyalah menjalankan npm install.

Tim JFrog membongkar file tersebut dan menemukan bahwa itu telah dikemas dengan cara yang dirancang untuk menipu alat unpacking standar. Di dalamnya terdapat program Rust besar yang menyimpan string-nya dienkripsi secara individu, dengan setiap string terkunci secara terpisah, sehingga membuat analisis jauh lebih sulit.

Ketika string-string tersebut akhirnya didekode, mereka mengungkapkan endpoint API GitHub, jalur ke file kredensial, akun bot palsu yang terhubung ke ID pengguna GitHub nyata, dan template untuk menyuntikkan kode berbahaya ke registri paket lain.

Attackers trojanized Arweave's WeaveDB npm package to deploy malware.Sebuah tangkapan layar menunjukkan paket npm yang terinfeksi terkait dengan ekosistem Arweave. Sumber: Jfrog.

Token GitHub yang dicuri memungkinkan malware untuk mendorong commit dan menginfeksi lebih banyak repositori

Setelah mengambil kredensial, IronWorm menggunakannya untuk mendorong commit ke repositori yang dapat diakses korban. Commit tersebut menanamkan biner berbahaya yang sama ke paket lain, yang kemudian dapat dipublikasikan ke npm dan mengompromikan pengembang berikutnya dalam rantai.

JFrog menemukan 57 commit jahat yang dimundurkan di sembilan organisasi GitHub. Commit tersebut menggunakan nama penulis "claude" dengan email claude@users.noreply.github.com. Timestamp dipalsukan untuk mencocokkan commit terakhir yang sah di setiap repositori. Satu tampaknya berasal dari 13 tahun yang lalu, meskipun log GitHub Actions mengonfirmasi semua dorongan terjadi dalam beberapa hari setelah penemuan.

Organisasi yang terkena dampak termasuk asteroid-dao, weavedb, ArweaveOasis, dan beberapa akun pribadi yang terkait dengan pengembang "ocrybit."

IronWorm juga menerapkan rootkit kernel eBPF untuk bersembunyi di mesin yang terinfeksi. Komunikasi ke operatornya diarahkan melalui jaringan Tor. Kompiler Rust meninggalkan kode sumber rootkit di dalam biner, sebuah kesalahan operasional yang membuat analisis menjadi lebih mudah.

Satu keanehan adalah bahwa operator meng-hardcode frasa pemulihan dompet cryptocurrency mereka sendiri ke dalam malware. JFrog menyimpulkan bahwa ini adalah langkah pengamanan untuk mencegah pencuri mengeluarkan kredensial operator selama pengujian.

Serangan malware terus menghantam npm

Perusahaan keamanan aplikasi Ox Security mengatakan bahwa serangan ini terdeteksi lebih awal, sebelum dapat menyebar ke lebih banyak paket di npm.

Versi jahat tersebut ditandai sebagai deprecated dalam sehari dan sebagian besar commit yang dimundurkan dihapus dari GitHub segera setelahnya.

Pada 14 Mei, peretas mengeksploitasi akun pemelihara tidak aktif untuk node-ipc, sebuah paket dengan lebih dari 822.000 unduhan mingguan. Eksploitasi ini dilakukan dengan mendaftar ulang domain email pemelihara yang sudah kedaluwarsa dan mereset kata sandi npm. Tiga varian yang terkompromi memiliki payload pencuri kredensial yang ditujukan untuk lebih dari 90 kategori rahasia pengembang.

Perusahaan keamanan Endor Labs dan StepSecurity mengidentifikasi serangan yang bersamaan tetapi berbeda menggunakan malware berbasis JavaScript yang disebut binding.gyp, yang melakukan pembuangan registri dan infeksi GitHub Actions yang serupa selama waktu yang sama.

Pengembang yang menginstal paket WeaveDB yang terpengaruh harus mengganti semua kredensial, memeriksa file kunci untuk perubahan versi yang tidak terduga, dan mengaktifkan otentikasi dua faktor di akun npm dan GitHub.

Jika Anda membaca ini, Anda sudah unggul. Tetaplah di atas dengan buletin kami.