Mobile OSes and security Android iOS Windows. Mobile is now huge.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Dynamic Analysis of Windows Phone 7 apps Behrang Fouladi, SensePost.
Operating System Structures
Application Fundamentals Android Development. Announcements Posting in D2L Tutorials.
Mobile Platform Security Models John Mitchell CS 155 Spring 2014.
Building and Deploying Safe and Secure Android Apps for Enterprise Presented by Technology Consulting Group at Endeavour Software Technologies.
Vivek-Vijayan University of Tennessee at Chattanooga.
Security in By: Abdulelah Algosaibi Supervised by: Prof. Michael Rothstein Summer II 2010: CS 6/79995 Operating System Security.
Mobile Application Development
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.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
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.
Case study 2 Android – Mobile OS.
William Enck, Machigar Ongtang, and Patrick McDaniel.
Android Security What is out there? Waqar Aziz. Android Market Share - I 2.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
CS 153 Design of Operating Systems Spring 2015 Lecture 24: Android OS.
Presentation By Deepak Katta
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
1 Infrastructure Hardening. 2 Objectives Why hardening infrastructure is important? Hardening Operating Systems, Network and Applications.
박 종 혁 컴퓨터 보안 및 운영체제 연구실 MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications,
All Your Droid Are Belong To Us: A Survey of Current Android Attacks 단국대학교 컴퓨터 보안 및 OS 연구실 김낙영
Presented by: Kushal Mehta University of Central Florida Michael Spreitzenbarth, Felix Freiling Friedrich-Alexander- University Erlangen, Germany michael.spreitzenbart,
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. iOS.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
Smart Machines, Smart Privacy: Rules of the Road and Challenges Ahead The views expressed are those of the speaker and not necessarily those of the FTC.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
Overview of Android Application Development
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
Week 10-11c Attacks and Malware III. Remote Control Facility distinguishes a bot from a worm distinguishes a bot from a worm worm propagates itself and.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Android Security Auditing Slides and projects at samsclass.info.
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.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
14.1/21 Part 5: protection and security Protection mechanisms control access to a system by limiting the types of file access permitted to users. In addition,
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
1 Isolating Web Programs in Modern Browser Architectures CS6204: Cloud Environment Spring 2011.
VMM Based Rootkit Detection on Android
Lesson 6: Controlling Access to Local Hardware and Applications
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
Mobile Platform Security Models *Original slides by Prof. John Mitchell.
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?
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
ClickOnce Deployment (One-click Deployment)
Module 51 (Mobile Device Fundamentals - Android)
Computer System Structures
Mobile OSes and security
Android Mobile Application Development
Understanding Android Security
Security+ All-In-One Edition Chapter 1 – General Security Concepts
Operating System Structure
CMPE419 Mobile Application Development
The Application Lifecycle
Application Development A Tutorial Driven Course
Chapter 2: Operating-System Structures
Understanding Android Security
Chapter 2: Operating-System Structures
CMPE419 Mobile Application Development
ClickOnce Deployment (One-click Deployment)
Presentation transcript:

Mobile OSes and security Android iOS Windows

Mobile is now huge

Tons of apps are available

Attacks are increasing

Mobile malware attacks Unique to phones: – Premium SMS messages – Identify location – Record phone calls – Log SMS Similar to desktop/PCs: – Connects to botmasters – Steal data – Phishing – Malvertising

Mobile malware examples DroidDream (Android) – Over 58 apps uploaded to Google app market – Conducts data theft; send credentials to attackers Ikee (iOS) – Worm capabilities (targeted default ssh pwd) – Worked only on jailbroken phones with ssh installed (could have been worse) Zitmo (Symbian,BlackBerry,Windows,Android) – Propagates via SMS; claims to install a “security certificate” – Captures info from SMS; aimed at defeating 2-factor auth – Works with Zeus botnet; timed with user PC infection

Comparison between platforms Operating system – Unix – Windows Approval process for applications – Market: Vendor controlled/Open – App signing: Vendor-issued/self-signed – User approval of permission Programming language for applications – Managed execution: Java,.Net – Native execution: Objective C

The Android OS: Basics Linux platform, programmed with Java but focused for a mobile environment Includes support for SQL-lite databases Includes software for secure network communication: – Open SLL, Bouncy Castel crypto API and Java library Infrastructure in in C

The Android OS: Basics Features: – Shared memory – Preemptive multitasking – Unix user identifiers and permissions Process isolation between applications means limited need for complex policy configurations and sandboxing – More on this in a bit

Applications Applications run individually, under distinct UIDs with distinct permissions – NOT all with the user’s UID – Provides CPU and memory protection Programs cannot read or write each other’s data or code – Sharing between them must be done explicitly Heavily permissions based: – e.g. taking pictures, use GPS, make phone calls – All permissions given on install, to avoid repeated requests

Exploit prevention 100 libraries million lines new code – Open source -> public review, no obscurity Overflow prevention – ProPolice stack protection First on the ARM architecture – Some heap overflow protections Chunk consolidation in DL malloc (from OpenBSD) ASLR – Avoided in initial release Many pre-linked images for performance – Developed and contributed by Bojinov, Boneh

Code signing One (possible) long term guarantee is that android developers must sign their code – Usually self-signed certificates that can be generated without any external certification – Allows developers to update later without any complex permissions – Any applications run with the same key can ask to run with the same UID (so that updates and patches can use original code base) Pretty unique – idea is that good code will lead to a good reputation

Obvious potential attacks Even unprivileged malware can have unfortunate consequences: – Power or interruption issues – Noises or pop-ups – Permissions the user blindly agrees to can make this even worse However, user permission is required for truly dangerous things: – Dialing calls – Disclosure of private data – Destruction of data

Developer responsibilities Protect user data Deal with constrained memory and batter power Ensure programs are launched with correct permissions and UID parameters – Each program has manifest permissions to track what the application is allowed to do, expressed in AndroidManifest.xml – The user agrees to these upon install

More on permissions Once installed, permissions cannot be changed Users often become uncomfortable with permissions they don’t understand From developer side, permissions are just strings associated with a program and UID – Functionality allows lookups via checkPermission function

Levels for permissions Each permission type has: – a short text label – a longer description (for use on install) – a protection level: normal, dangerous, signature, or signatureOrSystem The protection level dangerous is designed to provide additional warnings for things like SEND_SMS, which could incur costs The signature can only be granted to applications using the same key as the one running (allows coordination)

Permission failure Using a feature which you don’t have permissions for causes a SecurityException – Often along with an error message of some type Users are NOT informed when a permissions failure occurs, unless the app simply terminates

Intents Intents are “a means by which an app can launch another app’s component using an abstract data structure describing what should be executed” – Essentially, a way to move data between Android processes Don’t enforce security, but rather are how processes can pass messages across system boundaries – And hence a big target

What intents do Start an Activity: – Such as opening a web page, using startActivity() method To broadcast changes in events To stop, start, or communicate with background services – Such as notifications To access data (such as user’s contacts)

Intents Lost of implementation details – But just think of them as blobs of data that can be moved between programs in order to get something done Intents can be dispatched by the Activity Manager: – Eg Context.startActivity(Intent intent) Can add categories to make the system more selective about what code the Intent can be handled by: – E.g. android.intent.category.BROWSABLE means that it is safe to be called from the web browser

Example An intent with action Intent.ACTION_VIEW paired with data Uri.parse(“ indicates that an app wants to view the google webpage If intent is sent out, the mobile OS decides what app is best to launch the browser So a lot depends on how the OS matches intents to applications

Sample attack A shady developer might develop an app with an intent to open a browser and upload stolen data to the server Since the browser opens the URL, the malicious app doesn’t need android.permission.INTER NET because this permissions has already been gotten by the browser app

Another example: logcat Logcat is a logging system provide in Android – Used to collect, view and filter system and app debug output – An app needs to request android.permission.READ_LOG, which appears fairly harmless Developers can write anything to logcat – Including sensitive debugging info, like logins, etc. – If careless, this debugging might not be removed So another app can gain access to entire log! This usually at least includes things like browsing history and GPS data, even if nothing else.

IOS overview OS is based on Mach kernel like OSX – So essentially BSD based Core services: – SQLite – UNIX sockets – POSIX threads – Usual APIs for network and file interfaces Top layer is Cocoa Touch, which controls animation, multitasking, and gesture recognition for the OS Generally implemented in C and Objective-C

Apple iOS Security Device security – Prevent unauthorized use of the device Data security – Protect data at rest; device may be lost or stolen Network security – Networking protocols and encryption of data in transmission App security – Secure platform foundation Reference:

Device Security: passcodes Strong passcodes Passcode expiration Passcode reuse history Maximum failed attempts Over-the-air passcode enforcement Progressive passcode timeout

Data Security Hardware encryption Remote wipe Local wipe Encrypted Configuration Profiles Encrypted iTunes backups

App Security Runtime protection – System resources, kernel shielded from user apps – App “sandbox” prevents access to other app’s data – Inter-app communication only through iOS APIs – Code generation prevented Mandatory code signing – All apps must be signed using an Apple-issued certificate Application data protection – Apps can take advantage of built-in hardware encryption

Limit app’s access to files, preferences, network, other resources Each app has own sandbox directory Limits consequences of attacks Same privileges for each app iOS Sandbox

A bit about Windows We’ve already discussed some of the basics about Windows, since they have unified their desktop and mobile frameworks But let’s discuss a bit about app management, since we didn’t focus on that in our desktop OS discussions

Windows Phone 7 security model Least Privilege Chamber (LPC) Trusted Computing Base (TCB) Elevated Rights Standard Rights Central repository of rules 3-tuple {Principal, Right, Resource} Chamber boundary is security boundary Chambers defined using policy rules 4 chamber types, 3 fixed size, one can be expanded with capabilities (LPC) Expressed in application manifest Disclosed on Marketplace Defines app’s security boundary on phone

Windows Phone 8 security model Least Privilege Chamber (LPC) Trusted Computing Base (TCB) Services and Application all in chambers WP8 has a richer capabilities list

Windows Phone OS 7.0 security model Principles of isolation and least privilege Each chamber – Provides a security and isolation boundary – Is defined and implemented using a policy system The security policy of a chamber – Specifies the OS capabilities that processes in that chamber can access

Isolation Every application runs in own isolated chamber – All apps have basic permissions, incl a storage file – Cannot access memory or data of other applications, including the keyboard cache. No communication channels between applications, except through the cloud Non-MS applications distributed via marketplace stopped in background – When user switches apps, previous app is shut down – Reason: application cannot use critical resources or communicate with Internet–based services while the user is not using the application

Four chamber types Three types have fixed permission sets Fourth chamber type is capabilities-driven – Applications that are designated to run in the fourth chamber type have capability requirements that are honored at installation and at run-time

Overview of four chambers Trusted Computing Base (TCB) chamber – unrestricted access to most resources – can modify policy and enforce the security model. – kernel and kernel-mode drivers run in the TCB – Minimizing the amount of software that runs in the TCB is essential for minimizing the Windows Phone 7, 8 attack surface

Overview of four chambers Elevated Rights Chamber (ERC) – Can access all resources except security policy – Intended for services and user-mode drivers Standard Rights Chamber (SRC) – Default for pre-installed applications that do not provide device-wide services – Outlook Mobile is an example that runs in the SRC Least Privileged Chamber (LPC) – Default chamber for all non-Microsoft applications – LPCs configured using capabilities (see next slide)

Granting privileges to applications Goal: Least Privilege – Application gets capabilities needed to perform all its use cases, but no more Developers – Use the capability detection tool to create the capability list – The capability list is included in the application manifest Each application discloses its capabilities to the user, – Listed on Windows Phone Marketplace. – Explicit prompt upon application purchase – Disclosure within the application, when the user is about to use the location capability for the first time.

Recap: Comparison between platforms Operating system – Unix – Windows Approval process for applications – Market: Vendor controlled/Open – App signing: Vendor-issued/self-signed – User approval of permissions Programming language for applications – Managed execution: Java,.Net – Native execution: Objective C

Comparison iOSAndroidWindows Unixxx Windowsx Open marketx Closed marketxx Vendor signedx Self-signedxx User approval of permissionsx7-> 8 Managed codexx Native codex