Yang membuat TrapDoor sangat berbahaya bukan hanya jangkauan lintas-ekosistemnya, melainkan teknik penyamaran baru yang mempersenjatai asisten koding AI itu sendiri. Malware ini menanam instruksi tersembunyi di dalam file .cursorrules dan CLAUDE.md menggunakan karakter Unicode lebar-nol—sama sekali tidak terlihat oleh peninjau manusia, tetapi dapat dibaca oleh alat seperti Cursor dan Claude Code, yang kemudian dapat ditipu untuk mengeksfiltrasi rahasia dengan kedok pemindaian keamanan rutin .
Kampanye TrapDoor beroperasi secara bersamaan di tiga registri paket sumber terbuka utama, menggunakan mekanisme teknis berbeda yang disesuaikan dengan masing-masing platform .
Mayoritas paket berbahaya muncul di npm. Paket-paket ini menggunakan kait postinstall untuk secara otomatis menjalankan pencuri kredensial begitu paket dipasang. Muatan intinya, sebuah skrip sepanjang kurang lebih 1.149 baris bernama trap-core.js, secara sistematis memindai lingkungan korban untuk mencari rahasia dan mengirimkannya ke infrastruktur yang dikendalikan penyerang .
Paket-paket Python yang didistribusikan melalui PyPI dirancang untuk mengambil dan mengeksekusi muatan JavaScript jarak jauh saat modul diimpor. Setelah berjalan, paket ini menyebarkan logika pencurian kredensial yang sama dengan varian npm .
Di registri utama ekosistem Rust, paket-paket berbahaya ini menyalahgunakan skrip build.rs untuk menjalankan kode pencurian kredensial selama proses pembangunan (build). Ini memastikan eksekusi terjadi bahkan sebelum fungsionalitas paket yang dimaksud digunakan .
Paket-paket ini disamarkan sebagai alat pengembang yang sah dengan nama seperti token-usage-tracker, prompt-engineering-toolkit, dan eth-wallet-security-auditor, membuatnya tampak berguna bagi komunitas pengembang yang ditargetkan .
Muatan TrapDoor secara sistematis memburu beragam rahasia bernilai tinggi. Menurut analisis Socket, malware ini memanen file dompet dan keystore, kunci privat SSH, token akses pribadi GitHub, kredensial AWS, variabel lingkungan yang berisi kunci API, kredensial yang tersimpan di peramban, serta rahasia pengembang lainnya dari mesin yang terkompromi .
Target spesifik dompet yang secara eksplisit disebutkan dalam laporan meliputi data ekstensi peramban MetaMask dan Phantom . Pencurian token GitHub sangat mengkhawatirkan karena dapat memungkinkan penyerang untuk mengakses repositori kode sumber pribadi, menyuntikkan kode berbahaya ke dalam alur CI/CD, atau bergerak lateral melalui identitas pengembang yang terkompromi
.
Investigasi Socket mengidentifikasi pengembang kripto, DeFi, Solana, Sui, dan AI sebagai target utama . Konvensi penamaan paket kampanye ini secara langsung menarik bagi komunitas-komunitas ini, dengan tema seputar audit keamanan dompet, pemantauan transaksi, pengembangan kontrak pintar, dan perkakas konteks AI.
Penyerang memahami bahwa pengembang di ekosistem ini secara rutin memegang kunci dompet untuk aset yang signifikan, memiliki akses ke infrastruktur cloud, dan memiliki izin istimewa di seluruh rantai alat pengembangan—menjadikan satu workstation yang terkompromi sebagai pintu gerbang menuju kerusakan finansial dan operasional yang substansial .
Aspek yang paling baru secara teknis dari TrapDoor adalah eksploitasinya terhadap batas kepercayaan asisten koding AI. Malware ini mencoba untuk memodifikasi atau menjatuhkan file .cursorrules dan CLAUDE.md—file konfigurasi yang digunakan pengembang untuk memberikan instruksi spesifik proyek ke alat AI seperti Cursor dan Claude Code .
Di dalam file-file ini, penyerang menyematkan instruksi tersembunyi menggunakan karakter Unicode lebar-nol (seperti U+200B, U+200C, dan U+FEFF). Karakter-karakter ini tidak terlihat di editor teks dan selama peninjauan kode standar, jadi seorang pengembang manusia tidak melihat sesuatu yang mencurigakan . Namun, asisten koding AI mengurai teks Unicode penuh dan dapat ditipu untuk menafsirkan instruksi tersembunyi sebagai perintah yang sah. Ini berpotensi mengeksekusi alur kerja pemanenan kredensial, mengeksfiltrasi kode sumber, atau menjalankan perintah shell sewenang-wenang tanpa sepengetahuan pengembang
.
Ini menciptakan kompromi dua tahap: paket menginfeksi lingkungan pengembang dan mencuri kredensial langsung, sementara file konfigurasi AI yang telah diracuni mempersenjatai alat AI milik pengembang untuk eksploitasi lebih lanjut. Penelitian terkait telah mengonfirmasi bahwa platform agen AI produksi, termasuk Claude Code dan GitHub Copilot, dapat mengeksekusi perintah arbitrer yang disematkan sebagai instruksi Unicode tak kasat mata dalam file keterampilan agen .
Infrastruktur deteksi Socket mengidentifikasi rilis TrapDoor dengan waktu deteksi median hanya 5 menit 27 detik, dengan deteksi tercepat tercatat pada 58 detik . Identifikasi cepat ini memungkinkan para peneliti untuk menghubungkan publikasi paket yang tampaknya tersebar menjadi satu kampanye terkoordinasi dalam waktu 48 jam sejak unggahan mencurigakan pertama
.
Semua 34 paket yang teridentifikasi di tiga registri telah dilaporkan ke pengelola registri masing-masing untuk dihapus .
Jika Anda atau tim Anda memasang salah satu paket ini, segera lakukan tindakan berikut.
Regenerasi frasa benih dompet mata uang kripto dan pindahkan dana ke dompet baru. Rotasi kunci AWS IAM, token akses pribadi GitHub, pasangan kunci SSH, dan semua token API yang tersimpan di variabel lingkungan . Cabut token OAuth untuk integrasi CI/CD.
Jalankan npm auditpip listCargo.lock untuk 34 paket berbahaya yang dilaporkan . Cari riwayat file kunci di Git untuk nama-nama paket ini, hapus semua yang cocok, dan lakukan instalasi ulang yang bersih.
Periksa ~/.bashrc, ~/.zshrc, ~/.profile, dan ~/.config/fish/config.fish untuk mencari alias mencurigakan atau perintah curl dan wget yang tidak dikomentari yang dapat membangun persistensi .
Periksa direktori .git/hooks/ di setiap repositori untuk mencari kait (hooks) pra-komit, pasca-komit, atau pra-push yang tidak sah. Penargetan token GitHub oleh kampanye ini membuat kompromi repositori di tingkat akun menjadi kemungkinan yang nyata .
Tinjau direktori .github/workflows/ untuk file alur kerja yang tidak terduga, langkah curl atau wget yang mencurigakan, dan tindakan pihak ketiga yang tidak sah. Periksa log eksekusi Actions untuk permintaan jaringan keluar yang tidak biasa.
Cari di semua proyek untuk file .cursorrules dan CLAUDE.md yang mengandung karakter Unicode lebar-nol. Berikut adalah perintah grep untuk mendeteksi karakter tak kasat mata:
grep -P '[\x{200B}-\x{200F}\x{2028}-\x{202F}\x{FEFF}]' .cursorrules CLAUDE.mdPeriksa cron jobs (crontab -l~/.config/systemd/user/), dan LaunchAgents di macOS (~/Library/LaunchAgents/) untuk entri berbahaya .
Integrasikan pemindaian keamanan rantai pasok ke dalam alur CI Anda untuk menangkap paket mencurigakan sebelum instalasi. Pertimbangkan alat deteksi waktu proses yang memantau akses ke file dompet, kunci SSH, kredensial cloud, dan direktori data peramban .
Comments
0 comments