Kerentanan BlueStacks kali ini telah diperbaiki pada akhir Mei yang mana kerentanan emulator Android BlueStacks ini memungkinkan penyerang untuk melakukan remote code execution, information disclosure, dan untuk mencuri back-up VM beserta datanya.
Dalam versi BlueStacks yang dirilis lebih awal dari v4.90.0.1046, ada kerentanan DNS rebinding yang memungkinkan penyerang untuk mendapatkan akses ke fungsi IPC emulator. Fungsi-fungsi ini kemudian dapat digunakan untuk berbagai serangan berbeda mulai dari RCE hingga information disclosure.
Kerentanan ini ditemukan dan dilaporkan oleh peneliti keamanan Nick Cano pada bulan April dan diperbaiki di BlueStacks 4.90.0.1046, yang dirilis pada 27 Mei 2019 bersama dengan advisory-nya.
“Seorang penyerang dapat menggunakan DNS Rebinding untuk mendapatkan akses ke mekanisme IPC BlueStacks App Player melalui halaman web berbahaya,” menurut advisory BlueStacks. “Dari sana, berbagai fungsi IPC yang terbuka dapat disalahgunakan.”
Menurut Cano, BlueStacks tidak mendukung perbaikan ini di versi 2 atau 3, jadi pengguna sangat disarankan untuk meningkatkan ke versi 4 terbaru sesegera mungkin.
Memanfaatkan DNS Rebinding
Cano menjelaskan bahwa membuat PoC untuk kerentanan ini merupakan hal sepele dan hanya membutuhkan waktu sekitar 5 menit dengan menggunakan DNS Rebinding.
Browser melindungi pengguna dari skrip yang mencoba berkomunikasi dengan domain atau hostname lain untuk mencegah kuki dicuri atau aktivitas berbahaya lainnya melalui tindakan keamanan yang disebut Same Origin Policy (SOP). SOP memastikan situs hanya dapat mengirim permintaan ke asalnya sendiri, yang dalam banyak kasus adalah domain yang dikunjungi di browser.
Karena SOP berfokus pada nama domain, daripada alamat IP, bagaimana jika ada cara untuk membuat browser berpikir bahwa skrip masih berkomunikasi dengan alamat berbahaya yang asli, tetapi sekarang berkomunikasi dengan alamat IP pada jaringan lokal? Maka, disinilah serangan DNS Rebinding masuk.
Dengan jenis serangan ini, pengguna terpikat ke situs berbahaya melalui phishing, social engineering, XSS, dll. Domain untuk situs ini di-host pada server DNS yang dikendalikan penyerang dan memiliki TTL yang sangat rendah dari 0 atau 1 detik.
Itu berarti browser harus secara teoritis menanyakan alamat IP setiap detik dari server DNS.
Sekarang halaman web berbahaya ini akan menjalankan beberapa JavaScript yang terus-menerus terhubung ke URL berikut, yang diizinkan untuk melakukannya karena itu pada asal yang sama (domain):
http[:]//webberbahaya[.]com[/]ipc[/]delete_folder?f=data
Sementara permintaan halaman di server web berbahaya tidak melakukan apa-apa, apa yang terjadi ketika penyerang mengubah alamat IP untuk webberbahaya[.]com menjadi 127.0.0.1? Perintah sekarang akan dieksekusi pada host lokal menggunakan URL yang menjadi http[:]//127[.]0[.]0[.]1[/]ipc[/]delete_folder?f=data efektif.
Karena asalnya tetap sama dan hanya alamat IP yang telah berubah, ini memungkinkan skrip untuk mem-bypass Same Origin Policy dan mengakses host atau mesin lokal di jaringan internal.
Sekarang jika ada layanan yang berjalan pada port 80 dari localhost, URL itu akan diminta dan jika perintah itu benar-benar dipetakan ke fungsi IPC yang menghapus referensi folder dengan f= variabel, folder itu kemudian akan dihapus.
Sekarang ini adalah contoh yang benar-benar fiktif, tetapi menggambarkan bagaimana DNS Rebinding dapat digunakan oleh penyerang untuk mengakses server yang berjalan secara lokal di mesin target atau bahkan jaringan internal target.
Kerentanan BlueStacks: DNS Rebinding
BlueStacks rentan terhadap serangan DNS Rebinding karena antarmuka IPC terekspos pada 127.0.0.1 tanpa otentikasi.
Ini memungkinkan Cano untuk menggunakan DNS Rebinding untuk menjalankan perintah secara remote ke server IPC dari emulator BlueStacks.
Ini termasuk menggunakan perintah back-up IPC untuk membuat back-up VM BlueStacks dan semua data yang terkandung di dalamnya. Data ini dapat mencakup nama pengguna dan kata sandi, gambar, dan apa pun yang disimpan di VM.
Peneliti juga mengatakan bahwa penyerang dapat melakukan eksploitasi RCE menggunakan perintah IPC untuk menginstal APK, bahkan yang berbahaya, atau dengan mengembalikan snapshot berbahaya ke mesin virtual BlueStacks. Snapshot ini kemudian dapat digunakan untuk menjalankan perintah di BlueStacks.
Akhirnya, Cano mengatakan penyerang dapat menggunakan perintah IPC untuk menyalin dan mengganti data apa pun di clipboard atau mengambil screenshot dari VM, atau aplikasi host Windows yang mungkin ada di atasnya.
Kerentanan ini diperbaiki oleh BlueStacks dengan membuat kunci otorisasi IPC dan menyimpannya di Registry. Setiap permintaan IPC yang dibuat harus berisi kunci otorisasi ini atau mereka akan dibuang.
Karena tingkat kerawanan ini, jika kamu menggunakan BlueStacks, kamu sebaiknya segera meng-upgrade ke versi terbarunya.