Meretas Google dengan AI dan Menghasilkan Rp7 Miliar
(brutecat.com)- Studi kasus peneliti keamanan yang menyuruh AI untuk secara otomatis terus-menerus menusuk API Google, lalu meraih hadiah bug bounty sebesar 500 ribu dolar dalam 3 bulan
- Dengan menggabungkan API key yang dikumpulkan dari lebih dari 60.000 aplikasi Android dan spesifikasi API Google (discovery document), ia mengamankan lebih dari 1.500 API sebagai target pengujian, termasuk yang tidak banyak diketahui publik
- AI berbasis Claude dihubungkan ke alat pengujian API agar dapat mengirim permintaan seperti manusia dan secara otomatis menemukan kerentanan kontrol akses yang tidak memiliki pemeriksaan izin
- Ditemukan banyak kerentanan serius seperti pembajakan akun Google Voice, kebocoran video privat YouTube, paparan kunci Widevine DRM, dan pelacakan identitas pemilik perangkat Nest
- Sebagian besar bukan berasal dari serangan canggih, melainkan dari kesalahan dasar yang berulang seperti pemeriksaan izin yang hilang, API tanpa autentikasi, dan lingkungan pengujian yang mengekspos data nyata apa adanya
Titik awal riset
- Pada Oktober 2025, setelah undangan ke bugSWAT Mexico, fokus riset terhadap Google kembali diperdalam; fakta bahwa sebagian kode sumber Google bisa dilihat menjadi pemicu ketertarikan
- Selama setahun terakhir, sambil membuat proyek-proyek kecil dengan Claude, ia menilai bahwa AI sangat berpotensi dipakai untuk menguji API Google secara otomatis dalam skala besar
- Titik masuk utamanya adalah discovery document — dokumen ala Swagger versi Google yang mendeskripsikan semua endpoint, parameter, dan metode agar dapat dibaca mesin
- Sebagian bersifat publik seperti YouTube Data API, tetapi ada juga untuk API internal seperti Internal People API
- Sebagian bisa diakses begitu saja, tetapi kebanyakan memerlukan API key yang valid
Mengumpulkan API key
- Kunci yang ditemukan di satu layanan sering kali juga aktif di banyak API lain dalam proyek GCP yang sama, sehingga makin banyak kunci yang terkumpul, makin luas pula cakupan API yang bisa diakses
- Pengumpulan kunci dilakukan bersama temannya, Michael
- Mengunduh dan mengekstrak 61.200 APK Android yang mencakup semua versi dari semua aplikasi Google, lalu mencari API key di dalamnya
- Menggunakan ekstensi berbasis Chrome Debugger API untuk menyadap trafik, lalu mengunjungi sekitar 2.800 domain web Google yang sudah diketahui guna mengumpulkan key dari request secara real-time
- Juga menganalisis aplikasi Google di iOS (IPA) yang telah didekripsi serta binary Google lain yang bisa diperoleh
-
Menyaring hanya key milik Google
- Untuk tetap berada dalam cakupan VRP, Cloud Marketplace API dipakai untuk melihat informasi proyek yang terhubung ke key dan membuang key non-Google
- Jika key dipakai pada API yang tidak mengizinkan akses, error yang dikembalikan akan mengekspos nomor proyek (contoh:
...in project 244648151629...) - Dengan nomor ini, field
companymemberi tahu domain pemilik proyek, sehingga semua key di luargoogle.com(serta perusahaan akuisisi sepertinest.com,fitbit.com,wing.com) dibuang
Menemukan domain API Google yang masih aktif
- Kandidat domain dikumpulkan dari domain yang direkam ekstensi, pembuatan brute-force berbasis kata kunci, dan certificate transparency log
- Setiap domain lalu diuji; bila header
ServerbernilaiESF,GSE, atauscaffolding on HTTPServer2, domain itu dianggap sebagai API Google aktif yang valid
Mengikis sampai spesifikasi tersembunyi
- Pada Juli 2025, Google menghapus jalur
/$discovery/restdari sebagian besar API, tetapi beberapa masih bisa dilewati dengan trik tertentu -
Endpoint tersembunyi lewat Visibility Label
- Proyek tertentu mengaktifkan visibility label, sehingga endpoint tersembunyi hanya bisa diakses bila parameter
labelsdiberikan - Jika spesifikasi Service Management API diminta tanpa label ukurannya 253KB, tetapi dengan
?labels=GOOGLE_INTERNALnaik menjadi 329KB dan mengekspos banyak dokumen tersembunyi - Karena label hanya bisa diterima satu per satu, diperlukan volume request yang sangat besar untuk menguji semua kombinasi label, key, dan API
- Proyek tertentu mengaktifkan visibility label, sehingga endpoint tersembunyi hanya bisa diakses bila parameter
- Dengan cara ini, didapatkan spesifikasi lebih dari 1.500 API, lalu digabungkan dengan dokumen dari riset sebelumnya untuk menyiapkan pengujian otomatis berbasis AI
Menyelesaikan masalah autentikasi
- API key menyelesaikan soal “izin”, tetapi banyak endpoint juga membutuhkan autentikasi terpisah untuk memastikan siapa pemanggilnya
- Bearer token terikat ke proyek GCP, sehingga jika dicampur dengan API key akan muncul error “proyek berbeda”, dan tidak ada bypass yang diketahui
-
First Party Authentication (FPA)
- Banyak API mendukung skema autentikasi khas Google bernama FPA, yang bisa bekerja bersama API key
- Request web menyertakan
Cookiesesi dan nilaiAuthorizationyang dihitung darinya, lalu dikirim ke host*.clients6.google.com - Beberapa API seperti
drivefrontend-pamemerlukan header FPA v2 yang lebih lengkap, yang memasukkan pengenal pengguna seperti email ke dalam hash - Michael menemukan sourcemap yang sempat bocor secara tidak sengaja dari Google, sehingga kode pembuat header FPA v2 dari library internal gapix bisa didapat
-
Struktur token dan Gaia ID
- Format token adalah
<timestamp>_<hash>_<kunci_pengenal>, dan input SHA1-nya adalahemail:gaiaId timestamp sessionCookie origin - Kunci pengenal hanya tiga:
e(email),u(Gaia ID yang diobfuscate), dana(domain Workspace); huruf lain diabaikan backend - Gaia adalah singkatan dari “Google Accounts and ID Administration”, dan setiap akun punya Gaia ID berurutan tanpa obfuscation (misalnya
131337133377) serta ID obfuscate yang lebih panjang
- Format token adalah
-
Whitelist Origin dan pembatasan key
- Banyak API memiliki daftar
Originyang diizinkan; jika memakai origin yang tidak diizinkan, error yang muncul adalahSESSION_COOKIE_INVALID, seolah-olah masalahnya ada di cookie - Key memiliki empat jenis pembatasan: Server, Browser, Android, iOS. Browser memerlukan
Referer, iOS memerlukanX-Ios-Bundle-Identifier, dan Android memerlukanX-Android-Packageserta fingerprint sertifikat yang cocok - Saat mengumpulkan key, nilai-nilai ini juga disimpan agar brute-force bisa diintegrasikan ke program yang sama
- Origin
*.corp.google.comtidak memiliki pembatasan; API seperti ini kemungkinan adalah API internal yang tidak dimaksudkan untuk publik dan biasanya penuh bug — salah satunya menghasilkan hadiah $9.000 karena kerentanan kontrol akses
- Banyak API memiliki daftar
Memetakan alur request dan membuat alat uji sendiri
- Dibuat program untuk mengklasifikasikan pada tahap mana request ditolak — mulai dari interpretasi metode, validitas key, pembatasan key, autentikasi, pemeriksaan origin, label, dan sebagainya — sehingga terbentuk peta pasangan key dan API mana yang saling cocok
- API Explorer milik Google hanya mendukung API publik dan tidak tersedia untuk API privat, sehingga dibuat API Explorer sendiri dalam sekitar seminggu, termasuk dukungan hingga FPA v2
- Spesifikasi diparse di sisi klien untuk otomatis membentuk JSON request/response yang valid, serta menyediakan UI untuk cepat menguji payload sembarang
- Endpoint yang dipakai dalam demo menghasilkan hadiah $6.000 karena bug kontrol akses yang membocorkan assignedTams (technical account managers)
Menyusun pengujian otomatis dengan AI
- Tujuannya adalah membuat AI secara otomatis menemukan isu kontrol akses dasar, lalu manusia dapat mengembangkannya menjadi kerentanan yang lebih serius
- Kode parsing JSON di frontend dihubungkan ke AI sebagai alat MCP, sehingga AI bisa menguji API seperti manusia
-
Lebih teliti, lebih senyap
- Awalnya AI hanya menusuk beberapa kali lalu cepat selesai, sehingga ditambahkan Ralph Wiggum loop agar proses hanya bisa berakhir setelah setiap endpoint diuji minimal sekali
- Endpoint terlebih dahulu dikelompokkan secara logis, lalu diuji per grup, dan temuan dari grup awal dibagikan ke grup berikutnya
- Input
probe_apidisederhanakan agar fokus padaendpoint,path, danbody, sementara autentikasi FPA yang kompleks ditangani backend sehingga AI bisa fokus pada penulisan payload - Karena respons bisa berbeda untuk tiap key, request yang sama otomatis dikirim dengan semua key, lalu respons identik dikelompokkan berdasarkan hash
- Error membingungkan seperti “Method not found” diterjemahkan menjadi MISSING_REQUIRED_VISIBILITY_LABEL dan sejenisnya agar AI tidak bingung
-
Mengatasi noise dan masalah verifikasi
- Di awal, bug asli tenggelam di bawah 90% noise; dua masalah utama adalah sulit diverifikasi dan terlalu banyak false positive
- Laporan diberi operation ID yang menunjuk ke request nyata, sehingga bisa direproduksi dari frontend dengan tombol “Play” dan menghasilkan bukti yang tidak bisa dimanipulasi
- Selama lebih dari sebulan, system prompt terus disempurnakan agar kriteria pelaporan jelas — hanya menerima akses ke data pengguna lain atau respons 2xx pada kondisi yang seharusnya 4xx, sementara enumerasi keberadaan semata tidak dihitung sebagai kerentanan
- Setelah itu, AI mulai menemukan bug dalam jumlah besar dengan akurasi lebih dari 50%, dan satu-satunya batas nyata adalah jumlah API key yang dimiliki
Kerentanan utama yang ditemukan
- Dalam waktu kurang dari 3 bulan, ditemukan bug senilai $500.000; berikut contoh utama yang sudah diperbaiki
-
Pembajakan akun Google Voice
gfibervoice-pasama sekali tidak memiliki kontrol akses, sehingga dengan satu baris curl tanpa autentikasi, seluruh PII korban seperti nomor telepon dan alamat notifikasi bisa di-dump selama mengetahui unobfuscated Gaia ID korban- Respons bahkan dapat menampilkan nomor telepon pemulihan akun Google milik korban (hanya dalam kondisi tertentu; syarat pastinya tidak diungkap Google)
- Ada juga endpoint yang bisa memaksa penetapan nomor Voice ke akun arbitrer (meski muncul error 500, nomor tetap benar-benar ditambahkan), dan endpoint dengan potensi SIM swap juga ditemukan
- Diklasifikasikan P0/S0, ditambal dalam hitungan jam, dan menghasilkan hadiah $20.000
- Tepat setelah patch, ditemukan paparan zhandler khusus intranet seperti
/btz; bila mencapai/flagz, API key dapat diekstrak dari layanan yang berjalan
-
Pengambilalihan akun AdExchange
- Ditemukan endpoint yang dengan satu request bisa me-dump seluruh daftar akun AdExchange
- Endpoint akun yang diblokir di produksi ternyata berjalan tanpa kontrol akses di lingkungan staging, dan staging tersebut menunjuk ke data produksi nyata
- Peneliti juga bisa menambahkan dirinya sebagai ADMIN ke akun arbitrer; total dua laporan ini menghasilkan $30.000
-
eldar.corp.google.com- API dari Eldar, situs internal khusus Googler untuk pengelolaan penilaian privasi, terekspos ke luar sehingga non-Googler bisa melihat informasi sensitif seperti permintaan akses log internal
- Setelah diblokir, masih diberi tahu bahwa layanan itu dapat dicapai lewat alamat sandbox lain; total hadiah $26.674
-
Kebocoran video privat YouTube
- Nama asset yang dibuat saat unggah video berbentuk
Auto generated asset - <video_id>, sehingga cukup dengan pencarian, ID video privat bocor dan videonya bisa ditonton - Dengan request tiap 30 detik, bisa diperoleh feed real-time video privat unggahan partner — ancaman nyata yang dapat disalahgunakan untuk taruhan orang dalam di pasar prediksi, memanfaatkan fakta bahwa perusahaan sering mengunggah video pengumuman produk lebih dulu secara privat
- Menghasilkan hadiah $12.000 (kualitas laporan sangat baik)
- Nama asset yang dibuat saat unggah video berbentuk
-
Paparan kunci Widevine DRM
- API portal partner untuk Widevine, DRM berskala sangat besar yang dipakai Disney, Netflix, dan lainnya, bisa diakses publik
- Seluruh daftar organisasi bisa di-dump, kunci PGP dan AES milik organisasi tertentu dapat dilihat dan didekripsi, dan peneliti bahkan bisa menambahkan dirinya ke organisasi arbitrer untuk mengelola perangkat
- Menghasilkan hadiah $16.004,40 (kualitas laporan sangat baik)
-
plx.corp.google.com- API DataHub yang menjadi dasar platform analitik internal karyawan PLX terekspos, sehingga metadata tabel informasi karyawan aktif bisa dilihat
- Di API staging,
setIamPolicymemungkinkan menambahkan diri sendiri sebagai admin dataset, sehingga data YouTube rahasia bisa di-dump, termasuk tabel hingga 2,1PB - Diakui sebagai P0/S0 dalam 1 jam; dua kerentanan ini masing-masing menghasilkan $12.000
Kerentanan lintas tenant di Translation Hub
- Ditemukan banyak isu kontrol akses pada Translation Hub, produk pengelolaan terjemahan dokumen skala besar
ListOperationsbekerja tanpa OAuth token, sehingga membocorkan nama service account internal, nama bucket GCS, dan nama tabel internal- Dengan bearer token dari akun Google mana pun, data proyek lain bisa dibaca, termasuk email penerjemah dan nama file rahasia pekerjaan
- Dengan
UpdateProjectConfig, jika konfigurasi korban diubah ke jalur GCS arbitrer, maka hak akses service account bersama bisa disalahgunakan untuk menarik objek GCS privat dalam bentuk base64 - Total tiga bug ini menghasilkan $36.500
YouTube TV CMS
- Pada API untuk akun YouTube CMS yang dapat melakukan strike, claim, atau monetisasi video arbitrer, endpoint campaign sama sekali tidak memeriksa hubungan pemanggil
GET /v1/campaignsmelakukan dump global semua campaign dalam sistem tanpa scoping, dan campaign bisa diubah, disalin, atau dihapus hanya dengan ID- Sebagai efek samping, email akun CMS sensitif ikut bocor; hadiah $24.000 (kualitas laporan sangat baik)
Vertex AI Search for Commerce
conversationalSearchCustomizationConfigdari produk pencarian dan rekomendasi ritel memungkinkan pembacaan dan perubahan konfigurasi proyek arbitrer tanpa kontrol akses- Saat dibaca, system prompt pelanggan (model preamble) serta contoh klasifikasi dengan memo kebijakan internal ikut terekspos
- Saat ditulis, system prompt AI pencarian yang berhadapan langsung dengan pelanggan dapat disisipi payload prompt injection, menghasilkan hadiah $30.000
Cloud Console GraphQL
- Layanan internal yang tidak dipublikasikan ke internet pun masih bisa dijangkau secara tidak langsung lewat permukaan proxy, dan Cloud Console (nama kode Pantheon) mem-proxy backend gRPC lewat GraphQL
-
Bypass verifikasi tanda tangan
- Setiap request memverifikasi tanda tangan query (
querySignature) agar sulit dimanipulasi, tetapi ditemukan bahwa query tanpa autentikasi di staging tidak memverifikasi tanda tangan - Lewat introspection, 3.448 skema berhasil dikikis dan diarsipkan ke GitHub, lalu konsep “query path” diperkenalkan untuk mengintegrasikan GraphQL ke infrastruktur fuzzing AI yang sudah ada
- Setiap request memverifikasi tanda tangan query (
-
Log request App Engine
GetDashboardAppStatsmengembalikan log App Engine 24 jam milik proyek arbitrer tanpa verifikasi IAM, bahkan tanpa perlu autentikasi- Karena URL request dapat memuat tautan reset password atau token, temuan ini menghasilkan $18.000 dan diberi CVE-2026-8934
-
Vertex Assistant
- Dengan menganalisis 5GB frontend JS, ditemukan fitur eksperimen tersembunyi Vertex Assistant, lalu feature flag-nya dipaksa aktif lewat DevTools
- Semua query terkait bekerja tanpa autentikasi hanya dengan
userId, sehingga cukup mengetahui email target untuk melihat dan mengubah daftar sesi serta seluruh riwayat percakapan, menghasilkan $30.000
-
Kredit billing Maps Platform
ListBillingAccountCreditsbekerja tanpa pemeriksaan izin, dan dengan wildcard dapat mengembalikan informasi kredit milik banyak pelanggan- PII pelanggan yang ditulis pegawai Google saat memberi persetujuan terekspos mentah di field
justification, menghasilkan hadiah $12.000
Penutup dan pelajaran
- Dalam 3 bulan, setelan ini menghasilkan bounty lebih dari $500.000, dan yang dipublikasikan hanyalah sebagian kecil
- Sebagian besar bug Google bukan soal eksploit yang canggih, melainkan ketekunan; pola rusak yang sama berulang di mana-mana — cek IAM yang hilang, GraphQL tanpa autentikasi, endpoint debug di produksi, sandbox yang menunjuk ke data nyata
- Peran AI di sini bukan pada kebaruan, melainkan pada kemampuannya untuk tanpa lelah memverifikasi hal-hal yang jelas secara berulang di permukaan yang terlalu luas untuk ditangani manusia sampai tuntas
- Inti pembelajarannya
- Sistem reproduksi berbasis
operation_idadalah faktor penentu yang membuat alur kerja produktif — tanpa verifikasi satu klik, output AI hanyalah noise tak berguna - Jika discovery doc, GraphQL SDL, dan proto berhasil diperoleh, AI dapat memahami input yang bermakna untuk diuji
- Permukaan server-side Google sangat terstandarisasi, sehingga bila kekhususan infrastrukturnya diabstraksikan dari AI, fokus bisa lebih diarahkan ke pengujian API yang sesungguhnya
- Sistem reproduksi berbasis
1 komentar
Ini benar-benar konsep pendapatan baru dari vibe coding.