Android Security. N-Degree of Separation Applications can be thought as composed by Main Functionality Several Non-functional Concerns Security is a non-functional.

Slides:



Advertisements
Similar presentations
Syracuse University, New York, USA
Advertisements

Presented By Abhishek Singh Computer Science Department Kent state University WILLIAM ENCK, MACHIGAR ONGTANG, AND PATRICK MCDANIEL.
Machigar Ongtang, Stephen McLaughlin, William Enck, Patrick McDaniel Department of Computer Science and Engineering The Pennsylvania State University ACSCA.
Building and Deploying Safe and Secure Android Apps for Enterprise Presented by Technology Consulting Group at Endeavour Software Technologies.
Android Permission System
Android 101 Application Fundamentals January 29, 2010.
Security Management IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Security Management IACT 418/918 Autumn 2005 Gene Awyzio SITACS University of Wollongong.
Security of Mobile Applications Vitaly Shmatikov CS 6431.
ADVANCED LINUX SECURITY. Abstract : Using mandatory access control greatly increases the security of an operating system. SELinux, which is an implementation.
Android Security Enforcement and Refinement. Android Applications --- Example Example of location-sensitive social networking application for mobile phones.
William Enck, Machigar Ongtang, and Patrick McDaniel.
Android Security Architecture
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
박 종 혁 컴퓨터 보안 및 운영체제 연구실 MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications,
Introduction to Android Swapnil Pathak Advanced Malware Analysis Training Series.
Detecting and Preventing Privilege- Escalation on Android Jiaojiao Fu 1.
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 연구실 김낙영
Lecture 8 Inheritance Richard Gesick. 2 OBJECTIVES How inheritance promotes software reusability. The concepts of base classes and derived classes. To.
Software Architecture of Android Yaodong Bi, Ph.D. Department of Computing Sciences University of Scranton.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Erika Chin Adrienne Porter Felt Kate Greenwood David Wagner University of California Berkeley MobiSys 2011.
CS378 - Mobile Computing Intents.
Developing Security Mobile Applications for Android Presenter, Joel Elixson Author, Jesse Burns of iSEC Partners.
Developing Secure Mobile Applications for Android CS 595 James Zachary Howland.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
COMP 365 Android Development.  Every android application has a manifest file called AndroidManifest.xml  Found in the Project folder  Contains critical.
Telephony and sms API’S. Objective Telephony ➤ Initiating phone calls ➤ Reading the phone, network, data connectivity, and SIM states ➤ Monitoring changes.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
Android Security Extensions. Android Security Model Main objective is simplicity Users should not be bothered Does the user care? Most do not care…until.
Legion - A Grid OS. Object Model Everything is object Core objects - processing resource– host object - stable storage - vault object - definition of.
Mobile Application Security on Android Originally presented by Jesse Burns at Black Hat
Operating Systems Security
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
Wireless and Mobile Security
Android Permissions Demystified
Multimedia Capture & storage. Introduction A rich set of API for recording of audio & video. A developer has two choices  launch the built-in app using.
Dilip Dwarakanath.  The topic I’m about to present was taken from a paper titled “Apple iOS 4 Security Evaluation” written by Dino A Dai Zovi.  Dino.
Cosc 4735 Primer: Marshmallow Changes and new APIs in android 6.0 (api 23)
NTHU CS ISLAB 國立清華大學 資訊工程研究所 資訊安全實驗室 Semantically Rich Application- Centric Security in Android Machigar Ongtang, Stephen McLaughlin, William Enck and.
Access Controls Mandatory Access Control by Sean Dalton December 5 th 2008.
DeepDroid Dynamically Enforcing Enterprise Policy Manwoong (Andy) Choi
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
Android and IOS Permissions Why are they here and what do they want from me?
What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protection of Android External Resources Literature by S. Demetriou et al. Presented.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
ANDROID ACCESS CONTROL Presented by: Justin Williams Masters of Computer Science Candidate.
SE Linux Implementation Russell Coker. What is SE Linux? A system for Mandatory Access Control (MAC) based on the Linux Security Modules (LSM) framework.
Containers as a Service with Docker to Extend an Open Platform
Android Application -Architecture.
More Security and Programming Language Work on SmartPhones
Reactive Android Development
Mobile Applications (Android Programming)
Android Mobile Application Development
Free for All! Assessing User Data Exposure to Advertising Libraries on Android Campbell Foskin.
Understanding Android Security
Android Access Control
Android System Security
Android Runtime – Dalvik VM
AUDACIOUS: USER DRIVEN ACCESS CONTROL WITH UNMODIFIED OPERATING SYSTEM
Security.
Chapter 29: Program Security
Understanding Android Security
Android Developer Fundamentals V2 Lesson 5
Access Control What’s New?
Android Access Control
Presentation transcript:

Android Security

N-Degree of Separation Applications can be thought as composed by Main Functionality Several Non-functional Concerns Security is a non-functional concern Moreover Security a cross-cutting concern

Specification Vs. Enforcement Security can affect several parts of application code However it is the enforcement that needs to be spread over the application code Specification of security policies can be done in more concise and precise way

Android Security Specification Android allows app developers to specify the security needs of their apps Each app comes with a Manifest file Where the required permissions are listed Assigning permission labels to an application specifies its protection domain Assigning permissions to components in an application specifies an access policy to its resources The user of the device has only two choices Either install the app granting the whole set of permissions Or not install the app All-or-nothing model!

Android Permission Levels Android provides a set of well-defined permissions Normal Permissions are assigned by default to apps Dangerous Permissions require user confirmation Signature Permissions are granted to apps signed by the same developer System or Signature Permissions are granted only to special apps installed in the data/system folder (i.e. apps signed by Google)

Permission example An app that wants to listen for incoming SMS has to declare in its manifest: <uses-permission android:name=android.permission.RECEIVE_SMS"/> The RECEIVE_SMS is consider a dangerous permission and the apps have to request it

Android Security Enforcement Android supports a security model that is enforced by two layers: Linux and Android middleware Linux enforces the DAC model Android middleware enforces a MAC model

Linux DAC in Android When an app is installed it gets a unique UID and GID Each app gets a home dir /data/data/ / The UID and GID of the app get full access to its home dir and the files it contains rwx,rwx,---

Linux Special Groups Linux also maintains special groups for the Internet, External Storage, and Bluetooth If an app asks for accessing Internet it is assigned to the Internet Group Similarly for the other two groups/permissions

Android Middleware MAC The Android Middleware controls the way in which apps use the ICC mechanism Each protected feature that is reachable through the ICC mechanism is assigned a label When the app asks for a permission in its manifest the corresponding label is assigned to the app

Android MAC Model

Protection Domain S1 = Location Service P1 = LOCATION_PERMISSION

Assignment of Permissions Install Time: Uses Permission = P1?

Using the Permission

Reference Monitor

Security Confinement Once the labels are assigned neither the app nor the user can change them Apps cannot delegate their permissions However, components can expose interfaces to other apps This makes difficult in standard Android to control information flow (can lead to severe attacks)

Android Security Refinements Android Security Model allows developers to refine the security domain of their applications Through the standard mechanism using the Manifest Programmatically by using special parameters in the API This compromises the MAC scheme and pushes the security policy into the source code Making auditing security much, much, much harder!

Public vs Private Components By default any components that is not assigned a permission is public Any application can access any components not explicitly assigned access permissions Developers can declare a component private by setting the exported flag to false in the manifest file Private components can only be accessed by other components in the same app Android can also infer if a component is private by other declarations in the manifest file Do you trust it?

Implicitly Open Components Public components have all their interfaces accessible to any other components Developers must explicitly assign permission labels to protect those interfaces

Broadcast Intent Protection When an intent is broadcasted, all installed apps are able to listen to those events This mechanism can be exploited by malicious apps that are listening for a certain event to happen It is possible to protect the intent programmatically: sendBroadcast(intent, perm.MyPerm) This means that the Manifest does not provide a complete view of app security

Service Hooks Android only allows one permission label to restrict starting, stopping and binding to a service Does not support a fine-grained mechanism to protect the interface of a Service Once a component has the permission label to access a service, the component can start, stop, bind the service Again programmatically it is possible to refine this mechanism by doing some extra checking at the code level, putting security policies in the app code CheckPermission() method arbitrarily extends the reference monitor with a more restrictive policy Custom runtime security Not a good security and software engineering practice!

Delegation Pending Intents delegate to another app the parameters and time when an action is executed Location service notifies registered apps when location changes URI delegation allows an app to delegate to a component to perform an action on a resource The app provides a capability to the component for performing the action Per se, there is nothing wrong with delegation. However, it deviates from the main MAC model

Final Thoughts The Android security is based on two enforcement layers Linux DAC Android Middleware MAC Specification is done mainly through the Manifest file Main Drawbacks Specification can be done programmatically Source code injection Open default policy Developers have explicitly protect apps’ interfaces Delegation No support for information flow control

Resources Read: William Enck, Machigar Ongtang, and Patrick McDaniel. Understanding Android Security, IEEE Security and Privacy Magazine, 7(1):50--57, January/February, Yes, read it again! Hint hint hint!

Questions?