Insecure Data Storage - Part 2
Unencrypted SQLite Database Storage Security Risk
Last updated
Was this helpful?
Unencrypted SQLite Database Storage Security Risk
Last updated
Was this helpful?
Aplikasi Android bisa menggunakan SQLite untuk menyimpan data secara lokal sebagai Relation Database Management System (RDBMS). Database tersebut biasanya berisi detail user, log transaksi, atau lainnya tergantung developer.
File database SQLite secara default disimpan di dalam direktori aplikasi sanbox, yaitu: /data/data/AppPackageName/databases/
. Bisa jadi developer menyimpan file tersebut di luar direktori databases, tetapi masih di dalam direktori .
Untuk mengidentifikasi file SQLite Anda harus mencari beberapa ekstensi umum seperti .sqlite
, .db
, atau terkadang tanpa ekstensi. Untuk memastikannya kita bisa menggunakan perintah pada shell.
Setelah menganalisa source code di atas, terlihat bahwa credentials yang diinputkan user disimpan secara lokal menggunakan database SQLite. File database ini diberi nama "ids2".
Masuk ke direktori databases, lalu jalankan perintah berikut untuk membaca file database SQLite:
Menyadari fakta-fakta di atas, terdapat beberapa rekomendasi yang bisa developer lakukan, diantaranya:
Tidak menyimpan informasi sensitif apa pun secara lokal.
Lakukan salting + hasing terlebih dahulu pada data sensitif sebelum disimpan.
Selalu gunakan autentikasi dalam pengaksesan database.
Bagian aplikasi yang akan kita bahas kali ini memiliki fitur untuk menyimpan credentials milik user. Dengan melakukan lalu menganalisis source code, kita akan mencari tahu bagaimana credentials tersebut disimpan.
Kita telah berhasil mengakses file database dan mendapatkan credentials milik user. Ini membuktikan bahwa aplikasi ini tidak menyimpan credentials dengan aman. Password disimpan secara plaintext, bahkan tidak adanya dalam mengakses file database SQLite.
Meskipun file database SQLite dilindungi oleh , namun ada beberapa catch yang bisa membatalkan mekanisme perlindungan tersebut seperti yang .
Selain itu, tidak ada pengamanan untuk file database SQLite seperti , sehingga kita bisa dengan mudah membuka database tersebut.
Menggunakan bisa menjadi pilihan untuk menyimpan kunci enkripsi dengan aman bahkan pada rooted device.