Interprocess Communication
“In the Android platform, the binder is used for nearly
everything that happens across processes in the core platform."
– Dianne Hackborn
Interprocess Communication
- Intents
- Content Providers
- Messenger
- System services (Telephone, Vibrator, Wifi,
Battery, Notification, etc.)
- Lifecycle callbacks in your Activity like
onStart(),onResume(), onDestroy() are invoked
by ActivityManagerServer via binders
Risks
- Insecure Data Storage
- Weak Server Side Controls
- Insufficient Transport Layer Protection
- Client Side Injection
- Poor Authorization and Authentication
- Security Decisions Via Untrusted Inputs
- Broken Cryptography
Thing to remember
1. Never trust any input (use whitelists not blacklists)
1. Store data securely
4. Use HTTPS with certificate pinning
5. Use Cryptography
6. Don't write your own crypto
2. Make code obfuscation
7. Audit third-party code and services that you use
3. Avoid excessive logging
8. Perform security code review
Plan for security from the start - it's not something
you can bolt on at the end
Interprocess Communication
“In the Android platform, the binder is used for nearly
everything that happens across processes in the core platform."
– Dianne Hackborn
Interprocess Communication
- Intents
- Content Providers
- Messenger
- System services (Telephone, Vibrator, Wifi,
Battery, Notification, etc.)
- Lifecycle callbacks in your Activity like
onStart(),onResume(), onDestroy() are invoked
by ActivityManagerServer via binders
Thing to remember
1. Never trust any input (use whitelists not blacklists)
1. Store data securely
4. Use HTTPS with certificate pinning
5. Use Cryptography
6. Don't write your own crypto
2. Make code obfuscation
7. Audit third-party code and services that you use
3. Avoid excessive logging
8. Perform security code review
Plan for security from the start - it's not something
you can bolt on at the end