Milyonlarca kullanıcıya ve yüzlerce popüler uygulamaya kod çalıştırma yetkisi nasıl elde edilir
(kibty.town)"Elbette Firebase de (kısmen) sebepti"
- AI editörü Cursor'un kurulum dosyası indirme sürecinde, Lulu güvenlik duvarı üzerinden ToDesktop'a bağlanmaya çalıştığı fark edildi
- ToDesktop, Electron uygulama paketleme, SDK ve güncellemeler sağlayan bir hizmettir
- Uygulamanın Firestore kullandığı doğrulandı ve geliştirici araçları üzerinden Firebase hakkında temel inceleme başlatıldı
- Firebase: Google tarafından sunulan, uygulamalar için bir arka uç platformu; Firestore adlı NoSQL veritabanı üzerinden istemci tarafında veri depolama ve işlemeyi destekler
- Geliştirici araçları (DevTools) ve source map'ler kullanılarak Firestore'da kullanılan koleksiyonlar incelendi
temporaryApplicationsadlı bir koleksiyon bulundu, ancak bu yalnızca eski bir listeydi ve hassas bilgi içermiyordu (2022'den beri güncellenmemişti)- Ana mantığın ve dağıtım işlemlerinin çoğunun npm paketi
@todesktop/cliüzerinden yürütüldüğü doğrulandı @todesktop/cliiçin de source map'ler vardı; sourcemapper ile özgün kaynak yapısı analiz edildi
ToDesktop CLI'ye yakından bakış
- ToDesktop CLI: uygulama dağıtımı, kaynak kod yükleme gibi temel işlevlerden sorumludur
- CLI source map'leri analiz edilirken, Firebase Cloud Function'lardan
getSignedURL'ün kötüye kullanılarak keyfi S3 yüklemesi denenebileceği bir açık bulundu; ancak pratikte anlamlı dosya yolları bulmak zor görünüyordu
Postinstall betiğiyle dağıtım hattını ele geçirmek
- Hedef: build'in çalıştığı container'da (sunucuda) kod çalıştırma yetkisi elde etmekti
package.jsoniçindekipostinstallbetiğine bir reverse shell payload'u eklenerek build container'ından bağlantı alındı- Container içine başarıyla erişildi ve build ortamının yapısı ile önemli dosyalar incelendi
config.json.encrypteddosyası tespit edildi, şifre çözme yöntemi de bulunarak gerçek gizli bilgiler (config.json) çıkarıldı- Ek olarak, içeride geniş yetkilere sahip bir Firebase Admin anahtarı da bulundu
Sömürü sonrası
- Bu açık sayesinde istenildiği gibi uygulama güncellemeleri dağıtılabiliyor ve kullanıcı uygulamayı yeniden başlattığında kötü amaçlı kod hemen çalıştırılabiliyordu
- Gerçekten de test amaçlı bir uygulamaya güncelleme dağıtıldıktan sonra istemci tarafında RCE (uzaktan kod çalıştırma) yeniden üretildi
Etki alanı
- ToDesktop kullanan tüm uygulamalara kötü amaçlı güncellemeler dağıtılabildiğinden, milyonlarca kullanıcıyı potansiyel olarak etkileyebilecek bir sorun söz konusuydu
- Örnek olarak anılan uygulamalar:
- ClickUp (https://clickup.com)
- Cursor (https://cursor.com) (artık kendi build sistemine taşındı)
- Linear (https://linear.app)
- Notion Calendar (https://calendar.notion.so)
- Özellikle bu uygulamaların kullanıcıları arasında BT ve teknoloji sektöründe çalışanlar çok olduğundan, bir saldırı durumunda etkinin büyük olma ihtimali yüksekti
Düzeltme
- Raporlamanın hemen ardından ToDesktop ekibiyle iletişime geçilerek çözüm süreci başlatıldı
- ToDesktop sorunu hızla giderdi ve ek ödül sağladı
- Mimari, build container'ından ayrı yetkilere sahip bir sidecar container içinde imzalama, yükleme gibi kritik işlerin yapılacağı şekilde değiştirildi
- ToDesktop'ın resmî güvenlik incident raporu buradan incelenebilir
- Güvenlik olayları her şirkette yaşanabilir; önemli olan verilen tepkinin niteliğidir ve ToDesktop hızlı, iş birliğine açık yaklaşımıyla olumlu bir izlenim bıraktı
Henüz yorum yok.