Pengelola Kata Sandi yang menggunakan API IsiOtomatis Android Oreo Berpotensi Rentan terhadap Kebocoran Data

Potensi kelemahan keamanan pada API IsiOtomatis Android Oreo memungkinkan pengelola kata sandi membocorkan data seperti kata sandi, alamat, atau kartu kredit.

IsiOtomatis adalah salah satu fitur baru terbesar dan paling banyak dipublikasikan yang diperkenalkan dengan rilis Android 8.0 Oreo. Banyak aplikasi pengelola kata sandi yang berbeda, seperti LastPass, telah menerapkan API baru ini ke dalam aplikasi mereka. Dan meskipun hal itu bisa terbukti cukup perbaikannya dibandingkan implementasi IsiOtomatis sebelumnya yang menggunakan Layanan Aksesibilitas, ada potensi kelemahan keamanan yang perlu dipertimbangkan. Bulan lalu, sebuah buku putih diterbitkan ke GitHub, mendokumentasikan kelemahan bawaan pada API IsiOtomatis Android Oreo yang dapat menyebabkan kerusakan berpotensi menyebabkan pengelola kata sandi Anda membocorkan lebih banyak data pribadi Anda daripada yang Anda izinkan. Kami akan membuat ikhtisar singkat dari buku putih yang ditulis oleh Mark Murphy (lebih dikenal sebagai Perangkat Umum) dan dipublikasikan di halaman GitHub miliknya pada 8 Agustus 2017.


Potensi Kebocoran Data di API IsiOtomatis Android Oreo

Bagaimana cara kerja cacatnya?

Penerapan isi otomatis di Android Nougat (dan versi yang lebih rendah), dan browser seperti Google Chrome, adalah sesuatu yang sangat sederhana. Biasanya, aplikasi pengelolaan kata sandi akan menggunakan Layanan Aksesibilitas untuk memindai konten layar untuk kotak login dan merekomendasikan data pengisian otomatis berdasarkan apa yang ditemukannya. Meskipun berhasil, itu berhasil dapat menyebabkan kelambatan yang cukup besar.

Di Android Oreo, cara kerjanya sedikit berbeda, karena aplikasi kata sandi kini secara resmi didukung dengan API IsiOtomatis. Aplikasi kata sandi pihak ketiga tidak memerlukan Layanan Aksesibilitas lagi, karena aplikasi tersebut kini dapat berperan sebagai layanan isi otomatis, berkomunikasi dengan aplikasi melalui Kerangka IsiOtomatis. Saat pengguna fokus pada widget, sistem akan mengemas beberapa informasi tentang widget/formulir tersebut dan mengirimkannya ke aplikasi isi otomatis. Aplikasi kemudian mengembalikan data isi otomatis yang relevan seperti kata sandi, email, kartu kredit, atau jenis data sensitif lainnya. Sistem Android bertindak sebagai perantara antara aplikasi yang menyimpan data dan aplikasi yang memintanya.

Aplikasi IsiOtomatis di Android 8.0 Oreo

Namun, aplikasi jahat atau malware sebenarnya dapat memanfaatkan fitur isi otomatis untuk mendapatkan lebih banyak data. Aktivitas jahat bisa meminta data isi otomatis tambahan untuk dimasukkan dengan widget yang tidak terlihat atau tersembunyi. Meskipun pengguna setuju untuk mengisi salah satu widget yang terlihat, seperti formulir login atau sejenisnya, widget yang tidak terlihat juga mendapatkan data tambahan tanpa Anda melihatnya. Ini bisa sangat berbahaya jika informasi yang bocor adalah kata sandi, alamat, atau detail kartu kredit Anda!

Tangkapan layar di atas menunjukkan aplikasi pengujian jahat yang memanfaatkan kelemahan keamanan ini.

Jawaban Google untuk Masalah tersebut

Menurut CommonsWare, masalah keamanan ini belum memiliki solusi publik yang diposting oleh Google. Namun, kami tahu bahwa Google mengetahui masalah ini. CommonsWare menyatakan bahwa teknisi Google mengakui bahwa masalah tersebut ada dalam laporan pelacak masalah pribadi, tetapi memang demikian akan sulit (jika bukan tidak mungkin) untuk benar-benar menambalnya atau meluncurkan perbaikan.

Tetapi itu tidak berarti IsiOtomatis sepenuhnya tidak aman untuk digunakan, karena Google mengambil pendekatan lain untuk memastikan keamanan data. Perusahaan itu mendorong agar layanan pengisian otomatis menangani masalah ini dan oleh karena itu, berupaya meningkatkan kesadaran bagi pengembang untuk meningkatkan penyedia isi otomatis mereka dan menjadikannya lebih aman. Apa sebenarnya yang diusulkan?

Pertama-tama, penyedia isi otomatis harus mempartisi data mereka. Daripada menyimpan semua data isi otomatis ke dalam satu kumpulan, pengembang harus membagi data pengguna yang disimpan dalam partisi. Misalnya partisi alamat/telepon, partisi kartu kredit, partisi password/username, dan sebagainya. Layanan isi otomatis hanya akan mengembalikan data satu partisi pada satu waktu berdasarkan widget yang difokuskan. Ini adalah salah satunya halaman yang tersedia untuk umum pada aplikasi IsiOtomatis yang melindungi dirinya dari kebocoran data ke widget yang tidak terlihat.

Ada juga beberapa hal lain yang harus dilakukan oleh pengembang pengelola kata sandi, menurut para insinyur Google. Misalnya, penyedia isi otomatis hanya boleh mengembalikan data ke aplikasi tertentu yang menyediakannya. Hal ini harus dilakukan dengan memverifikasi nama paket dan tanda tangan publik aplikasi sehingga APK yang dimodifikasi pun tidak dapat mengaksesnya. Hal lainnya adalah aplikasi isi otomatis memerlukan autentikasi sebelum benar-benar menyediakan data aktivitas autentikasi tersebut memberi tahu pengguna jenis data apa yang akan diberikan kepada aplikasi yang memintanya. Saran ini sebenarnya memiliki banyak kesalahan, yang paling penting adalah bahwa saran tersebut tidak benar-benar diterapkan oleh Google.

Ingatlah bahwa banyak dari proposal di atas diambil dari laporan pelacak masalah pribadi CommonsWare, dan bukan dari halaman dokumentasi resmi Google. Untuk rincian teknis lebih lanjut tentang bagaimana aplikasi yang menggunakan API IsiOtomatis dapat melindungi dirinya dari serangan semacam ini, kami sangat menyarankan Anda membaca kertas putih lengkap oleh CommonsWare.

Aplikasi apa yang aman dari kelemahan ini?

Kami telah menghubungi pengembang 1Password, Enpass, dan LastPass tentang kerentanan ini, dan tim keamanan di balik 3 aplikasi ini telah diklaim bahwa mereka adalah aman, meskipun kami belum memverifikasi klaim tersebut.

Seperti yang bisa kita lihat pada pernyataan di atas, 1Password memerlukan otentikasi dari pengguna sebelum mengisi data, juga memberi tahu mereka data apa yang akan diisi sebelumnya. Ini juga membantu mengatasi masalah pengisian senyap, karena popup autentikasi akan muncul untuk setiap aktivitas yang meminta data pengisian otomatis.

Enpass tidak akan pernah mengungkapkan keseluruhan gantungan kunci ke aplikasi yang meminta, baik berbahaya atau asli. Hanya item tersimpan yang cocok dengan nama paket aplikasi yang meminta yang akan disajikan kepada pengguna. Mereka juga menegaskan bahwa mereka akan mengambil tindakan lebih lanjut sesuai dengan saran Google.

Selain itu, LastPass mengonfirmasi kepada kami bahwa, meskipun mereka tidak mengetahui masalah ini sebelum rilis Android Oreo, aplikasi mereka tetap menggunakan partisi data untuk melindungi pengguna, bersama dengan pemeriksaan lain untuk memastikan bahwa LastPass hanya mengisi aplikasi yang terkait dengan entri tersebut.

Meskipun seharusnya tidak ada masalah dalam menggunakan 3 aplikasi ini, jika Anda ingin tetap aman, Anda harus menonaktifkannya isi otomatis sepenuhnya di ponsel Anda hingga Anda dapat mengonfirmasi dengan pengembang pengelola kata sandi bahwa aplikasi mereka aman dari jalur ini menyerang. Untungnya hal ini dapat dilakukan dengan mudah dengan membuka Pengaturan > Sistem > Bahasa & masukan > Lanjutan dan temukan preferensi "Layanan IsiOtomatis", ketuk dan pilih "Tidak Ada".

Seperti yang kami katakan di atas, tidak diketahui apakah Google benar-benar dapat melakukan perbaikan untuk masalah ini, jadi menggunakan aplikasi tepercaya atau cukup menonaktifkan fitur tersebut adalah satu-satunya cara agar Anda tetap aman. Jika Anda ingin membaca lebih lanjut tentang masalah ini dan semua detail yang terkait dengannya, Anda harus membaca versi aslinya kertas putih yang mendokumentasikannya di GitHub.


Artikel ini diperbarui pada 13/9/17 agar lebih akurat mencerminkan implikasi tanggapan LastPass, Enpass, dan 1Password.