- Cacat keamanan pada Google OAuth menimbulkan kerentanan serius dalam proses autentikasi "Sign in with Google"
- Setelah membeli domain milik startup yang gagal, penyerang dapat membangun kembali akun email pada domain tersebut dan masuk ke layanan SaaS
- Dapat mengakses layanan yang berisi data sensitif:
- Slack, ChatGPT, Notion, Zoom, sistem HR (termasuk nomor jaminan sosial)
- Saat laporan awal diberikan, Google menyebutnya sebagai "perilaku yang dimaksud" dan menolak perbaikan
- Akar masalahnya: Google OAuth tidak dapat mendeteksi perubahan kepemilikan domain
- Saat domain berpindah tangan, pemilik baru dapat masuk ke akun mantan karyawan dengan claim yang sama
- Informasi claim default yang digunakan:
hd (hosted domain): berisi informasi domain (contoh: example.com)
email: berisi alamat email pengguna (contoh: user@example.com)
- Jika penyedia layanan bergantung pada dua informasi ini, perubahan kepemilikan domain tetap akan mengizinkan akses ke akun yang sama
- Skala masalah
- 6 juta orang Amerika bekerja di startup
- 90% startup gagal
- 50% startup yang gagal menggunakan Google Workspace
- Sekitar 100.000 domain startup yang gagal tersedia untuk dibeli
- Rata-rata, tiap domain memiliki 10 karyawan dan menggunakan 10 layanan SaaS → ada kemungkinan lebih dari 10 juta akun berisi data sensitif
Usulan solusi dan respons Google
- Solusi yang diusulkan ke Google:
- ID unik pengguna: menambahkan pengenal pengguna unik yang tidak berubah seiring waktu
- ID unik Workspace: menambahkan pengenal Workspace unik yang terhubung ke domain
- Respons awal Google:
- Dilaporkan pada September 2024 → ditutup sebagai "tidak dapat diperbaiki"
- Setelah dipresentasikan di konferensi Shmoocon pada Desember 2024, Google meninjau ulang masalah ini
- Membayar bug bounty sebesar $1,337 dan mulai mengerjakan perbaikan
- Untuk saat ini, tanpa perbaikan dari Google, masalah mendasar ini tidak bisa diselesaikan
- Beberapa layanan bahkan mengembalikan daftar seluruh pengguna jika domain cocok, sehingga kerentanan makin parah
- Bahkan jika memakai kata sandi alih-alih login Google, akun tetap bisa diambil alih lewat reset
- Startup cenderung mewajibkan SSO dan 2FA alih-alih autentikasi berbasis kata sandi
- Penyedia layanan perlu meminta autentikasi tambahan saat reset kata sandi (kode SMS, verifikasi kartu kredit)
Kesimpulan: masalah mendasar pada keamanan Google OAuth
- Cacat dalam implementasi OAuth Google memungkinkan pengambilalihan akun saat kepemilikan domain berubah
- Google sudah mulai mengerjakan perbaikan, tetapi solusi mendasar masih belum selesai
- Untuk saat ini, data dan akun jutaan warga Amerika tetap berisiko terekspos
3 komentar
Saya cenderung berpikir ini adalah kesalahan di pihak pengguna yang menggunakan email dengan domain tersebut sebagai sarana autentikasi, lalu melepaskan domainnya tetapi tidak menonaktifkan SaaS terkait dengan benar. Namun, apakah ini juga harus dianggap sebagai celah keamanan?
Di layanan yang saya buat, saya sudah mencegah isu ini sebelumnya, tetapi meskipun begitu saya setuju dengan pendapat ini.
Kalau ini dianggap masalah, maka login dan pendaftaran lewat email biasa juga harus dianggap bermasalah. Semuanya menggunakan email sebagai ID unik, dan verifikasi untuk pemulihan kata sandi juga semuanya memeriksa kepemilikan lewat email.
Secara ekstrem, jika kita berasumsi bahwa domain terkenal seperti gmail.com atau hotmail.com diretas sehingga hak untuk mengatur DNS domain tersebut jatuh ke tangan peretas, maka sudah sangat jelas bahwa akun di semua layanan SaaS di seluruh dunia akan ikut berada dalam bahaya.
Komentar Hacker News
Situasi ketika DankStartup tutup dan domainnya diambil alih orang lain sehingga bisa mengakses akun yang sudah ada tampaknya merupakan masalah tanggung jawab DankStartup, Microsoft, dan OpenAI
Dalam implementasi OpenID Google, cara yang benar adalah mengautentikasi menggunakan klaim
subsubberubahsubIni adalah masalah mendasar dari pendekatan yang bergantung pada DNS: setelah domain kedaluwarsa, pemilik baru bisa mendapatkan hak yang sebelumnya dimiliki pemilik lama
Tidak ada kerentanan pada Google OAuth; jika Anda mengambil alih sebuah domain, Anda akan memiliki semua alamat email pada domain tersebut
Berbagi pengalaman dari kasus thehunt.com di masa lalu, ketika setelah mengambil alih domain, semua layanan bisa diakses
Ini adalah masalah pada layanan yang tidak menggunakan field
sub; fieldsubharus digunakan untuk identifikasi penggunasubUsulan agar OpenID Connect Google mengimplementasikan dua pengenal yang tidak berubah
subdan ID workspace unik yang terhubung ke domainKasus klaim
subberubah di Google OAuth jarang terjadi, sehingga kemungkinan besar ini masalah implementasi layananBerbagi kasus akses email setelah pengambilalihan domain
Klaim tentang "jutaan akun" didasarkan pada asumsi bahwa startup yang gagal tidak menonaktifkan akun SaaS