Perform Extra Validation on Code Loaded from External Storage
The external storage can be removed (on most devices) and the data changed. Take extra care when loading code that will be executed or interpreted . In particular, avoid storing executables and class...
View ArticleAvoid Buffer Overflow When Using the NDK
The architecture of Java is such that it is immune to buffer overflow problems. However, c/c++ written using the NDK can be vulnerable. Buffer overflow is the starting point of many c/c++...
View ArticleProtect Your Signing Keys
Protect the keys you use to sign apps. The signing key allows people to release or upgrade an app under your identity. Don’t store the signing certificate under source control (e.g. GitHub). GitHub has...
View ArticleYou Can’t Get Security By Obscurity
Something isn’t secure just because you have made it more difficult to access. Additionally, you need to make it mathematically impossible to access. Examples of things Android developers might...
View ArticleTake Care With Broadcast Intents
Using an implicit intent can leak sensitive information to malicious apps or result in denial of service. Reference CERT: Do not broadcast sensitive information using an implicit intent
View ArticleUse Dynamic and Static Analysis
Use dynamic and static code analysis for apps, for example payment and banking, that really must be secure. Static analysis involves using tools to search the source code for patterns that signify...
View ArticlePrevent Tap Jacking
It’s possible for malicious apps to overlay a view on top of your app and fool users into revealing sensitive credentials. Use View setFilterTouchesWhenObscured set to true in views that might be prone...
View ArticleEncrypt Sensitive Data Sent via Binder
Once malware has gained (root) access to a device, it’s possible for it to listen in on IPC to do things such as key logging, location tracking, intercepting SMS and even inter-Activity data...
View ArticleUse the Android NDK for Security Sensitive Code
For code that needs to be ultra-secure consider using the the Android NDK to write sensitive parts in c/c++ which is much more difficult to decompile, especially when you use gcc with maximum...
View ArticleIncorporate Tamper Detection
Apps that need to be ultra-secure should include tamper detection. No matter how well you encrypt data, that data will will eventually appear unencrypted in memory (You can also arrange to keep...
View Article
More Pages to Explore .....