Testing Storage For Sensitive Data
Testing Storage For Sensitive Data
SENSITIVE DATA
Identify development files, backup files, and old files that shouldn't be included with a production
release.
Determine whether SQLite databases are available and whether they contain sensitive information.
SQLite databases are stored in /data/data/<package-name>/databases.
Identify if SQLite databases are encrypted. If so, determine how the database password is generated
and stored and if this is sufficiently protected as described in the "Storing a Key" section of the
Keystore overview.
Check Shared Preferences that are stored as XML files (in /data/data/<package-name>/shared_prefs)
for sensitive information. Shared Preferences are insecure and unencrypted by default. We have
enforce the use of secure-preferences to encrypt the values stored in Shared Preferences.
Check the permissions of the files in /data/data/<package-name>. Only the user and group created
when you installed the app (e.g., u0_a82) should have user read, write, and execute permissions
(rwx). Other users should not have permission to access files, but they may have execute
permissions for directories.
TESTING LOGS FOR SENSITIVE
DATA
android.util.Log
Logger
System.out.print | System.err.print
logfile
logging
logs
Target app specific logs using
ADB