Android Security for Enterprise App Developers Larry Dykes Mgr, Global Technical Enablement.

Slides:



Advertisements
Similar presentations
Working with Disks and Devices
Advertisements

Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as booting or.
Section 3.2: Operating Systems Security
1 Chapter Overview Understanding and Applying NTFS Permissions Assigning NTFS Permissions and Special Permissions Solving Permissions Problems.
1 Chapter Overview Understanding NTFS Permissions Assigning NTFS Permissions Assigning Special Permissions.
Chapter 9 Chapter 9: Managing Groups, Folders, Files, and Object Security.
Configuring Windows Vista Security Chapter 3. IE7 Pop-up Blocker Pop-up Blocker prevents annoying and sometimes unsafe pop-ups from web sites Can block.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 5: Managing File Access.
MIS Chapter 51 Chapter 5 – Managing File Access MIS 431 Created Spring 2006.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
70-270, MCSE/MCSA Guide to Installing and Managing Microsoft Windows XP Professional and Windows Server 2003 Chapter Nine Managing File System Access.
Lesson 18: Configuring Application Restriction Policies
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Installing software on personal computer
1 Securing Network Resources Understanding NTFS Permissions Assigning NTFS Permissions Assigning Special Permissions Copying and Moving Files and Folders.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Source XP vs Windows 7 XPWin 7.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
1 Chapter Overview Managing Data Storage Creating Dynamic Disks Implementing Storage Quotas Managing Compression and Encryption.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 14: Problem Recovery.
Installing and Troubleshooting Hardware Device and Drivers Chapter 6 powered by dj.
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
NTFS. Authentication Is the person who she says she is? If so, access is allowed In Windows, authentication is handled by a password-protected user account.
Chapter Three OPERATING SYSTEMS.
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
Hands-On Microsoft Windows Server 2008
Module 13: Configuring Availability of Network Resources and Content.
Byron Alleman Will Galloway Jesse McCall. Permission Based Security Model Users can only use features for which their permissions grant them access Abstracts.
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
1 Group Account Administration Introduction to Groups Planning a Group Strategy Creating Groups Understanding Default Groups Groups for Administrators.
Week #7 Objectives: Secure Windows 7 Desktop
Operating Systems  A collection of programs that  Coordinates computer usage among users  Manages computer resources  Handle Common Tasks.
Home Media Network Hard Drive Training for Update to 2.0 By Erik Collett Revised for Firmware Update.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 5: Managing File Access.
© 2012 The McGraw-Hill Companies, Inc. All rights reserved. 1 Third Edition Chapter 5 Windows XP Professional McGraw-Hill.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Chapter 9: SHARING FILE SYSTEM RESOURCES1 CHAPTER OVERVIEW  Create and manage file system shares and work with share permissions.  Use NTFS file system.
Chapter 3.2: Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as.
Android Security Auditing Slides and projects at samsclass.info.
Module 3 Configuring File Access and Printers on Windows ® 7 Clients.
Configuring Data Protection Chapter 12 powered by dj.
Module 15 Managing Windows Server® 2008 Backup and Restore.
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
Module 3 Configuring File Access and Printers on Windows 7 Clients.
Operating Systems Security 1. The Boot Sequence The action of loading an operating system into memory from a powered-off state is known as booting or.
Module 3: Configuring File Access and Printers on Windows 7 Clients
IT1001 – Personal Computer Hardware & system Operations Week7- Introduction to backup & restore tools Introduction to user account with access rights.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
1 Introduction to NTFS Permissions Assign NTFS permissions to specify Which users and groups can gain access to folders and files What they can do with.
Lesson 18: Configuring Security for Mobile Devices MOAC : Configuring Windows 8.1.
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
Automating Installations by Using the Microsoft Windows 2000 Setup Manager Create setup scripts simply and easily. Create and modify answer files and UDFs.
By: Collin Molnar. Overview  Intro to Android  Security basics  Android architecture  Application isolation  Application permissions  Physical access.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
Windows Vista Configuration MCTS : NTFS Security Features and File Sharing.
11 SUPPORTING WINDOWS XP FILE AND FOLDER ACCESS Chapter 5.
Introduction to NTFS Permissions
TurnKey Lunch and Learn: ALM/UFT Best Practices
Booting Up 15-Nov-18 boot.ppt.
Mumtaz Ali Rajput +92 – INFORMATION SECURITY – WEEK 5 Mumtaz Ali Rajput +92 – 301-
Presentation transcript:

Android Security for Enterprise App Developers Larry Dykes Mgr, Global Technical Enablement

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: 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 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: rmission.htmlhttp://developer.android.com/reference/android/Manifest.pe rmission.html New custom permissions can be defined. Potential for Enterprise use (software suites, management) Introduction

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 “Know 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.

Questions?

THANK YOU