Analisis Aplikasi COVID-19 yang diluncurkan Pemerintah Indonesia dan Filipina
Temuan Utama
- Sebagai bagian dari penelitian Citizen Lab terhadap keamanan dan privasi aplikasi, kami melaporkan masalah yang kami temukan pada tiga aplikasi terkait COVID-19 di Indonesia dan Filipina.
- PeduliLindungi, aplikasi pelacakan kontak COVID-19 yang diluncurkan oleh pemerintah Indonesia, mengumpulkan dan mengaitkan koordinat geolokasi pengguna dengan nama, nomor telepon, dan pengenal perangkat mereka. Aplikasi itu juga mengumpulkan alamat MAC WIFI dan alamat IP lokal pengguna, yang tidak diperlukan agar fitur utama aplikasi berfungsi.
- StaySafe PH, aplikasi pelacakan kontak COVID-19 yang diluncurkan oleh pemerintah Filipina, mengumpulkan data geolokasi perangkat dan menyimpannya dengan cara yang tidak aman. Melalui kerentanan di database backend yang digunakan oleh aplikasi ini, kami dapat mengakses data geolokasi dari ratusan ribu pengguna. Kami prihatin, tetapi tidak mengonfirmasi, bahwa pola pergerakan pengguna akan dapat digunakan untuk men-deanonimkan pengguna dan untuk mengetahui status kesehatan mereka.
- Kami mengungkapkan kerentanan ini kepada Multisys, pengembang StaySafe PH, yang merilis pembaruan aplikasi untuk versi Android dan iOS dan mengamankan database backend platform sebagai tanggapan.
- COVID-KAYA, platform pelacakan kasus COVID-19 yang digunakan oleh petugas kesehatan di Filipina, meminta akses ke informasi pribadi sensitif yang tampaknya tidak diperlukan untuk fungsi utama aplikasi. Kami sebelumnya melaporkan bahwa versi Android dan web dari platform ini mengandung kerentanan yang akan memungkinkan pengguna yang tidak sah mengakses data pribadi tentang pengguna aplikasi dan kemungkinan juga data pasien.
Mengapa PeduliLindungi, StaySafe PH, dan COVID-KAYA dipilih untuk dipelajari?
Pada bulan Juli 2020, Citizen Lab menulis postingan blog singkat tentang dampak COVID-19 pada komunitas yang terpinggirkan di Indonesia, Filipina, Singapura, dan Korea Selatan. Menyusul publikasi ini, kami melakukan analisis aplikasi COVID-19 yang diluncurkan oleh pemerintah Indonesia dan Filipina karena kekhawatiran atas pengumpulan data pribadi yang dilakukan melalui aplikasi tersebut (lihat Detik.com dan INQUIRER.net untuk aplikasi di Indonesia dan Filipina), serta insiden pelanggaran data terkait COVID-19 sebelumnya di Indonesia dan Filipina.
Metode apa yang dilakukan peneliti untuk menganalisis aplikasi ini?
Kami memutuskan untuk menganalisis aplikasi versi Android, karena Android adalah sistem operasi seluler yang paling umum digunakan di wilayah Asia Tenggara. Kami mengidentifikasi izin berbahaya mana yang digunakan setiap aplikasi, dan, untuk memahami mengapa aplikasi ini meminta setiap izin berbahaya, kami menggunakan berbagai metode termasuk survei laporan media dan analisis aplikasi sebelumnya, serta dengan merekayasa balik kode dan lalu lintas jaringan setiap aplikasi.
Untuk apa aplikasi PeduliLindungi digunakan? Dan masalah apa yang Anda temukan?
PeduliLindungi dimulai sebagai aplikasi pelacakan kontak digital yang diluncurkan pemerintah Indonesia. Fitur lain telah ditambahkan ke PeduliLindungi sejak aplikasi ini diluncurkan pada akhir Maret 2020. Misalnya, fungsi buku harian digital yang mencatat daftar lokasi yang dikunjungi oleh pengguna ketika mereka memindai kode QR yang disediakan pemerintah, dan fungsi pengenalan wajah untuk mengukur suhu pengguna dan untuk menentukan apakah masker atau penutup wajah dipasang sebelum pengguna memasuki ruang publik atau suatu gedung.
Kami menemukan masalah berikut dengan aplikasi PeduliLindungi:
- Aplikasi mengirimkan informasi lokasi perangkat bersama dengan nama pengguna, nomor telepon, dan pengenal perangkat ke server yang dimiliki oleh pengembang aplikasi tersebut. Ini memungkinkan pengembang untuk melacak lokasi fisik dari masing-masing perangkat, yang tidak diperlukan untuk pelacakan kontak.
- Aplikasi meminta akses untuk membaca dan menulis ke perangkat penyimpanan eksternal. Kami menemukan bahwa akses ini tidak diperlukan untuk fungsi aplikasi tersebut.
- Aplikasi ini mengumpulkan alamat MAC WIFI dan alamat IP lokal. Kedua alamat ini dapat membantu mengidentifikasi perangkat atau pengguna, dan tidak diperlukan untuk pelacakan kontak.
- Saat memeriksa kode sumber PeduliLindungi, kami menemukan bahwa kode itu berisi pustaka deteksi “root.” Deteksi root adalah metode umum yang digunakan pengembang untuk mempersulit rekayasa balik.
Untuk apa aplikasi StaySafe PH digunakan? Dan masalah apa yang Anda temukan?
StaySafe PH adalah aplikasi pelacakan kontak dan pemantauan gejala COVID-19 yang diadopsi secara resmi di Filipina.
Kami menemukan masalah berikut dengan aplikasi StaySafe PH:
- Aplikasi ini mengumpulkan data geolokasi pengguna, yang disimpan secara terpusat di database online. Penyimpanan terpusat data pengguna ini tidak diperlukan untuk pelacakan kontak digital, dan hal ini menghadirkan risiko privasi karena membuat lokasi sensitif dan data kesehatan tersedia untuk pemerintah dan dapat diungkapkan dalam pelanggaran data.
- Database yang menyimpan koordinat geolokasi pengguna dan nomor ID pengguna (disebut sebagai tanda pengenal unik universal, atau UUID) tidak diamankan dengan benar. Isi lengkap dari database ini dapat diakses menggunakan permintaan yang dibuat khusus menggunakan kredensial akun biasa. Kami percaya bahwa identitas dunia nyata dapat disimpulkan menggunakan informasi yang bocor ini. Misalnya, jika penyerang mengetahui lokasi rumah dan kantor korban, mereka dapat menemukan UUID korban dengan menelusuri perubahan geolokasi korban dari koordinat geolokasi semua pengguna. Setelah UUID korban ditentukan, status kesehatan dan keberadaan mereka dapat dengan mudah dilacak menggunakan API publik lain.
- Aplikasi meminta izin untuk menulis ke perangkat penyimpanan eksternal, tetapi kami menemukan bahwa izin ini tidak digunakan.
- Pilihan bagi pengguna untuk menggunakan StaySafe PH dengan mendaftar menggunakan akun Facebook mereka memberi StaySafe PH dan Facebook akses ke informasi yang dapat diidentifikasi, yang melampaui apa yang diperlukan untuk pelacakan kontak. Jika pengguna memilih untuk masuk ke aplikasi dengan Facebook, pengembang StaySafe PH akan menerima informasi dari akun Facebook pengguna seperti ID unik akun Facebook, nama depan dan belakang, gambar profil, dan alamat email. Masuk ke aplikasi dengan menggunakan akun Facebook memungkinkan pengembang StaySafe PH untuk mengaitkan informasi yang dikumpulkan di dalam aplikasi (misalnya lokasi dan status COVID-19) dengan identitas online pengguna (misalnya akun Facebook dan alamat email), dan oleh karena itu membentuk pemahaman yang lebih lengkap tentang kehidupan individu tersebut.
Bagaimana pengembang StaySafe mengatasi kerentanan keamanan?
Multisys, pengembang StaySafe PH, menangani kerentanan yang kami ungkapkan dengan mempublikasikan pembaruan ke aplikasi terlebih dahulu. Kami menemukan bahwa pembaruan aplikasi ini tidak mencukupi, karena kami masih dapat mengakses database yang tidak diamankan dengan menggunakan teknik yang ditemukan dari menggunakan aplikasi dengan versi lebih lama. Setelah kami memberitahu mereka tentang masalah ini, mereka membatasi akses ke database tersebut.
Untuk apa aplikasi COVID-KAYA digunakan? Dan masalah apa yang Anda temukan?
Aplikasi COVID-KAYA dirancang untuk unit pemerintah daerah (atau barangay), rumah sakit, dan laboratorium untuk mengirimkan dan melihat kasus COVID-19, kontak, dan informasi pasien. Aplikasi ini dimaksudkan untuk digunakan oleh petugas kesehatan dan administrator, dan bukan oleh masyarakat umum.
Kami menemukan masalah berikut pada aplikasi COVID-KAYA:
- Meskipun aplikasi meminta izin ke kamera, kami menemukan bahwa aplikasi ini tidak menggunakan kamera tersebut.
- Aplikasi menggunakan izin untuk membaca dan menulis ke perangkat penyimpanan eksternal untuk menyimpan file PDF di perangkat penyimpanan eksternal. Kami menemukan fitur ini tidak diperlukan agar aplikasi tersebut berfungsi.
- Kami menemukan bahwa aplikasi mengumpulkan nama operator telepon pengguna. Informasi semacam itu biasanya digunakan untuk analisis dan pembuatan profil pengguna.
- COVID-KAYA tampaknya tidak memiliki kebijakan privasi khusus. Laman toko Google Play-nya mencantumkan tautan ke kebijakan privasi Organisasi Kesehatan Dunia (WHO). Namun, Kebijakan Privasi WHO hanya berkaitan dengan situs web WHO (“semua situs dalam nama domain ‘who.int'”), dan karenanya tidak dapat diterapkan ke aplikasi COVID-KAYA.
Bagaimana temuan COVID-KAYA terkait dengan isu-isu yang dilaporkan sebelumnya?
Kami sebelumnya melaporkan dua kerentanan keamanan dalam aplikasi COVID-KAYA
Kerentanan pertama yang kami identifikasi adalah API tidak terlindungi yang digunakan secara internal dalam aplikasi, yang menampilkan daftar lengkap pengguna aplikasi yang terdaftar, termasuk nama lengkap mereka dan informasi pribadi lainnya.
Kerentanan kedua yang kami temukan adalah kredensial administrator aplikasi dapat ditemukan di kode program. Penyerang yang menemukan kredensial ini dapat masuk ke dasbor administratif dan mengambil daftar pengguna aplikasi yang terdaftar, termasuk nama lengkap mereka.
Kedua kerentanan ini ditemukan dalam proses kami saat menganalisis aplikasi untuk memahami bagaimana aplikasi menggunakan izin di dalamnya. Kedua kerentanan tersebut menunjukkan kelalaian pengembang dalam melindungi data pengguna yang dikumpulkan. Semakin banyak izin yang digunakan, maka semakin banyak data yang dikumpulkan oleh aplikasi. Namun, semakin banyak data yang dikumpulkan oleh aplikasi, maka semakin besar kebocorannya ketika ada kerentanan, sehingga menyebabkan lebih banyak kerugian bagi pengguna.
Apa perbedaan antara izin dan izin berbahaya?
Izin memungkinkan aplikasi berinteraksi dengan perangkat keras atau melakukan fungsi tertentu, seperti dapat melihat informasi tentang jaringan WIFI di sekitar. Google mengkategorikan izin berbahaya sebagai izin yang “berpotensi mempengaruhi privasi pengguna atau operasi normal perangkat,” seperti akses ke galeri foto, kamera, lokasi, kontak, kalender, status ponsel, dan akses ke informasi sensitif pengguna lainnya. Izin yang berbahaya tidak selalu berbahaya, tetapi karena sensitivitas informasi yang dapat dikumpulkan, penggunaannya dapat meningkatkan atau memperbesar dampak kerentanan.
Apa perbedaan antara izin berbahaya dan kerentanan?
Kerentanan adalah kelemahan dalam sistem yang dapat dimanfaatkan oleh sumber ancaman. Izin berbahaya, meski tidak selalu berbahaya, dapat menimbulkan kerentanan, seperti yang terlihat dalam kasus StaySafe PH. StaySafe PH mengumpulkan data lokasi pengguna melalui aplikasi mereka, mengharuskannya untuk mendapatkan izin berbahaya, yaitu izin perangkat untuk mendapatkan lokasi yang tepat. Kami menemukan kerentanan dalam logika otorisasi database yang digunakan Stay Safe PH untuk menyimpan data lokasi pengguna, yang memungkinkan penyerang mengunduh data lokasi dari semua pengguna aplikasi tersebut. Kerentanan ini dimungkinkan karena penggunaan izin berbahaya tersebut. Jika StaySafe PH tidak mengumpulkan data lokasi pengguna (seperti banyak aplikasi pelacakan kontak lainnya), maka aplikasi mereka tidak akan memiliki kerentanan ini sejak awal.
Apa izin yang tidak digunakan?
Izin yang tidak digunakan adalah izin yang telah dinyatakan oleh aplikasi bahwa dapat diminta, tetapi tidak pernah diminta, atau yang diminta, tetapi tidak pernah digunakan. Misalnya, aplikasi dapat meminta izin untuk mengakses kamera, tetapi tidak pernah benar-benar menggunakan kamera untuk mengambil foto atau video. Dalam kasus seperti itu, izin kamera tidak digunakan. Meskipun izin yang tidak digunakan dengan sendirinya tidak menimbulkan risiko keamanan dan privasi yang serius, izin tersebut menghadirkan ancaman apabila aplikasi disusupi oleh penyerang, karena penyerang dengan kemampuan menjalankan kode dari jarak jauh juga akan mendapatkan izin yang tidak digunakan dalam aplikasi tersebut.
Apa yang dapat dilakukan pengembang aplikasi untuk melindungi pengguna aplikasi kesehatan masyarakat dengan lebih baik?
Satu hal yang dapat dilakukan pengembang aplikasi adalah mengikuti prinsip “minimisasi data,” di mana aplikasi atau alat “harus mengumpulkan informasi sesedikit mungkin” yang diperlukan untuk mencapai tujuannya. Hanya mengumpulkan informasi yang sangat relevan dapat membantu mengurangi risiko keamanan yang dihasilkan dari pengumpulan data besar bervolume tinggi.
Pengembang aplikasi juga dapat merujuk pada pedoman etika untuk aplikasi COVID-19 yang dirancang oleh organisasi / lembaga berikut: