Apple pada awal tahun ini memperbaiki kerentanan keamanan di iOS dan macOS yang berpotensi memungkinkan penyerang mendapatkan akses tidak sah ke akun iCloud pengguna.
Diungkap pada bulan Februari oleh Thijs Alkemade, spesialis keamanan di perusahaan keamanan Computest, kelemahan tersebut terletak pada penerapan fitur biometrik TouchID (atau FaceID) Apple yang mengautentikasi pengguna untuk masuk ke situs web di Safari, khususnya yang menggunakan login ID Apple.
Logging in on the website normally uses OAuth with the web_message response. Safari detects when the iframe URL for that is requested, intercepts that request and starts the process AKAppSSOExtension instead. This handles the authentication and then returns the result. pic.twitter.com/scJJW5jzTo
— Thijs Alkemade (@xnyhps) February 20, 2020
Setelah masalah tersebut dilaporkan ke Apple secara bertanggung jawab, perusahaan mengatasi kerentanan dalam pembaruan sisi server.
Apple fixed this pretty quickly last week, the server now also correctly checks the redirect_uri for the API used by AKAppSSOExtension.
— Thijs Alkemade (@xnyhps) February 20, 2020
Kerentanan Otentikasi
Saat pengguna mencoba masuk ke situs web yang membutuhkan Apple ID, perintah yang akan ditampilkan untuk mengotentikasi proses masuk itu menggunakan Touch ID. Yang mana melewati proses 2FA (verifikasi dua langkah) karena sudah memanfaatkan faktor kombinasi untuk identifikasi, seperti dari perangkat dan informasi biometrik.
Bandingkan itu selama login ke domain Apple (misalnya “icloud.com”) dengan cara biasa menggunakan ID dan kata sandi, di mana situs web menyematkan iframe yang mengarah ke server validasi login Apple (“https://idmsa.apple.com”), yang menangani proses otentikasi.


Seperti yang diperlihatkan dalam demonstrasi video, URL iframe juga berisi dua parameter lain – “client_id” yang mengidentifikasi layanan (mis., ICloud) dan “redirect_uri” yang memiliki URL untuk pengalihan setelah verifikasi berhasil.
Namun dalam kasus di mana pengguna divalidasi menggunakan TouchID, iframe ditangani secara berbeda karena berkomunikasi dengan daemon AuthKit (akd) untuk menangani otentikasi biometrik dan kemudian mengambil token (“grant_code”) yang digunakan oleh halaman icloud.com untuk melanjutkan proses login.
Untuk melakukan ini, daemon berkomunikasi dengan API di “gsa.apple.com,” di mana ia mengirimkan detail permintaan dan dari mana ia menerima token.
Kelemahan keamanan yang ditemukan oleh Computest berada di API gsa.apple.com yang disebutkan di atas, yang secara teoritis memungkinkan penyalahgunaan domain tersebut untuk memverifikasi ID klien tanpa otentikasi.
“Meskipun client_id dan redirect_uri disertakan dalam data yang dikirimkan oleh akd, itu tidak memeriksa apakah URI pengalihan cocok dengan ID klien,” kata Alkemade. “Sebaliknya, hanya ada white-list yang diterapkan oleh AKAppSSOExtension di domain. Semua domain yang diakhiri dengan apple.com, icloud.com, dan icloud.com.cn diizinkan.”
Ini berarti bahwa penyerang dapat mengeksploitasi kerentanan cross-site scripting di salah satu subdomain Apple untuk menjalankan cuplikan kode JavaScript berbahaya yang dapat memicu permintaan masuk menggunakan ID klien iCloud, dan menggunakan token untuk mendapatkan sesi di icloud.com.
Baca Juga: “Kerentanan Fitur ‘Sign in with Apple’ Memungkinkan Penyerang Mengambil Alih Akun Siapapun“
Hotspot Palsu Untuk Mengambil Alih Akun iCloud
Dalam skenario terpisah, serangan dapat dilakukan dengan menyematkan JavaScript di halaman web yang ditampilkan saat menghubungkan ke jaringan Wi-Fi untuk pertama kalinya (melalui “captive.apple.com”), sehingga memungkinkan penyerang mengakses akun pengguna hanya dengan menerima permintaan TouchID dari halaman itu.
“Jaringan Wi-Fi berbahaya dapat merespons dengan halaman JavaScript yang menginisiasi OAuth sebagai iCloud,” kata Alkemade. “Pengguna menerima prompt TouchID, tetapi sangat tidak jelas apa maksudnya. Jika pengguna mengotentikasi pada prompt itu, token sesi mereka akan dikirim ke situs berbahaya, memberikan penyerang sesi untuk akun mereka di iCloud.”
A webview is opened for that URL allowing the user to escape the captive portal. Commonly, the page redirects the user, but it could also just stay on https://t.co/jMkI10D9VS. So, a malicious wifi network could respond with a page with JavaScript which initiates OAuth as iCloud. pic.twitter.com/ThPBMt4jo3
— Thijs Alkemade (@xnyhps) February 20, 2020
“Dengan menyiapkan hotspot palsu di lokasi pengguna berada (misalnya di bandara, hotel, atau stasiun kereta api), akan memungkinkan untuk mendapatkan akses ke sejumlah besar akun iCloud,” tambahnya.