- Saat melakukan pengujian di lingkungan pengembangan EA bernama "integration", penyerang memperoleh access token berhak istimewa melalui kredensial yang di-hardcode pada file eksekusi game tertentu.
Dokumen autentikasi
- Memindai berbagai endpoint untuk memeriksa apakah dokumentasi API terekspos.
- Menemukan file Swagger JSON di
/connect/api-docs/index.json, lalu mengonfirmasi seluruh implementasi Swagger untuk Nexus Connect API.
- Memperbarui file Swagger ke spesifikasi OpenAPI 3.0 dan menjalankannya di server Swagger UI lokal.
Mencari lebih banyak lagi
- EA Desktop menggunakan "Service Aggregation Layer", yaitu API GraphQL yang mengintegrasikan beberapa layanan backend.
- Menemukan lebih dari 80 endpoint layanan di
gateway.int.ea.com.
Menemukan tambang emas
- Mengirim permintaan ke semua endpoint dan mengonversinya ke spesifikasi OpenAPI untuk memeriksa berbagai data.
- Menemukan informasi menarik seperti data terkait tim game tertentu.
Waktunya produksi
- Menjelajahi endpoint yang dapat diakses dengan klien OAuth produksi.
- Melalui endpoint
/identity/pids/me dan /identity/pids/me/personas, penyerang dapat melihat informasi akun dan daftar "persona".
Penemuan besar
- Menemukan bahwa persona dapat diperbarui melalui endpoint
/identity/pids/{pidId}/personas/{personaId}.
- Memungkinkan tindakan seperti mengubah nama pengguna, mengubah status persona, dan memindahkan persona ke akun lain.
Sadar hal lain lagi
- Melalui endpoint
/identity/namespaces/{namespace}/personas, bahkan akun tersembunyi pun bisa dicari.
- Dengan memindahkan persona milik akun lain ke akun sendiri, data akun tersebut dapat dikendalikan.
Percobaan ketiga
- Menemukan bahwa login ke akun dapat dilakukan dengan melewati 2FA menggunakan token Xbox/PSN.
- Berhasil masuk ke game melalui Xbox dan mengakses akun korban.
Dampak
- Penyerang dapat memindahkan data persona untuk mencuri nama pengguna dan data game.
- Dapat mengakses akun korban dengan login ke akun melalui Xbox.
- Dapat memblokir persona atau mengubah nama pengguna.
Beberapa pemikiran
- Disayangkan EA membutuhkan waktu untuk menyelesaikan masalah ini dan tidak memiliki program bug bounty.
- Kerja sama dengan EA berjalan positif.
Linimasa
- 16 Juni 2024 - Kerentanan dilaporkan ke EA
- 8 Juli 2024 - Patch 1 dirilis (verifikasi kepemilikan persona)
- 10 September 2024 - Patch 4 dirilis (penghapusan dokumentasi)
1 komentar
Opini Hacker News
EA suka menggunakan sistem yang sama untuk semua game. Mereka menemukan backend bersama bernama blaze di Madden, yang memiliki endpoint web dan TCP. Mereka membuat alat untuk memanggil endpoint, tetapi malah menjatuhkan server satu per satu. Setelah itu mereka mencoba membangun API untuk mencegah penjelajahan
Mereka memasang Battlefield 2042 lewat Xbox dan berhasil terhubung. Suka dengan para peretas
Catatan yang menunjukkan berapa banyak waktu dan upaya yang dibutuhkan untuk melakukan serangan ini akan menarik
Orang yang menikmati tulisan ini bisa membaca lebih banyak di platform bug bounty seperti "Hacktivity" milik HackerOne
Berkat tulisan ini, mereka memeriksa server API pengembangan dan operasional untuk memastikan jalur deskriptor OpenAPI UI/JSON tidak terekspos
Game EA sering tidak jelas apakah akan berfungsi atau tidak. Hal serupa bisa terjadi bahkan di cloud besar. Ini skenario yang mustahil di dunia infrastruktur, tetapi keseharian di dunia konsumen EA
EA mengklaim bahwa mengganti akun Xbox ke akun baru "secara teknis mustahil", tetapi sebenarnya bisa. Karena tidak bisa menautkan akun Xbox lama, mereka tidak bisa memainkan game EA di Xbox
Akan lucu jika semua akun diblokir dan ternyata tidak ada cadangan basis data
Penasaran bagaimana rasanya bekerja sebagai engineer di perusahaan besar. Banyak tim memiliki bagian yang berbeda-beda, jadi kemungkinan ada celah kerentanan
Mengecewakan bahwa EA masih belum memulai program bug bounty. Karena tidak ada insentif untuk melapor, ada juga orang yang menyembunyikan kerentanan. Semoga EA mengikuti arus industri. Penasaran apakah memang tidak ada imbalan untuk pelaporan ini