1 poin oleh GN⁺ 2024-11-06 | 1 komentar | Bagikan ke WhatsApp
  • Kombinasi dokumen Swagger yang terekspos pada API autentikasi dan gateway EA serta kegagalan validasi izin pembaruan persona memungkinkan data akun pengguna lain hingga alur login terdampak
  • Intinya, permintaan PUT ke /identity/pids/{pidId}/personas/{personaId} dapat diakses dengan scope dp.client.default milik klien OAuth EA Desktop biasa, sementara pemeriksaan kepemilikan atas pidId di body dan personaId di path tidak memadai
  • Penyerang dapat menggabungkan perubahan nama pengguna persona, pengaturan status BANNED, pemindahan persona, pencarian ID persona akun tersembunyi, dan bypass login berbasis persona Xbox hingga mencapai login web akun
  • Dampaknya mencakup pencurian nama pengguna dan sebagian data game, pemblokiran akses game online, bypass ban game, hingga login ke akun EA melalui Xbox, dan tingkat keparahannya dinilai CVSS 10.0
  • Kerentanan ini dilaporkan ke EA pada 16 Juni 2024; EA mengklasifikasikannya sebagai critical pada 25 Juni, lalu mendistribusikan patch dari 8 Juli hingga 8 Oktober, termasuk pemeriksaan kepemilikan persona dan penghapusan dokumentasi

Paparan dokumentasi API yang berawal dari lingkungan autentikasi EA

  • Titik awalnya adalah pengujian lingkungan pengembangan integration yang ditemukan di EA Desktop
    • API autentikasi produksi adalah accounts.ea.com
    • Host autentikasi integration adalah accounts.int.ea.com
  • Di lingkungan integration, access token berotorisasi dapat diperoleh, lalu pencarian dokumentasi yang terekspos dimulai untuk memeriksa API apa saja yang dapat diakses dengan token tersebut
  • Endpoint autentikasi berada di balik reverse proxy; format respons 404 untuk path /connect dan path umum / berbeda, dan header server adalah istio-envoy
  • /connect/api-docs mengembalikan 404 kosong, berbeda dari path /connect lainnya, sehingga terlihat kemungkinan routing ke layanan terpisah; di /connect/api-docs/index.json ditemukan dokumentasi Swagger 1.1
  • Dokumentasi Swagger menunjuk ke /api-docs/connect, lalu dikonversi dengan swagger-codegen-cli menjadi spesifikasi OpenAPI 3.0 dan diperiksa di Swagger UI lokal

Daftar API internal yang terungkap di Gateway

  • EA Desktop menggunakan API GraphQL bernama “Service Aggregation Layer”, tetapi SAL di lingkungan integration berada di balik firewall
  • API gateway di gateway.ea.com yang tampaknya merupakan versi lama menggunakan endpoint berformat proxy/{service}/{route}
  • gateway.int.ea.com/proxy/api-docs/index.json mengembalikan daftar dokumentasi untuk lebih dari 80 layanan
    • Mencakup berbagai layanan seperti addresses, agerequirements, billing, commerce, dan lainnya
  • Setiap dokumen API diunduh, dikonversi ke spesifikasi OpenAPI terbaru, lalu fungsi yang dapat diakses diperiksa
  • Beberapa endpoint mengembalikan data “projects” terkait tim game EA, membutuhkan scope izin basic.domaindata, dan klien di produksi yang memiliki scope tersebut juga ditemukan
    • Data contoh memuat game Star Wars yang dibatalkan dan entri Apex Legends yang ditampilkan dengan nama grup terkait Titanfall3
  • Di lingkungan integration juga terdokumentasi cara memberikan entitlement game kustom, tetapi kegunaannya rendah karena layanan integration yang diperlukan untuk mengunduh dan bermain berada di balik firewall
  • Ada juga endpoint yang mengembalikan Xbox Live Server Token, tetapi tidak diteliti lebih jauh karena sandbox ID-nya bukan RETAIL

Informasi akun produksi dan struktur persona

  • Setiap endpoint dalam dokumentasi menampilkan scope autentikasi yang diperlukan, dan pemeriksaan berfokus pada endpoint yang dapat diakses dengan klien OAuth produksi
  • /identity/pids/me mengembalikan informasi umum akun
    • Termasuk nilai email yang dimasking, status email, sebagian tanggal lahir, negara, bahasa, status akun, versi persyaratan, waktu pembuatan, perubahan, dan autentikasi terakhir, serta apakah 2FA aktif
  • /identity/pids/me/personas mengembalikan daftar persona yang terhubung ke akun
    • Akun EA dasar menggunakan namespace cem_ea_id
    • Akun eksternal yang terhubung seperti Steam dan Xbox juga ditampilkan sebagai persona masing-masing
  • Game umumnya dapat menyimpan data seperti statistik dan inventaris di bawah persona, sehingga data dapat dipisahkan per platform
  • Selanjutnya, persona di namespace cem_ea_id disebut sebagai persona “Origin”

Kerentanan inti: kegagalan validasi izin pembaruan persona

  • Endpoint /identity/pids/{pidId}/personas/{personaId} menerima permintaan GET, PUT, dan DELETE
  • Permintaan PUT mengizinkan scope dp.client.default dan dp.server.default, sementara klien autentikasi EA Desktop biasa memiliki dp.client.default
  • Body permintaan dapat menerima displayName, namespaceName, status, statusReasonCode, lastAuthenticated, nickName, pidId, dan lainnya
  • Permintaan PUT untuk mengubah displayName pada persona Origin milik sendiri berhasil, dan nama pengguna di situs web akun EA berubah
    • Permintaan ini melewati cooldown perubahan nama pengguna dan verifikasi email perubahan nama pengguna
  • Perubahan namespaceName tidak berdampak
  • Nilai status yang mungkin adalah ACTIVE, DISABLED, PENDING, DELETED, BANNED; ketika status persona Origin sendiri diubah menjadi BANNED, EA Desktop masih dapat digunakan, tetapi login game diblokir
  • Masalah yang lebih besar adalah pidId di body permintaan dapat diganti menjadi ID akun lain
    • Permintaan untuk memindahkan persona Steam milik sendiri ke akun EA teman berhasil
    • Setelah itu, pemindahan kembali ke akun sendiri juga dimungkinkan

Verifikasi login dan percobaan XSS

  • Setelah memindahkan persona Steam milik sendiri ke akun teman lalu mencoba login ke situs web EA dengan Steam, muncul verifikasi email berbasis lokasi baru dan perangkat tidak tepercaya
  • Sebagian email yang ditampilkan bukan milik peneliti, sehingga alur untuk login ke akun teman telah tercapai, tetapi terhenti pada tahap 2FA berbasis lokasi
  • Permintaan untuk mengubah nama pengguna persona menjadi bentuk BattleDash <script>alert(1)</script> juga berhasil
  • Alert berjalan di halaman koneksi akun, sehingga XSS dimungkinkan
    • Jika pengguna yang sedang login ke akun EA diarahkan ke halaman koneksi tersebut, kode dapat dijalankan di browser dan sesi dapat diekstrak

Manipulasi langsung persona akun lain

  • Untuk memeriksa apakah personaId di path juga kurang memiliki validasi kepemilikan, percobaan perubahan nama pengguna dilakukan dengan ID persona yang tidak dimiliki sendiri
  • Setelah memperoleh ID persona akun uji baru, permintaan untuk mengubah nama pengguna akun tersebut tanpa autentikasi korban berhasil
  • Dengan cara yang sama, status dapat diubah menjadi BANNED, dan akun tersebut tidak lagi bisa login ke game
  • /identity/personas mencari persona berdasarkan displayName dan mengembalikan ID persona, ID akun, tanggal pembuatan, dan waktu login terakhir
    • Namun, pengguna yang menyembunyikan akunnya tidak ditampilkan
  • /identity/namespaces/{namespace}/personas mencari dalam namespace tertentu dan hanya mengembalikan nama pengguna serta ID persona, tetapi juga mengembalikan akun tersembunyi
    • Dengan endpoint ini saja, ID persona yang diperlukan sudah dapat diperoleh

Batasan pemindahan persona dan pengambilalihan akun parsial

  • Saat mencoba memindahkan persona Origin pengguna lain ke akun sendiri, muncul error TOO_MANY_PERSONAS_FOR_NAMESPACE
    • Penyebabnya, akun sendiri sudah memiliki persona Origin
  • Dengan asumsi akun yang mendaftar melalui konsol bisa saja hanya memiliki persona platform tersebut dan tidak memiliki persona Origin, akun konsol digunakan untuk menghindari konflik namespace
  • Setelah memindahkan persona Origin akun uji ke akun konsol, persona Origin korban dapat dipindahkan ke akun sendiri
  • Dalam kondisi ini, saat login, nama pengguna korban, statistik game non-cross-platform, dan sebagian detail akun lainnya ditampilkan
  • Saat login sebagai akun korban, muncul alur “Finish setting up my account” yang meminta pemilihan nama pengguna seolah membuat akun baru
  • Entitlement, teman, dan data penyimpanan game cross-platform modern seperti Battlefield 2042 disimpan pada akun EA itu sendiri, bukan pada persona, sehingga tidak ikut ditransfer
  • Meski begitu, penyerang tetap dapat melakukan ban pengguna, bypass ban game, pencurian nama pengguna, dan menyandera data akun

Bypass login menggunakan persona Xbox

  • Pada kondisi sebelumnya, tindakan yang bisa dilakukan adalah memindahkan persona linked account milik sendiri ke akun EA sembarang, memindahkan persona sembarang ke akun sendiri, serta melakukan ban persona dan perubahan nama pengguna
  • Saat memindahkan persona sendiri untuk login sebagai akun pengguna lain, verifikasi email muncul
  • Karena tidak pernah melihat prompt 2FA saat memainkan game EA di konsol, login berbasis token Xbox/PSN diperiksa
  • Dokumentasi Nexus Connect API memuat cara mengirim token Xbox/PSN, dan dari alur login PSN di situs EA diperoleh PSN client ID untuk mencoba login token PSN
  • Login token PSN membuat persona namespace ps3 dan memungkinkan login akun tanpa 2FA, tetapi klien yang memiliki dp.client.default tidak dapat menangani namespace ps3
  • Setelah menambahkan header X-Include-Namespace ke /connect/tokeninfo, terlihat bahwa ada daftar namespace persona yang dapat dimanipulasi per klien OAuth
    • Contoh JUNO_PC_CLIENT mencakup namespace cem_ea_id, steam, epic, xbox
  • Namespace Xbox diizinkan, tetapi karena tidak dapat membuat token Microsoft XSTS yang valid untuk game secara manual, pengujian dilakukan di Xbox sungguhan
  • Akun Microsoft baru dibuat, persona Xbox dihubungkan ke akun EA uji, lalu persona Xbox tersebut dipindahkan ke akun korban
  • Saat login ke situs web EA dengan akun Xbox, verifikasi email lokasi baru muncul; namun setelah menginstal Battlefield 2042 di Xbox dan login ke game, akses masuk ke akun korban berhasil
  • Setelah itu, login ke situs web EA dengan akun Xbox yang sama juga berhasil tanpa verifikasi email, hingga login web akun korban tercapai

Cakupan dampak dan tingkat keparahan

  • Ada dua jalur utama yang dapat digunakan penyerang
    • Memindahkan data persona orang lain keluar dari akunnya untuk mencuri nama pengguna dan data game
    • Memindahkan persona Xbox milik sendiri ke akun korban, login ke game EA di Xbox, lalu setelah jaringan menjadi tepercaya, login ke situs web EA dengan akun Xbox
  • Dampak tambahan juga besar
    • Persona orang lain dapat diberi ban sehingga mencegah sebagian besar permainan online
    • Nama pengguna orang lain dapat diubah lalu diambil alih
    • Karena ban game diproses sebagai penonaktifan entitlement game di seluruh akun, ban game dapat dibypass dengan memindahkan persona ke akun baru
  • Alur ini dapat dilakukan tanpa interaksi pengguna, terutama melalui satu endpoint API
  • Tingkat keparahannya dinilai CVSS 10.0 berdasarkan AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Jadwal perbaikan dan komentar lanjutan

  • Kerentanan dilaporkan ke EA pada 16 Juni 2024
  • EA mengirim konfirmasi pada 25 Juni 2024 dan menetapkan tingkat keparahan critical
  • Jadwal patch adalah sebagai berikut
    • 8 Juli 2024: Patch 1 dirilis, persona ownership check
    • 18 Juli 2024: Patch 2 dirilis, detail tidak diketahui
    • 6 September 2024: Patch 3 dirilis, detail tidak diketahui
    • 10 September 2024: Patch 4 dirilis, penghapusan dokumentasi
    • 8 Oktober 2024: Patch 5 dirilis, detail tidak diketahui
  • Perkiraan awal EA menyebut perbaikan bisa memakan waktu hingga akhir tahun, dan ada penilaian bahwa pada kasus yang intinya berupa dokumentasi terekspos dan satu endpoint tidak aman, patch sementara yang lebih cepat seharusnya lebih diutamakan
  • EA belum memiliki program bug bounty, dan masih ada kekhawatiran bahwa tanpa imbalan pelaporan yang nyata, sebagian orang mungkin memilih menyimpan kerentanan secara privat
  • Akun teman yang digunakan dalam pengujian awal adalah akun yang telah memberikan persetujuan

1 komentar

 
GN⁺ 2024-11-06
Pendapat di Hacker News
  • EA suka memakai sistem bersama di berbagai gim. Saat mengutak-atik Madden, saya menemukan ada backend bersama bernama blaze, dan ada endpoint web/TCP generik
    Saya membuat alat untuk memanggil endpoint ini, tetapi harus mengunggah XML, dan belakangan baru tahu bahwa setiap kali dipanggil, server EA mati
    Karena setiap permintaan mengambil server baru, saya satu per satu membuat semua server Madden crash, dan pada akhirnya EA membuat API agar orang-orang tidak mengutak-atiknya

    • Blaze adalah nama framework/layanan C++ untuk membuat backend kustom bagi gim online. Ini memungkinkan tim gim mengembangkan fitur online dengan cara standar, dengan MySQL di belakangnya
      Seingat saya, diperlukan kira-kira satu instans Blaze untuk setiap 5.000–10.000 pemain
    • Saya penulis komentarnya; tahun lalu saya juga menulis artikel yang membahas banyak kerentanan Blaze yang saya temukan, tetapi tidak saya publikasikan
      Sekarang mereka memakai format proprietari, dan tampaknya cukup nyaman dengan keamanan yang mengandalkan asumsi bahwa tak seorang pun akan mengetahui cara antarmukanya bekerja—dengan kata lain, security through obscurity
      Suatu saat saya ingin kembali ke tulisan itu, dan setidaknya isinya cukup menarik
    • Rasanya saya baru-baru ini melihat API ini di gim lain. Bukankah itu frontend GraphQL? Introspection memang dimatikan, tetapi pesan error-nya dengan ramah memberi saran untuk nama field yang salah
      Kiat saat merekayasa balik API layanan terkenal seperti ini adalah memakai pencarian kode GitHub. Jika memasukkan nama endpoint yang unik, sering muncul orang-orang serupa yang membuat klien API kecil hasil oprekan mereka sendiri, dan itu membantu investigasi saya dengan cara yang tak terpikirkan
    • Jika mencoba login ke proxy gateway EA sambil menyisir nilai berulang PSN client ID, akan dikembalikan nilai namespacename yang diambil dari data pribadi. Informasi token 2FA harus di-hash di endpoint /tokeninfo/ yang diambil dari JUNO
      Saat mencoba integrasi pasca-fakta, infrastruktur untuk API C++ kerap mengembalikan ID pengguna PSN
  • Seperti orang normal pada umumnya, tentu saja saya memesan Xbox dengan pengiriman esok hari, memasang Battlefield 2042, lalu menunggu momen penentu, dan akhirnya bisa masuk
    Para hacker memang luar biasa <3

  • Yang menarik adalah alur terperinci tentang bagaimana mereka berpindah dari satu titik ke titik berikutnya. Saya rasa prosesnya tidak serapi dan selinier tulisan blog itu
    Untuk menunjukkan waktu dan usaha yang benar-benar dibutuhkan dalam serangan seperti ini, mungkin ada setumpuk catatan, dan akan menarik juga melihatnya

  • Hal paling aneh dari semua ini adalah EA selama bertahun-tahun mengklaim bahwa memutus tautan akun Xbox lama lalu menautkannya kembali ke akun baru secara teknis tidak mungkin. Lihat saja tulisan seperti https://www.reddit.com/r/XboxGamePass/comments/12gsy4i/ea_xb... dan banyak sekali posting di forum EA
    Saya juga menemui tembok ini, dan menghabiskan berjam-jam menelepon dukungan EA, tetapi mereka tidak bisa menautkan akun Xbox saya yang sangat lama. Jadi saya tidak bisa login ke gim EA mana pun di Xbox, dan akhirnya sebagian besar tidak bisa dimainkan di platform itu
    Namun di sini ternyata hal itu sangat mungkin dilakukan

    • Saya teringat pada 2004–2005, akun Hotmail saya memiliki ruang penyimpanan 4MB yang umum saat itu, dan Microsoft sedang meluncurkan upgrade gratis 250MB untuk semua orang
      Anehnya, akun saya lama sekali mendapatkannya, dan selama 1–2 tahun saya beberapa kali mengirim email ke tim dukungan, tetapi setiap kali jawabannya adalah mereka sedang meng-upgrade akun secepat mungkin, namun karena pekerjaannya sangat besar, prosesnya akan memakan waktu bertahun-tahun
      Belakangan saya melihat trik di suatu forum: jika akun ditutup sebentar lalu dibuka lagi, kapasitasnya bisa dinaikkan menjadi 25MB, meski bukan 250MB yang dijanjikan
      Situasi akun lama 2–4MB, akun baru 25MB, dan peluncuran menuju 250MB yang memakan waktu bertahun-tahun memberi kesan bahwa Microsoft benar-benar kesulitan mencari ruang penyimpanan tersisa. Namun beberapa bulan kemudian, ketika harus bersaing dengan Gmail, mereka memutuskan memberi semua orang 2GB, dan itu diluncurkan sekaligus ke semua akun Hotmail, termasuk akun saya. Pasti ada alien yang mengantarkan UFO penuh hard disk
      [1] Contoh posting forum lama tentang trik itu, termasuk balasan yang memuji GMail yang baru muncul: https://bimmersport.co.nz/topic/5232-hotmail-upgrade-2mb-to-...
    • Serangan ini menunjukkan bahwa mengubah tautan dan memainkan gim memang mungkin, tetapi tidak diketahui efek samping apa yang akan muncul di luar skenario yang dengan mudah diverifikasi dalam tulisan itu
      Perubahan tautan bisa saja membuat data yang tersimpan di sistem penagihan menjadi tidak valid, mengacaukan laporan bulanan ke divisi Microsoft Xbox, atau membuat halaman admin internal crash saat dimuat
      Saya bukan bermaksud membela EA, tetapi jika banyak berurusan dengan sistem microservices yang kompleks, mengubah struktur data di satu tempat tidak selalu sesederhana itu
    • Mungkin mereka sedang menambahkan fitur ini untuk memperbaiki masalah tersebut, tetapi sayangnya fitur itu dieksploitasi sebelum dirilis ke publik
    • Sayangnya, pada gim cross-platform modern seperti Battlefield 2042, hak akses gim, teman, dan data simpanan disimpan di akun EA itu sendiri, bukan di persona, sehingga data tersebut tidak ikut dipindahkan
    • Kemungkinan besar bukan secara teknis tidak mungkin, melainkan tidak mungkin ditangani oleh tim dukungan pelanggan
  • Akan menarik juga kalau semua akun diblokir dan berharap tidak ada cadangan DB

    • Aku ingin melihat semua perusahaan bernilai 1 miliar dolar yang tidak punya program bug bounty mengalami hal seperti ini. Kalau tidak ada imbalan apa pun untuk melaporkan kerentanan, itu sama saja mendorong peretas untuk mengeksploitasinya demi keuntungan sendiri atau menimbulkan kekacauan
      Sebagai pelanggan yang membayar, aku berharap perusahaan-perusahaan seperti ini bersikap lebih baik, dan kalau mereka tidak punya program, secara pribadi aku tidak akan menyalahkan peretas jika mereka mengeksploitasi temuan mereka
    • Mungkin akan menyenangkan sebentar, tapi mereka pasti punya cadangan
      Tidak ada orang yang menyimpan 400 juta record di satu mesin, dan ujung-ujungnya kamu hanya membuat layanan down sepanjang sore lalu mendapat 15 tahun di penjara federal
    • Hal-hal seperti inilah alasan dunia berpaling dari industri teknologi
      Karena reaksi pertama—atau setidaknya tulisan dengan rating tertinggi saat ini—adalah gagasan bahwa akan “menyenangkan” merugikan jutaan orang demi memberi pelajaran kepada perusahaan tempat mereka bertransaksi
    • Akan jauh lebih lucu kalau semua game diaktifkan untuk semua akun. Secara harfiah semuanya. Imajinasinya kurang luas
    • Aku juga sempat memikirkan ini. Kalau mereka tidak benar-benar melapor dan memutuskan untuk iseng, hasilnya akan seperti apa? Apakah mereka akan terlacak? Apakah EA akan down selama berminggu-minggu?
  • Ada bagian seperti ini di tulisan:
    I had found a way to obtain a privileged access token within the environment (a story for another day, but a certain game's executable had hardcoded credentials!), but I wasn't sure what I could do with it.
    Bisa jelaskan bagian ini sedikit lebih jauh? Kupikir kredensial seperti itu seharusnya tidak mudah dibaca dari binary executable, dan kalau file executable game harus mengautentikasi dirinya ke server jarak jauh, aku juga tidak begitu paham apa lagi yang seharusnya dilakukan developer

    • Kredensial disimpan sebagai string, jadi kalau mencari pola yang tampak seperti kredensial di dalam binary, biasanya ada di suatu tempat
      Dalam arsitektur client-server, client selalu tidak bisa dipercaya. Executable tidak semestinya perlu mengautentikasi dirinya sendiri ke server. Executable harus mengautentikasi sebagai pengguna atau akun dengan informasi yang diberikan pengguna
      Untuk hal seperti telemetri, endpoint seperti ini biasanya menerima data tanpa autentikasi atau dengan autentikasi lemah, lalu melakukan beberapa tahap validasi untuk mencegah penyalahgunaan. Biasanya juga bersifat write/append-only
    • Aku tidak tahu kenapa menganggap binary tidak akan mudah dibaca. Di platform yang tidak terkunci, binary cukup mudah dibaca
      Kamu akan butuh sistem yang mengenkripsi executable dan membuat area aman di die CPU menangani dekripsi dengan private key, tapi meski begitu kemungkinan hanya soal waktu sampai seseorang melakukan delid pada chip dan mendapatkan kuncinya
    • Kalau komputer bisa membacanya, dan kamu punya kendali penuh atas komputer itu, kamu juga bisa membacanya. Kalau ada akses fisik, selesai sudah
      Bahkan jika dienkripsi dan kunci enkripsinya dimasukkan ke HSM, di mesin client sembarang itu mungkin tidak bisa dilakukan; selain itu pada suatu titik game harus mendekripsi string itu dan menaruhnya di memori. Dan memori itu bisa dibaca
    • Kalau program bisa mengakses kredensial, dan program itu berjalan di komputerku, maka apa pun bentuk obfuscation-nya aku juga bisa mengakses kredensial itu
      Yang seharusnya dilakukan developer game adalah menaruh sistem akun di backend dan meminta pemain memasukkan kredensial mereka sendiri di dalam game. Lalu game bisa mengidentifikasi dirinya ke server backend sebagai pemain tersebut
      Dengan begitu tindakan di backend bisa dikaitkan ke pemain tertentu, dan itu memberi dasar yang baik untuk mengambil keputusan keamanan
    • Menemukan kredensial seperti itu di binary executable memang sulit, tapi bukan mustahil. Lebih merepotkan daripada mengekstrak string dari file JavaScript yang diminify, tapi sama sekali jauh dari mustahil
      Ada tool seperti IDA, jadi bukan berarti kamu harus mencari kredensial dengan mata telanjang di antara semua hal yang tampak seperti string
      Masalahnya bukan sekadar ada kredensial yang di-hardcode di binary, melainkan kredensial itu punya hak istimewa
  • Sebagai engineer di perusahaan seperti ini, kadang aku penasaran bagaimana rasanya ketika API privat, bug aneh, dan urusan internal yang kotor muncul dalam laporan pelanggaran publik
    Namun dalam kasus seperti ini kecil kemungkinan satu individu saja bertanggung jawab atas kerentanannya. Mungkin ada 5–6 tim yang memiliki bagian-bagian berbeda yang dieksploitasi, dan karena itulah exploit itu ada sejak awal. Ini sistem raksasa yang kompleks, tempat setiap orang hanya memahami bagian kecilnya sendiri

    • Kalau kamu punya investasi emosional pada tim, atau bahkan sekadar investasi finansial, rasanya buruk, tapi saat aku di EA, mereka nyaris tampak berusaha membuat orang sulit untuk terlibat secara emosional
      Di perusahaan sebesar EA, hampir pasti kejadian ini akan dipakai untuk politik internal, dan meskipun merugikan perusahaan secara keseluruhan, orang-orang akan memanfaatkannya untuk mendapat kendali lebih besar atas perusahaan yang makin kecil
    • Di korporasi sebesar itu, tidak ada yang peduli. Itu hanya pekerjaan untuk menerima gaji
      Semua orang adalah sumber daya yang bisa diganti, jadi kenapa harus terlibat secara emosional dengan pekerjaan
    • Sebagai seseorang yang sekitar 10 tahun lalu bekerja mungkin di tim yang sama dengan tim yang masih memelihara kode persis ini, aku jadi cepat-cepat menelusuri tulisannya untuk mengecek apakah itu kode yang kutulis atau bagian yang pernah kusentuh
      Saat itu nama timnya Nucleus, jadi di salah satu respons dalam tulisan, refType bernilai NUCLEUS. Tim ini membuat dan mengelola API backend untuk otorisasi, akun, dan pembayaran
      Itu adalah magang musim panas, dan setahun kemudian aku menerima tawaran dari tim itu dan mulai bekerja. Saat itu nama timnya sudah berubah menjadi EADP dan sedang perlahan digabungkan dengan Origin. Aku agak samar apakah DP berarti Data Platform, tapi karena itu salah satu endpoint diawali dengan dp.
      Saat itu belum ada database GraphQL; semuanya Enterprise Java, OCI, Spring, Hibernate, dan semacamnya, dan sebelum aku pergi juga sudah ada sebagian Groovy/SpringBoot yang lebih baru. Itu berjalan di server data center, bukan cloud
      Meski begitu aku mengerjakan hal-hal menarik, dan meski pergi 2–3 tahun setelah insiden besar, aku belajar banyak tentang pengembangan backend dari engineer yang bagus
      Aku sama sekali tidak tahu seperti apa timnya sekarang, siapa engineernya, atau apa yang terjadi, tapi sedih melihat hal seperti ini. Saat itu kami sangat sadar keamanan, dan juga mengerjakan sistem untuk mendeteksi serta menangani percobaan brute force pada halaman login
      Aku tidak tahu apakah masih aktif atau berjalan, tetapi pemeriksaan/review keamanan untuk mengurangi kemungkinan pelanggaran dan attack surface adalah bagian dari pekerjaan sprint
    • Terutama kalau aku tidak bekerja di divisi itu sehingga tidak punya kendali, tapi tahu bahwa aku bisa melakukannya lebih baik daripada divisi itu, rasanya buruk
    • Kalau membaca tulisan seperti itu sambil tahu bahwa akulah yang mengimplementasikan API tersebut, rasanya pasti seperti jantung mau copot
  • Jika Anda menikmati membaca tulisan ini, Anda bisa menemukan lebih banyak di platform bug bounty seperti Hacktivity milik HackerOne: https://hackerone.com/hacktivity

  • Apakah ada panduan praktik terbaik untuk menyiapkan program bug bounty di suatu tempat?

    • Karena saya bekerja di bidang ini, sulit untuk tahu informasi apa yang kurang, tetapi bagi saya ini terlihat cukup sederhana
      Pasang pengumuman di suatu tempat di situs web bahwa pemeriksaan keamanan teknis diperbolehkan dengan syarat mengikuti prosedur pengungkapan kerentanan yang terkoordinasi, lalu tuliskan imbalan apa yang akan diberikan untuk bug apa dalam cakupan apa. Tentu saja ini perlu dibuat sedikit lebih spesifik daripada satu kalimat ini
      Sebaiknya juga tuliskan sejak awal pengecualian seperti tidak membayar jika usia terlalu muda atau terlalu tua, atau tidak boleh termasuk pihak yang dikenai sanksi karena lahir di negara yang salah, agar tidak menimbulkan rasa sakit hati di kemudian hari
      Jika ada pertanyaan spesifik, saya bisa menjawab atau mencarikan referensi yang bagus
  • Melihat bagian tulisan ini:
    It's also disappointing that EA has yet to start a bug bounty program. Without any real incentive to report vulnerabilities, I know people who have instead chosen to keep them to themselves. I would love to see EA follow the rest of the industry's lead here.
    Jadi penulis melaporkannya dan tidak mendapatkan apa-apa?

    • Tidak benar kalau dikatakan tidak mendapatkan apa-apa. Selalu ada kemungkinan mendapat ancaman tindakan hukum karena melaporkan kerentanan
    • Mengecewakan sekali bahwa begitu banyak perusahaan tidak menawarkan bug bounty. Kerentanan yang saya temukan selama bertahun-tahun hanya menumpuk di kepala saya
      Melaporkannya memiliki risiko hukum, dan fakta bahwa secara teknis perusahaan bisa menggugat sampai akhir juga tidak membantu. Ini berdasarkan standar EU/UK
    • Kalau begini, orang-orang akan pergi ke sisi internet yang lebih gelap dan menjual informasi kepada penawar tertinggi
    • Benar, memang tidak mendapatkan apa-apa