Android
Android
Android OS
Why:
Open source – have access to system code
All over the place – dominates smartphone market
Interesting security model
A PKI would probably hamper deployment
but apps must be signed by developers
Application does not install without a valid certificate
Principle of least privilege
Permission to do something must be explicity given
Defense in depth
OS kernel – iptables, selinux, sandboxing,
mandatory access control
Applications – secure message passing
Users – approval to release resources
Android OS
Android is a software stack for touchscreen mobile
devices, such as smartphones and tablet computers
Android Inc. was founded in 2003 to produce software
for mobile phones
A little later Google was searching for partners to
establish an improved secure/open platform for
smartphones
Google acquired Android Inc. in 2005; key personnel
continued development at Google on their OS
Google organized a group called Open Handset
Alliance (announced in November 2007)
Google, LG U+, Samsung, T-mobile, Sony, HTC …
http://www.edureka.in/blog/beginners-guide-android-architecture/
Android OS
http://www.edureka.in/blog/beginners-guide-android-architecture/
Android OS
http://www.edureka.in/blog/beginners-guide-android-architecture/
Android OS
Programming Model:
- Applications are written in Java but compiled to odex
- Native linux applications can be built and run
- Combined Java/C programs are possible with JNI
Android OS
Programming Model:
- Applications are written in Java but compiled to odex
- Native linux applications can be built and run
- Combined Java/C programs are possible with JNI
Android Applications:
- Apps are distributed in bundles as apk files
- These files are in effect zip files
- These files are self-contained (everything they need
to run is contained in the bundle)
Android OS
Components:
- Activity - a single screen UI to interact with an app
→ everything in a UI is part of an activity
→ the only component that is directly visible to the user
- Service – a function running in the background
→ other components may “bind” to it
- Broadcast Receiver – receive notification of events
→ must register to receive specific notifications
- Content Provider – manage access to structured data
→ connect data in one process with code running in
another process
→ encapsulate data
→ define data security
Android OS
Does not yet exist
Activity life cycle in memory
Not visible
In memory Visible on screen
(on the stack) Not in focus
Activity terminated
Removed from memory
Implicit Intent
http://qz.com/131436/contrary-to-what-youve-heard-android-is-almost-impenetrable-to-malware/
Android OS
Android platform security architecture summary:
- Linux level security
→ logging
→ process isolation via permissions and MAC
application sandboxing
- Native libraries
→ ssl encryption, authentication, integrity
→ application signing so that developer is
accountable for breaches
- Application framework
→ application defined, user granted permissions