Cara Mendapatkan Hak Eksekusi Kode di Ratusan Aplikasi Populer dan untuk Jutaan Pengguna
(kibty.town)"Tentu saja Firebase adalah (sebagian) penyebabnya"
- Saat menelusuri proses pengunduhan installer editor AI Cursor, ditemukan bahwa aplikasi mencoba terhubung ke ToDesktop melalui firewall Lulu
- ToDesktop adalah layanan yang menyediakan pemaketan aplikasi Electron, SDK, pembaruan, dan lainnya
- Setelah dipastikan bahwa aplikasi menggunakan Firestore, investigasi dasar terhadap Firebase dimulai melalui alat pengembang
- Firebase: platform backend aplikasi dari Google yang mendukung penyimpanan dan pemrosesan data sisi klien melalui database NoSQL bernama Firestore
- Dengan memanfaatkan DevTools dan sourcemap, koleksi-koleksi yang digunakan di Firestore ditelusuri
- Ditemukan koleksi bernama
temporaryApplications, tetapi isinya hanya daftar lama dan tidak mengandung informasi sensitif (tidak diperbarui sejak 2022) - Dipastikan bahwa sebagian besar logika utama dan pekerjaan deployment dilakukan melalui paket npm
@todesktop/cli @todesktop/clijuga memiliki sourcemap, sehingga struktur source aslinya dipetakan menggunakan sourcemapper
Menelusuri ToDesktop CLI
- ToDesktop CLI: menangani fungsi-fungsi utama seperti deployment aplikasi, unggah source code, dan sebagainya
- Saat menganalisis sourcemap CLI, ditemukan kerentanan yang memungkinkan penyalahgunaan Firebase Cloud Function
getSignedURLuntuk mencoba upload S3 arbitrer, tetapi tampaknya sulit menemukan path file yang benar-benar bermakna
Membajak pipeline deployment melalui skrip postinstall
- Tujuannya adalah memperoleh hak eksekusi kode di dalam container (server) tempat proses build berjalan
- Payload reverse shell dimasukkan ke skrip
postinstalldipackage.json, lalu koneksi diterima dari container build - Berhasil mendapatkan akses ke dalam container dan menelusuri struktur lingkungan build serta file-file penting
- Ditemukan file
config.json.encrypted, lalu metode dekripsinya juga berhasil diungkap sehingga secret yang sebenarnya (config.json) dapat diekstrak - Selain itu, kunci Firebase Admin (kunci dengan hak akses luas) juga ditemukan di dalam lingkungan tersebut
Post-exploitation
- Dengan kerentanan ini, pembaruan aplikasi arbitrer dapat didistribusikan sesuka hati, sehingga kode berbahaya bisa langsung dieksekusi saat pengguna me-restart aplikasi
- Pembaruan benar-benar didistribusikan ke aplikasi uji, lalu RCE (remote code execution) berhasil direproduksi di sisi klien
Cakupan dampak
- Karena pembaruan berbahaya dapat didistribusikan ke semua aplikasi yang menggunakan ToDesktop, ini adalah masalah yang berpotensi memengaruhi lebih dari jutaan pengguna
- Contoh aplikasi yang disebutkan:
- ClickUp (https://clickup.com)
- Cursor (https://cursor.com) (kini telah pindah ke sistem build internal)
- Linear (https://linear.app)
- Notion Calendar (https://calendar.notion.so)
- Khususnya, banyak pengguna aplikasi-aplikasi ini bekerja di industri IT dan teknologi, sehingga potensi dampak serangan bisa sangat besar
Perbaikannya
- Setelah laporan dikirim, proses penanganan segera dijalankan bersama pihak ToDesktop
- ToDesktop dengan cepat menyelesaikan masalah tersebut dan memberikan kompensasi tambahan
- Arsitekturnya diubah agar pekerjaan penting seperti penandatanganan dan upload dilakukan di sidecar container dengan hak akses terpisah dari build container
- Laporan resmi insiden keamanan dari ToDesktop dapat dilihat di sini
- Insiden keamanan bisa terjadi pada perusahaan mana pun, tetapi yang penting adalah cara menanggapinya, dan ToDesktop meninggalkan kesan positif karena merespons dengan cepat dan kooperatif
Belum ada komentar.