- EA’in geliştirme ortamı olan "integration" üzerinde test yapılırken, belirli bir oyunun çalıştırılabilir dosyasına hardcode edilmiş kimlik bilgileri üzerinden ayrıcalıklı bir erişim tokenı elde edildi.
Kimlik doğrulama belgeleri
- API belgelerinin açıkta olup olmadığını kontrol etmek için birden fazla endpoint tarandı.
/connect/api-docs/index.jsoniçinde Swagger JSON dosyası bulundu ve Nexus Connect API’nin tam Swagger implementasyonu incelendi.- Swagger dosyası OpenAPI 3.0 spesifikasyonuna güncellenip yerel Swagger UI sunucusunda çalıştırıldı.
Daha fazlasını bulmak için
- EA Desktop, birden fazla backend hizmetini birleştiren GraphQL API’si olan "Service Aggregation Layer" kullanıyor.
gateway.int.ea.comüzerinde 80’den fazla hizmet endpoint’i bulundu.
Altın madeni bulundu
- Tüm endpoint’lere istek atılıp OpenAPI spesifikasyonuna dönüştürülerek çeşitli veriler incelendi.
- Belirli oyun ekiplerine ait veriler gibi ilginç bilgiler keşfedildi.
Prodüksiyon zamanı
- Prodüksiyon OAuth istemcisiyle erişilebilen endpoint’ler araştırıldı.
/identity/pids/meve/identity/pids/me/personasendpoint’leri üzerinden hesap bilgileri ve "persona" listesi görüntülendi.
Büyük keşif
/identity/pids/{pidId}/personas/{personaId}endpoint’i üzerinden persona güncellenebildiği keşfedildi.- Kullanıcı adı değiştirme, persona durumunu değiştirme ve persona’yı başka bir hesaba taşıma gibi işlemler yapılabiliyordu.
Bir başka farkındalık
/identity/namespaces/{namespace}/personasendpoint’i üzerinden gizli hesaplar da aranabiliyordu.- Başka hesapların persona’ları kendi hesabına taşınarak hesap verileri kontrol edilebiliyordu.
Üçüncü deneme
- Xbox/PSN token’ları kullanılarak 2FA’nın atlatılabildiği ve hesaba giriş yapılabildiği keşfedildi.
- Xbox üzerinden oyuna giriş yapılarak kurban hesabına erişilebildi.
Etki
- Saldırganlar persona verilerini taşıyarak kullanıcı adlarını ve oyun verilerini çalabiliyordu.
- Xbox üzerinden hesaba giriş yaparak kurban hesaplarına erişebiliyordu.
- Persona’ları yasaklayabiliyor veya kullanıcı adlarını değiştirebiliyordu.
Bazı düşünceler
- EA’in sorunu çözmesinin zaman aldığı ve bir bug bounty programının olmaması hayal kırıklığı yarattı.
- EA ile iş birliği olumluydu.
Zaman çizelgesi
- 16 Haziran 2024 - Güvenlik açığı EA’e bildirildi
- 8 Temmuz 2024 - Yama 1 dağıtıldı (persona sahipliği doğrulaması)
- 10 Eylül 2024 - Yama 4 dağıtıldı (belgelerin kaldırılması)
1 yorum
Hacker News görüşü
EA, tüm oyunlarda ortak bir sistem kullanmayı seviyor. Madden'da
blazeadlı ortak bir backend bulundu; web ve TCP endpoint'leri vardı. Endpoint çağırma aracı yapıldı, ancak sunucular tek tek çökertildi. Ardından keşfi engellemeye çalışan bir API kurulduXbox üzerinden Battlefield 2042 kuruldu ve başarıyla bağlanıldı. Hacker'ları seviyorum
Saldırıyı gerçekleştirmek için ne kadar zaman ve emek gerektiğini gösteren notlar ilginç olurdu
Bu yazıyı beğenenler, HackerOne'ın "Hacktivity" gibi bug bounty platformlarında daha fazlasını okuyabilir
Bu yazı sayesinde geliştirme ve operasyon API sunucularımı kontrol edip OpenAPI UI/JSON tanımlayıcı yollarının açığa çıkmadığını doğruladım
EA oyunlarının çalışıp çalışmayacağı belirsiz. Benzer şeyler büyük bulutlarda da yaşanabilir. Altyapı dünyasında imkansız bir senaryo olsa da EA'nin tüketici dünyasında sıradan bir durum
EA, Xbox hesabını yeni bir hesapla değiştirmenin "teknik olarak imkansız" olduğunu iddia etti, ama aslında mümkün. Eski Xbox hesabı bağlanamadığı için Xbox'ta EA oyunları oynanamıyor
Tüm hesapları kilitleyip veritabanı yedeği olmadığını ummanın eğlenceli olacağı söyleniyor
Büyük bir şirkette mühendis olarak çalışmanın nasıl bir his olduğunu merak ediyorum. Farklı ekipler farklı parçaların sahibi olduğu için zafiyetlerin bulunma olasılığı yüksek
EA'nin hâlâ bir bug bounty programı başlatmamış olması hayal kırıklığı yaratıyor. Bildirmek için teşvik olmayınca zafiyetleri saklayan insanlar da var. EA'nin sektörün gidişatını takip etmesini umuyorum. Bildirimler için ödül verilip verilmediğini merak ediyorum