android
play

Android Oren Laadan orenl@cellrox.com Android Builders 2014 - PowerPoint PPT Presentation

Multi-Persona Android Oren Laadan orenl@cellrox.com Android Builders 2014 www.cellrox.com aprilzosia Mobile devices have multiple uses - - the device needs to reflect that. 2 Android Builders 2014 Security Use Case Personal Phone


  1. Multi-Persona Android Oren Laadan orenl@cellrox.com Android Builders 2014 www.cellrox.com aprilzosia

  2. Mobile devices have multiple uses - - the device needs to reflect that. 2 Android Builders 2014

  3. Security Use Case Personal Phone Business Phone 3 Android Builders 2014

  4. Do People Remember? • Only download apps from trusted sources, such as reputable app markets. Remember to look at the developer name, reviews, and star ratings. • Always check the permissions an app requests. Use common sense to ensure that the permissions an app requests match the features the app provides. • Be alert for unusual behavior on your phone. Suspicious behavior could be a sign that your phone is infected. These behaviors may include unusual SMS or network activity. • Install a mobile security app for your phone that scans every app you download to ensure it’s safe. 4 Android Builders 2014

  5. No, They Don’t! • Only download apps from trusted sources, such as reputable app markets. Remember to look at the developer name, reviews, and star ratings. • Always check the permissions an app requests. Use common sense to ensure that the permissions an app requests match the features the app provides. • Be alert for unusual behavior on your phone. Suspicious behavior could be a sign that your phone is infected. These behaviors may include unusual SMS or network activity. • Install a mobile security app for your phone that scans every app you download to ensure it’s safe. 5 Android Builders 2014

  6. More Use Cases Personal Phone Business Phone Children Phone Privacy Phone Secure Phone 6 Android Builders 2014

  7. Even More Use Cases Personal Phone Business Phone Children Phone Privacy Phone Secure Phone Social Phone Guest Phone Dev Phone 7 Android Builders 2014

  8. Multi-Persona for Mobile Devices 8 Android Builders 2014

  9. Mobile Device Virtualization Typical device Typical device Android Android applications applications Android Android environment environment Linux Linux kernel kernel Device Device hardware hardware 9 Android Builders 2014

  10. Nobody Will Notice? Performance Transparent Application Transparent Platform Transparent User Transparent 10 Android Builders 2014

  11. Hardware Virtualization Virtual Phone Virtual Phone Typical device Android Android Android applications applications applications Android Android Android environment environment environment Linux Linux Linux kernel kernel kernel Hypervisor Type I Device Device hardware hardware 11 Android Builders 2014

  12. Hardware Virtualization Suitable for servers • standard hardware • slow server replace rate • strong security model Sub-optimal for mobile devices • burden to support devices • reduced performance / battery-life • sub-optimal use of resources 12 Android Builders 2014

  13. Operating System Virtualization Namespaces provide a group of processes with the illusion that they are the only processes on the system. 19 Android Builders 2014

  14. Namespace (r)evolution Kernel namespaces: • mount-ns: 2.4.19 • uts-ns: 2.6.19 • ipc-ns: 2.6.19 • pid-ns: 2.6.24 • net-ns: 2.6.24-2.6.29 • user-ns: 2.6.23-3.8 System calls: clone(), unshare(), setns() 20 Android Builders 2014

  15. Operating System Virtualization Virtual Phone Virtual Phone Typical device Android Android Android applications applications applications Android Android Android environment environment environment Namespaces Linux Linux kernel kernel Device Device hardware hardware 21 Android Builders 2014

  16. Device Diversity A typical collection of peripherals available on a modern smartphone or tablet: Headset Microphone Speakers (Touch) Screen Power Buttons Telephony Bluetooth GPS WiFi Framebuffer GPU Compass Camera(s) Accelerometer RTC/Alarms 22 Android Builders 2014

  17. Device Interactivity Users interact with a device one application at a time, expect consistent user experience: Split the “attention” of resources between the multiple persona, depending on context. 23 Android Builders 2014

  18. Android applications Android environment Framebuf Linux kernel Device hardware 24 Android Builders 2014

  19. Android Android applications applications Android Android environment environment Framebuf Linux kernel Device hardware 25 Android Builders 2014

  20. Android applications Android environment Framebuf Linux Input kernel Device hardware 26 Android Builders 2014

  21. Android Android applications applications Android Android environment environment Framebuf Linux Input kernel Device hardware 27 Android Builders 2014

  22. Android Android applications applications Android Android environment environment Device Namespace Framebuf Linux Input kernel Device hardware 28 Android Builders 2014

  23. Android Android applications applications Android Android environment environment Device Namespace Framebuf Proximty Linux Touch Input kernel Device hardware 29 Android Builders 2014

  24. Android Android applications applications Android Android environment environment Device Namespace Framebuf Proximty Buttons Linux Touch Input GPS LED kernel Device hardware 30 Android Builders 2014

  25. Mobile Virtualization Challenges Challenge 1: device diversity • plethora of peripherals not virtualized • key logical devices not virtualized  virtualize physical & logical devices 32 Android Builders 2014

  26. Mobile Virtualization Challenges Challenge 1: device diversity • plethora of peripherals not virtualized • key logical devices not virtualized  virtualize physical & logical devices Challenge 2: interactive usage • users interact with one app at a time • foreground vs. background apps  multiplex access based on context 34 Android Builders 2014

  27. Device Namespaces Device diversity: traditional virtualization • create the illusion that processes interact exclusively with a set of devices • hide the fact that other processes interact with the same set of devices • Device major/minor (e.g. loop, dm), and device setup and internal state 35 Android Builders 2014

  28. “Traditional” virtualization Examples: • alarm-dev • binder • logger • wakelocks • … 36 Android Builders 2014

  29. “Traditional” virtualization Typical driver: Virtualized driver? - global driver state - per open fd state - open() is special - read/write/ioctl etc use per open fd state (and global state) 37 Android Builders 2014

  30. “Traditional” virtualization Typical driver: Virtualized driver: - global driver state  - per-devns state - per open fd state - open() is special - read/write/ioctl etc use per open fd state (and global state) 38 Android Builders 2014

  31. “Traditional” virtualization Typical driver: Virtualized driver: - global driver state  - per-devns state - per open fd state  - per open fd state points to per-devns state - open() is special - read/write/ioctl etc use per open fd state (and global state) 39 Android Builders 2014

  32. “Traditional” virtualization Typical driver: Virtualized driver: - global driver state  - per-devns state - per open fd state  - per open fd state points to per-devns state - open() is special  - obtain per-devns state and perform in context - read/write/ioctl etc use per open fd state (and global state) 40 Android Builders 2014

  33. “Traditional” virtualization Typical driver: Virtualized driver: - global driver state  - per-devns state - per open fd state  - per open fd state points to per-devns state - open() is special  - obtain per-devns state and perform in context - read/write/ioctl etc  - read/write/ioctl etc use per open fd state use per open fd state (and global state) and per-devns state (and global state) 41 Android Builders 2014

  34. “Traditional” virtualization A peek at the code: • alarm-dev • binder • … 42 Android Builders 2014

  35. Device Namespaces Interactivity: context-aware virtualization • concept of an active namespace, with which the user actually interacts • ability to switch namespaces, to allow interacting with multi-namespaces • users really interact with one namespace at a time 43 Android Builders 2014

  36. Device Namespaces Android Android applications applications Android Android environment environment (Device) Namespaces Framebuf Proximty Buttons Touch Linux Input GPS LED kernel Device hardware 44 Android Builders 2014

  37. Framebuffer ? VP VP VP Android Android Android applications applications applications Android Android Android environment environment environment Framebuffer Linux kernel 45 Android Builders 2014

  38. Framebuffer: device namespaces Foreground Background Background Android Android Android applications applications applications Android Android Android environment environment environment Virtualized Framebuffer RAM Framebuffer Linux kernel 47 Android Builders 2014

  39. Framebuffer: device namespaces Foreground Background Background Android Android Android applications applications applications Android Android Android environment environment environment Virtualized Framebuffer RAM Framebuffer Linux kernel 48 Android Builders 2014

Recommend


More recommend