Sebuah tim peneliti dari University of Wisconsin-Madison telah mengembangkan dan mempublikasikan ekstensi konsep di Chrome Web Store yang memiliki kemampuan untuk mengekstrak password teks biasa dari kode sumber website.
Pemeriksaan terhadap kolom input teks di browser web mengungkapkan bahwa model izin yang digunakan oleh ekstensi Chrome melanggar prinsip hak istimewa terendah dan mediasi yang sepenuhnya memadai.
Selain itu, para peneliti juga menemukan bahwa banyak website yang dikunjungi oleh jutaan orang, termasuk beberapa portal milik Google dan Cloudflare, menyimpan password dalam bentuk teks biasa di dalam kode sumber HTML halaman web mereka. Hal ini memberikan peluang bagi ekstensi untuk mengambil password tersebut.
Sumber Masalah
Para peneliti menjelaskan bahwa permasalahannya terkait dengan praktik sistemik yang memberikan ekstensi browser akses tak terbatas ke DOM tree situs yang mereka muat, sehingga memungkinkan akses terhadap elemen-elemen yang bisa jadi sensitif seperti kolom input pengguna.
Karena kurangnya pembatasan keamanan antara ekstensi dan elemen-elemen situs, ekstensi memiliki akses tanpa batasan terhadap data yang terlihat dalam kode sumber dan dapat mengekstraksi konten apapun.
Selain itu, ekstensi juga dapat mengeksploitasi DOM API untuk secara langsung mengambil data input ketika pengguna memasukkannya, bahkan melewati tindakan perlindungan yang mungkin diterapkan oleh website untuk menjaga input yang sensitif, dan mencuri data tersebut dengan cara yang terprogram.
Protokol Manifest V3 yang diperkenalkan oleh Google Chrome dan diadopsi oleh sebagian besar browser tahun ini, memiliki batasan yang bertujuan untuk mencegah penyalahgunaan API. Ini mencakup larangan terhadap ekstensi untuk mengambil kode yang di-hosting dari jarak jauh, yang dapat membantu menghindari deteksi, serta melarang penggunaan eval statements yang dapat mengakibatkan eksekusi kode arbitrary.
Meskipun demikian, sebagaimana dijelaskan oleh para peneliti, Manifest V3 tidak memperkenalkan pembatasan keamanan yang memisahkan ekstensi dari halaman web, sehingga masalah dengan skrip konten tetap ada.
Mengupload PoC di Web Store
Dalam rangka menguji proses peninjauan di Web Store Google, para peneliti memutuskan untuk mengembangkan ekstensi Chrome yang dapat melaksanakan serangan pengambilan password dan mencoba menguploadnya ke platform tersebut.
Para peneliti menciptakan ekstensi yang berpura-pura menjadi asisten berbasis GPT yang memiliki kemampuan:
- Mencapture kode sumber HTML ketika pengguna mencoba masuk ke halaman melalui regex.
- Menyalahgunakan CSS selector untuk memilih kolom input target dan mengekstrak input pengguna menggunakan fungsi '.value.'
- Melakukan substitusi elemen untuk mengganti bidang yang dikaburkan berbasis JS dengan bidang password yang tidak aman.
Ekstensi ini tidak mengandung kode berbahaya yang terlihat dengan jelas, sehingga berhasil menghindari deteksi statis dan tidak mengambil kode dari sumber eksternal (injeksi dinamis), sehingga sesuai dengan Manifest V3.
Akibatnya, ekstensi tersebut berhasil melewati proses peninjauan dan diterima di Chrome Web Store Google, sehingga pemeriksaan keamanan tidak berhasil mendeteksi potensi ancaman.
Tim mengikuti standar etika untuk memastikan bahwa tidak ada data aktual yang dikumpulkan atau disalahgunakan. Mereka menonaktifkan server penerima data dan hanya menjaga server penargetan elemen agar tetap aktif.
Selain itu, ekstensi tersebut selalu diatur dalam status "tidak dipublikasikan" sehingga tidak mendapatkan banyak download dan segera dihapus dari store setelah mendapatkan persetujuan.
Potensi untuk dieksploitasi
Hasil pengukuran berikutnya menunjukkan bahwa dari 10 ribu website teratas (berdasarkan peringkat Tranco), sekitar 1.100 di antaranya menyimpan password pengguna dalam bentuk teks biasa di dalam DOM HTML.
Sebanyak 7.300 website lainnya dari kelompok yang sama dianggap rentan terhadap potensi akses DOM API dan kemampuan untuk mengekstrak data input pengguna secara langsung.
Dalam makalah teknis yang baru diterbitkan oleh para peneliti dari University of Wisconsin-Madison awal pekan ini, disebutkan bahwa sekitar 17.300 ekstensi di Chrome Web Store, yang setara dengan 12,5% dari totalnya, memiliki izin yang diperlukan untuk mengekstrak informasi sensitif dari website.
Beberapa diantaranya, termasuk pemblokir iklan dan aplikasi belanja yang sangat populer, telah didownload oleh jutaan pengguna.
Beberapa contoh website penting yang mencerminkan kurangnya perlindungan yang dibahas dalam laporan ini termasuk:
- gmail.com – Password teks biasa pada kode sumber HTML.
- cloudflare.com – Password teks biasa pada kode sumber HTML.
- facebook.com – Input Password teks biasa pada kode sumber HTML.
- citibank.com – Input Password teks biasa pada kode sumber HTML.
- irs.gov – SSN terlihat dalam bentuk teks biasa pada kode sumber halaman web.
- capitalone.com – SSN terlihat dalam bentuk teks biasa pada kode sumber halaman web.
- usenix.org – SSN terlihat dalam bentuk teks biasa pada kode sumber halaman web.
- amazon.com – Rincian kartu kredit (termasuk kode keamanan) dan kode pos terlihat dalam bentuk teks biasa pada kode sumber halaman.
Analisis mengungkapkan bahwa 190 ekstensi, beberapa diantaranya telah didownload lebih dari 100 ribu kali, secara langsung mengakses kolom password dan menyimpan data tersebut dalam sebuah variabel. Hal ini menunjukkan bahwa beberapa publisher mungkin telah mencoba mengeksploitasi celah keamanan.
Seorang juru bicara dari Google telah mengkonfirmasi bahwa mereka sedang melakukan penyelidikan terkait masalah ini. Mereka juga merujuk pada Extensions Security FAQ Chrome yang tidak menganggap akses ke bidang password sebagai masalah keamanan selama izin yang relevan diperoleh dengan benar.