Talia ringer, dan grossman and Franziska roesner

Slides:



Advertisements
Similar presentations
Information Security Domains Computer Operations Security By: Shafi Alassmi Instructor: Francis G. Date: Sep 22, 2010.
Advertisements

Testing Relational Database
Operating System Security
Lectures on File Management
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
CMSC 414 Computer (and Network) Security Lecture 13 Jonathan Katz.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
Towards Application Security On Untrusted OS
Network security policy: best practices
Android Security Enforcement and Refinement. Android Applications --- Example Example of location-sensitive social networking application for mobile phones.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
OWASP Mobile Top 10 Why They Matter and What We Can Do
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Understanding Android Security Yinshu Wu William Enck, Machigar Ongtang, and PatrickMcDaniel Pennsylvania State University.
Information Systems Security Computer System Life Cycle Security.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Presented by: Kushal Mehta University of Central Florida Michael Spreitzenbarth, Felix Freiling Friedrich-Alexander- University Erlangen, Germany michael.spreitzenbart,
Lecture 18 Page 1 CS 111 Online Access Control Security could be easy – If we didn’t want anyone to get access to anything The trick is giving access to.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Developing Security Mobile Applications for Android Presenter, Joel Elixson Author, Jesse Burns of iSEC Partners.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Next-generation databases Active databases: when a particular event occurs and given conditions are satisfied then some actions are executed. An active.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
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,
Wireless and Mobile Security
Title of Presentation DD/MM/YYYY © 2015 Skycure Why Are Hackers Winning the Mobile Malware Battle.
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.
VMM Based Rootkit Detection on Android
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
DeepDroid Dynamically Enforcing Enterprise Policy Manwoong (Andy) Choi
SECURITY. Security Threats, Policies, and Mechanisms There are four types of security threats to consider 1. Interception 2 Interruption 3. Modification.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
“What the is That? Deception and Countermeasures in the Android User Interface” Presented by Luke Moors.
WHAT THE APP IS THAT? DECEPTION AND COUNTERMEASURES IN THE ANDROID USER INTERFACE.
Computer System Structures
Unix Server Consolidation
What Mobile Ads know about mobile users
Development Environment
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
TriggerScope: Towards Detecting Logic Bombs in Android Applications
Understanding Android Security
2. OPERATING SYSTEM 2.1 Operating System Function
Chapter 14: Protection Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 14: System Protection
AUDACIOUS: USER DRIVEN ACCESS CONTROL WITH UNMODIFIED OPERATING SYSTEM
Mechanism: Limited Direct Execution
Harvesting Runtime Values in Android Applications That Feature Anti-Analysis Techniques Presented by Vikraman Mohan.
Presented by Xiaohui (Amy) Lin
Chapter 2: System Structures
AUDACIOUS User-Driven Access Control with Unmodified Operating Systems
Security Engineering.
Introduction to Operating System (OS)
Done BY: Zainab Sulaiman AL-Mandhari Under Supervisor: Dr.Tarek
Crowd Intelligence Grocery Shopping Mobile App
Chapter 2: System Structures
Unit 6: Application Development
How to Mitigate the Consequences What are the Countermeasures?
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 14: Protection.
Database (DB) and Database Management System (DBMS)
Information Security CS 526
Chapter 29: Program Security
Understanding Android Security
Applying Use Cases (Chapters 25,26)
Security in SDR & cognitive radio
ONAP Risk Assessment – Preparation Material - Overview of the Process - Terminology - Assumptions
Presentation transcript:

AUDACIOUS: USER-DRIVEN ACCESS CONTROL WITH UNMODIFIED OPERATING SYSTEMS Talia ringer, dan grossman and Franziska roesner University of Washington seattle, Usa PRESENTED BY: Jay Pandya

INTRODUCTION There is a growing concern around applications asking for all-or-nothing access to user resources – users have no clear indication of what this allows the application to do. Prior work introduced user-driven access control via access control gadgets (ACGs), but this required direct modification of operating systems and does not provide backwards compatibility. Examples: Recently, a flashlight application was recently found to be leaking user location to advertisers. Android malware is known to sent costly SMS messages without the user knowing ACGs were a step in the right direction, but the problem of devices running old OS versions still remains. There is a growing concern around applications (mobile applications in particular) requiring all-or-nothing access to user resources. Allowing this has led to an abuse of the access by malicious applications, wherein the users have no clear indication of what the application is doing with the granted permissions. Prior work in the field introduced user-driven access control via the use of Access Control Gadgets (ACGs). Access Control Gadgets are interactable UI elements which grant the application access to resources external to the application. An example of ACGs on iOS can be the camera and microphone icons – which allow you to attach an image or record audio messages. ACGs, however, require significant modification to operating systems in order to serve as a stand-alone solution to this problem. There are two examples which highlight the severe misuse of user information. The first, was a simple flashlight application that was leaking user location information to advertisers. The second example is a common occurrence, in which android malware sends costly text messages without the user knowing. ACGs were a step in the right direction, but the problem of devices running old OS versions still remains.

GOALS OF AUDACIOUS For a solution to be immediately deployable, AUDACIOUS must build on ACGs by maintaining the following goals: User-driven Access Control Access to sensitive resources is only granted when the user interacts with the corresponding ACG. Unmodified Operating System Regulate Resource use, not just access Design should provide guarantees about the flow of resources. Permission Model Flexibility Allow applications to use alternative permission models for some functionalities. The proposed solution is something called AUDACIOUS. It is a way to provide user-driven access control without needing any modification to operating systems whilst being easily deployable. However, in order for this to be possible, AUDACIOUS must build on ACGs by maintaining the following goals. User-driven access control. This means that the access permissions are only granted when the user interacts with the corresponding ACG. Unmodified Operating System. Operating systems shouldn’t need to be modified in order to accommodate for AUDACIOUS. Regulation of resource use, not just access. The design should provide guarantees about the flow of certain resources. Permission Model Flexibility. Certain applications require varying permission models to perform their functions, and AUDACIOUS should cater for that. Image from: http://ialtotalsecurity.com/access-control/

SECURING ACCESS CONTROL GADGETS Applications include external library in which ACGs encapsulate the details of both resource APIs and UI elements which grant permissions. The library uses techniques to regulate the following conceptual phases: Event flow – UI interaction is strictly invoked by the user UI Context – UI does not trick the user into interactions Resource flow – Resources are accessed appropriately via ACGs Event flow Can be disrupted via event forgery. Defense via taint analysis. UI Context Can be disrupted by cover attacks. Defense via explicit Internal/External UI checking Resource flow Disrupted by abusing granted permissions to perform malicious tasks. Defense via regulating Information Flow. EVENT LIBRARY So now comes the question of how one may actually secure these access control gadgets. The authors of the article developed an external library in which ACGs encapsulate the details of resource APIs and UI elements. The library uses techniques to regulate three phases. The first one is event flow. Regulation of event flow means that the UI interaction is strictly invoked by the user (not the application). The second, is UI Context. Regulating the UI context ensures that the user is not tricked into performing actions that could jeopardize their personal information. The final phase is Resource flow. This just means that resources are accessed and used in an appropriate manner. Without AUDACIOUS, these three phases can be easily disrupted by an adversary. Event flows can be disrupted via event forgery, where an application creates a fake event to perform an unexpected task. AUDACIOUS combats this by performing taint analysis on events. An event is marked as tainted if it passes through application code before arriving at an ACG. If an event is tainted, then it doesn’t get executed. The UI Context can be disrupted by cover attacks. Cover attacks occur when the UI is covered with malicious elements in order to trick the user of the application into performing certain tasks. These attacks are mitigated by AUDACIOUS by performing bitmap comparisons of UI elements before and after events. The final phase is Resource flow. We’ve already covered an example of this earlier when we talked about the flashlight application. EXECUTE EVENT

ACG LIBRARY SPARTA LIBRARY Developed in Android and is event-driven. Application developers include the library and use its UI elements. Invalidates view if library detects a potentially malicious or “evil” event. Application code is not executed. Two ACG interfaces – one for temporary permissions and one for permanent permissions. Views are wrapped so that applications cannot modify the ACG UI after creation. SPARTA LIBRARY Information flow tool Two stages - App store approval and Runtime approval SPARTA operates on source code and uses static type- checking to infer illegal flow of information. All allowed flows are defined in a flow policy file A human verifies the output of SPARTA in the context of the policy. SPARTA is extended by implementing an ACG type so SPARTA can distinguish ACGs from each other. So how does AUDACIOUS actually do these things? It makes use of two libraries – the ACG Library and the SPARTA library. The ACG Library is developed by the authors in Android, and is event driven. Before starting development of an android application, developers include this library in their project and use its UI elements instead. The ACG library employs many different techniques to protect against all kinds of attacks but the most common type of attack is related to events. Views must go through the ACG library before they are passed on to the application code. A view will be invalidated (or marked as tainted) if it is detected to be malicious. If a view is invalidated, then its corresponding application code is not executed. The library also supports flexible permission models, because there are two available ACG interfaces – one for temporary permissions, and one for permanent. Some adversaries might try to modify the ACG UI after creation in order to bypass these techniques, so this is mitigated by wrapping all the views (with a ViewWrapper). The second library is called SPARTA. It is an information flow monitoring tool which has two stages – app store approval and runtime approval. While the ACG library focuses on event flows and UI context, the SPARTA library is responsible for ensuring that resource flow within an application is appropriate. It operates on the application source code, and uses static type-checking to infer illegal flows of information. All legal information or resource flows are defined in a flow policy file which is cross-checked during runtime. A human must then go through the output of SPARTA and verify that the information flows are indeed appropriate. SPARTA, however, does not account for WHEN resources are being accessed by applications. Therefore, the SPARTA library was extended by implementing ACG types, allowing SPARTA to distinguish when resources flow from one ACG to another.

INTEGRATING AUDACIOUS WITH REAL APPLICATIONS Implementing the ACG library in some applications actually decreased code size. In complex applications, the code additions are minimal for the most part. Classes of attacks were instantiated and tested against a malicious test application. 55 out of 57 attacks were mitigated by AUDACIOUS. AUDACIOUS uses a Random Check Frequency to ensure that the user has enough time to perceive the UI before any interaction. If these checks are done frequently, they provide better protection against timing-based attacks. However, performing the checks at smaller frequencies significantly impacts performance.

BENEFITS OF A USER-SPACE APPROACH Deployability Changes to OS are costly – so it is very unlikely for OS developers to deploy fixes to issues in the near future. Even if OS changes were deployed, old devices running previous versions of the system would never receive these changes. Flexibility of Permission models Permission models are not one-size-fits-all. It makes sense for different applications to require different permission models. The user-space approach allows for the permission model to be changed or combined with other models.

LIMITATIONS OF A USER-SPACE APPROACH Increased trusted code base Have to now assume that the device, OS, ACG library and the device itself haven’t been compromised. Software updates If the ACG library is updated, each application developer has to individually update their application to include the latest version of the library.

LIMITATIONS CONT. Inconsistent permission models Reflection Existing permission prompts become redundant with the use of ACGs. Existing prompts cannot be removed without OS modification. Reflection Unrestricted use of reflection allows any secure library to be circumvented. Requires application developers to use appropriate annotations if reflection is being used.

CRITICISM Use of AUDACIOUS cannot be enforced in any way. It is a choice the developer has. Does not protect against ALL possible attack types – e.g. Bait-and-switch attacks. Existing applications do not benefit from AUDACIOUS unless they are completely refactored. AUDACIOUS only supports 4 types of ACGs – immediate/periodic locations and recording/playing audio. This restricts the functionalities that can be protected by AUDACIOUS. Some aspects of AUDACIOUS may impair application performance such as the random check frequency. Code changes may not be manageable (nor feasible) for extremely complex applications. Doesn’t make sense to develop using AUDACIOUS if the developer is a trusted entity.

QUESTIONS?