Android Security for Enterprise App Developers Jon Preedy



Similar documents
Developing for MSI Android Devices

Windows 8 Backup, Restore & Recovery By John Allen

Windows 7 Hard Disk Recovery

Using Mac OS X 10.7 Filevault with Centrify DirectControl

Cautions When Using BitLocker Drive Encryption on PRIMERGY

Running a Program on an AVD

How to downgrade Samsung Galaxy Tab 2 back to original V4.1.1 Android OS

Super Manager User Manual. English v /06/15 Copyright by GPC

Instructions for Configuring Your Browser Settings and Online Security FAQ s. ios8 Settings for iphone and ipad app

ViPNet ThinClient 3.3. Quick Start

UP L18 Enhanced MDM and Updated Protection Hands-On Lab

Analysis of advanced issues in mobile security in android operating system

How to Install Applications (APK Files) on Your Android Phone

SysAid MDM User Guide for Android

SwannEye HD Security Camera Wi-Fi Connections Quick Setup Guide. Welcome! Lets get started.

Using your ios device, open the App Store, Search for, download and install the WeMo App.

ScoMIS Encryption Service

Reboot the ExtraHop System and Test Hardware with the Rescue USB Flash Drive

How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The

Samsung Drive Manager User Manual

IBM Rapid Restore PC powered by Xpoint - v2.02 (build 6015a)

Sharp Remote Device Manager (SRDM) Server Software Setup Guide

SAS-IPCAM115 MANUAL IP CAMERA

Sophos SafeGuard Native Device Encryption for Mac Administrator help. Product version: 7

Integrating Mac OS X 10.6 with Active Directory. 1 April 2010

Hosting Users Guide 2011

Frequently Asked Questions

VMware/Hyper-V Backup Plug-in User Guide

TSM for Windows Installation Instructions: Download the latest TSM Client Using the following link:

HP ProtectTools Embedded Security Guide

ReadyNAS OS 6 Desktop Storage Systems

4 Backing Up and Restoring System Software

Administrator User Instructions- Master PIN Usage

Android Security. Device Management and Security. by Stephan Linzner & Benjamin Reimold

ReadyNAS OS 6.1 Software Manual

GO!Enterprise MDM Device Application User Guide Installation and Configuration for BlackBerry

Mobile Pay. for Android TM. *Android Version 4.0 or higher required

Android Programming and Security

Lab 2-2: Exploring Threads

Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

Using GIGABYTE Notebook for the First Time

Acer erecovery Management

Office of Information Technology Connecting to Microsoft Exchange User Guide

Operating Systems: Microsoft Windows XP, Windows Vista or Windows 7 RAM: 2GB

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android with TouchDown

Remote Desktop Services User's Guide

GO!Enterprise MDM Device Application User Guide Installation and Configuration for Android

Seagate Manager. User Guide. For Use With Your FreeAgent TM Drive. Seagate Manager User Guide for Use With Your FreeAgent Drive 1

Operating Instructions - Recovery, Backup and Troubleshooting Guide

MANUAL IP Baby and Child Monitor

CTERA Agent for Mac OS-X

Comodo Disk Encryption

How To Install An Aneka Cloud On A Windows 7 Computer (For Free)

GCM for Android Setup Guide

Automation Engine AE Server management

Salesforce-Wrike Integration Setup Manual

IceWarp to IceWarp Server Migration

Offsite Control - Android Quick Start Guide

NHSmail mobile configuration guide Android mobile devices

FileMaker Server 15. Getting Started Guide

Silk Test Testing Mobile Applications

How to enable Disk Encryption on a laptop

Using GIGABYTE Notebook for the First Time

1. Product Information

Online Backup Client User Manual Linux

ios Security Decoded Dave Test Classroom and Lab Computing Penn State ITS Feedback -

Kingston KC300 Security Toolbox

Apple Server Diagnostics User Guide. For Version 3X106

Android Environment SDK

VPN: Virtual Private Network Setup Instructions

Acer erecovery Management

Using GIGABYTE Notebook for the First Time

User Guide Vodafone Pocket WiFi Pro. Designed by Vodafone

User Manual. Copyright Rogev LTD

Image Backup and Recovery Procedures

Junos Pulse for Google Android

Using GIGABYTE Notebook for the First Time

Recover Data Like a Forensics Expert Using an Ubuntu Live CD

Xythos on Demand Quick Start Guide For Xythos Drive

Hi-Speed USB Flash Disk User s Manual Guide

Frequently Asked Questions & Answers: Bring Your Own Device (BYOD) Policy

2.6.1 Creating an Acronis account Subscription to Acronis Cloud Creating bootable rescue media... 12

Installing Windows XP Professional

To use your Brother machine in an ad hoc network, complete the steps listed below:

NetSuite OpenAir Mobile for Android User Guide Version 1.3

Last modified: November 22, 2013 This manual was updated for the TeamDrive Android client version

RecoveryVault Express Client User Manual

Overview. Timeline Cloud Features and Technology

Hardware Information Managing your server, adapters, and devices ESCALA POWER5 REFERENCE 86 A1 00EW 00

QUANTIFY INSTALLATION GUIDE

Thank you for choosing Huwei E589 4G Mobile WiFi

User Manual. Onsight Management Suite Version 5.1. Another Innovation by Librestream

Introduction to the MISD Web FTP Client

NovaBACKUP. Storage Server. NovaStor / May 2011

Colorfly Tablet Upgrade Guide

How to Back Up and Restore an ACT! Database Answer ID 19211

SeaSmart Firmware Update via FTP

1. Scope of Service. 1.1 About Boxcryptor Classic

Transcription:

Android Security for Enterprise App Developers Jon Preedy Sr. Sales Engineer

Agenda for Lightning Talk Developer View Android Security Model Security and Enterprise-Scale Device Configuration Encryption Options for Data-at-Rest Enterprise Reset: Return to Known Good State

Application Sandboxing Sandbox Setup (at install time) As each new App is installed from an APK it gets assigned a new, automatically generated UID and a folder is created in /data, the files from the APK are unpacked there. This folder is Owned by that UID With closed file permissions So only processes owned by the application s UID can access files in the application s private folder in /data

Sandboxing Continued Launching an App in a Sandbox The master Dalvik process, zygote *, creates a new Dalvik Instance in a new Process.. Loads the app into the DVM within the new Process, and Sets the Owner of the Process to the UID associated with the App Note: this is a fast, efficient process. Read more at: http://coltf.blogspot.com/p/android/adroind-os-processes-and-zygote So now the App is running as a process owned by it s own UID, so it (and only it) has complete access within it s private folder! * - from biology: the first cell of a multi-celled animal

Sandbox = Isolation Bottom line whenever it runs, each App gets An inviolate memory space for execution Access to its own, inviolate storage area for files and folders Access to public storage, like /scard and /enterprise/usr This protection / isolation is provided by the Linux Kernel and File Sytem Memory isolation is provided by the Process boundary, not the Virtual Machine boundary File storage isolation is provided by file permissions and ownership, which must match the process owner.

the Android Permissions System NOT Linux/Unix unique to Android Google defines permissions in groups the groups are evolving Developers can create their own custom permissions groups (and we do) When an app is installed by a user, Android lists all the permissions groups it is requesting. it s grant all or don t install * * changing

Permissions Introduction Apps can only communicate via Components Any component can be assigned a permission label Others will need that permission to access this component Same for certain OS components and API calls to them (Phone, WLAN ) Each application explicitly requests permissions via manifest Cannot be changed after install Allows very granular control Only some of it exposed to user List of all Android permissions: http://developer.android.com/reference/android/manifest.pe rmission.html New custom permissions can be defined. Potential for Enterprise use (software suites, management)

List of Permissions Permissions defined on a device will depend on.. Version of Android Apps Installed Let s look at a listing from an empty MC40, output by adb shell pm list permissions g

Levels of Permissions Permissions must belong to one of the Protection Levels Normal (default) Lower-risk permission that gives requesting applications access to isolated application-level features, with minimal risk to other applications, the system, or the user. Granted automatically w/o explicit user's approval (still displayed during installation, of course). Dangerous (introduces potential risk) A higher-risk permission that would give a requesting application access to private user data or control over the device that can negatively impact the user. Not granted automatically. Will require some form of user consent (popup dialog, etc). Signature Granted only if the requesting application is signed with the same certificate as the application that declared the permission. Then granted automatically. Useful for software suites (several apps from the same developer working together). SignatureOrSystem As before, but also allow access to apps that are part of the system image Many OS APIs are protected with this reason for MDM not working unless agent is part of the firmware (or MDM certificate is part of firmware) ADB shell: pm list permissions -f display permissions with full information pm list permissions -g display permissions in groups :0)

Android Security and Enterprise Device Configuration

The Settings App OK for One Device, but.. There is a Settings app, for configuring the device but.. and it does not lend itself to manual, identical configuration of multiple devices It allows the end user too much control over settings for enterprise deployments It does not allow configuration of Zebra Value Add features Settings made with the Settings App do NOT persist over Enterprise Reset Your app may need certain Settings in order to work well or your customer may ask for some tweaks to device behavior Your app(s) may be unable to get the permission needed

Controlled Access to Settings Access to Settings is Controlled by Android Permissions Some settings, an ordinary app can reach, it it asks for and is granted WRITE_SETTINGS For some settings, permission is only granted to Privileged Applications (aka signed or system apps) that ask for WRITE_SECURE_SETTINGS Then of course, if you want to be able to return a unit to a known good condition, those apps must persist across an Enterprise Reset, and Must persist their data reapply the settings after Enterprise Reset

Remember This? Permissions must belong to one of the Protection Levels Normal (default) Lower-risk permission that gives requesting applications access to isolated application-level features, with minimal risk to other applications, the system, or the user. Granted automatically w/o explicit user's approval (still displayed during installation, of course). Dangerous (introduces potential risk) A higher-risk permission that would give a requesting application access to private user data or control over the device that can negatively impact the user. Not granted automatically. Will require some form of user consent (popup dialog, etc). Signature Granted only if the requesting application is signed with the same certificate as the application that declared the permission. Then granted automatically. Useful for software suites (several apps from the same developer working together). SignatureOrSystem As before, but also allow access to apps that are part of the system image Many OS APIs are protected with this reason for MDM not working unless agent is part of the firmware (or MDM certificate is part of firmware)

Application Access to Device Settings

Data at Rest Encryption Options

Encryption Options Encryption How does it work? What does it protect against it? Is it worth the trouble? Three kinds Full Device Encryption (only encrypts /data) External Storage Encryption (only encrypt /sdcard) Folder Level Encryption (one or more folders)

Encrypt Full Device Well not full device, really only encrypts /data Requires entry of passcode on bootup to unlock. Key stored in system (needs passcode on boot) Protects /data until passode is entered After that, transparent access for any running app.. Like it s not even there!! No protection against any process running on the machine So what does it protect against? Forensic analysis of device chips Process that might run before /data is unlocked.

Encrypt External Storage External Storage Volumes only Reformat from FAT32 to IM-CRYPT Key not stored on card Automatically reconnected (opened) on boot After that, transparent access for any running app.. Like it s not even there!! No protection against any process running on the machine If you move the SD card to another device Secure File System Must know that password

Encrypt Folder(s) - Zebra MX Feature Choose folder(s) to encrypt with named passcodes Internal or External storage Transparent, normal access when open Opened at boot with no user interaction, if passcode is available.. But.. Using MX an admin can revoke a passcode blocks any access by any internal application Protects folders against forensic analysis and on removable drives Data stays on device, but encrypted (no key on device) And later restore a passcode for one or more folders Restores no-hassle access again - no need to reload data

Encryption & Recovery Mode yes, you CAN have too much encryption Can Recovery Mode Read.zip from /data/tmp.. and write to system partitions.. if Full Device Encryption is enabled? Read.zip from /sdcard.. and write to system partitions.. if External Storage Encryption is enabled? Read.zip from /sdcard.. and write to system partitions.. if Folder Level Encryption is enabled on one or more folders on the sdcard? If you encrypt both full device and all external storage.. There will be no place to put a.zip file that can be used in Recovery mode so no possibility of remote OS update. Using MX folder level encryption may provide enough encryption and still leave space for OS update zips.

Encryption Summary - 3 kinds of Encryption Full Device Encryption (only encrypts /data) High cost (enter passode, no zips in /data/tmp), limited protection External Storage Encryption (only encrypt /sdcard) Medium cost (no zips on sdcard), protects storage when removed Folder Level Encryption (one or more folders) -- Zebra MX feature Low cost, protects the parts you want to protect, switch access on and off Internal Storage revocation provides the only protection against internal attack External storage also protects when removed Folder encryption protects against forensic analysis when revoked, and protects folders on removable external storage volume

Enterprise Reset: Return to Known Good State

Enterprise Reset the Concept Cold boot in Windows CE and Clean Boot in WM were what we now call.. Enterprise Resets Return unit to known good state, Possibly at the expense of losing some app data Apps CAN but don t have to store their data in a persistent location The idea being, of course.. Delete any changes made since original setup to apps or settings Exception for properly persisted data Restart Clean Restart empty and put back what you put in, in the first place But in CE / WM, any process could modify \Application Add apps or.reg files that would persist over Clean/Cold boot Remove apps or.reg files that should persist Copy anything (like WLAN settings in.reg files)

Enterprise Reset in Android So what happens at Enterprise Reset? /data is cleared all applications and their sandboxes are GONE All the UID s that were created by installing APKs are GONE All Settings revert to Factory Defaults External storage volumes are are not affected unless emulated from /data File and folders under /enterprise/usr are still there, data intact so as long as they were written with permissions wide open as recommended they can be still be accessed by your app after it s UID has changed.. because As device boots up from Enterprise Reset Properly persisted SETTINGS are re-applied. Properly persisted APKs are re-installed Each gets a NEW UID assigned and a NEW private folder created in /data, belonging to the new UID Each new app may need to access data it stored previously in /enterprise/usr

Programming for Enterprise Reset Persistence Protect any files which may lose content if your app is re-installed Identify which files that need to persist over the ER Have your app put them in a location that will persist over ER (put then in a subfolder of /enterprise/usr) Be sure you will be able to regain access when your Linux UserID has changed ( always set permissions to 777) Be sure your app will not write over them on install or first run. Use EMDK and MX Persist Manager to restore your app Add yourself to the list of applications that will be re-installed after an Enterprise Reset If your app needs to be always-running, add yourself to list of apps to be launched automatically. https://developer.motorolasolutions.com/docs/doc-2660

Questions?

THANK YOU