Checking Interaction-Based Declassification Policies for Android Using Symbolic Execution
Preprint
Abstract
Mobile apps can access a wide variety of secure information, such as contacts and location. However, current mobile platforms include only coarse access control mechanisms to protect such data. In this paper, we introduce interaction-based declassification policies, in which the user's interactions with the app constrain the release of sensitive information. Our policies are defined extensionally, so as to be independent of the app's implementation, based on sequences of security-relevant events that occur in app runs. Policies use LTL formulae to precisely specify which secret inputs, read at which times, may be released. We formalize a semantic security condition, interaction-based noninterference, to define our policies precisely. Finally, we describe a prototype tool that uses symbolic execution to check interaction-based declassification policies for Android, and we show that it enforces policies correctly on a set of apps.Keywords
All Related Versions
This publication has 12 references indexed in Scilit:
- Symbolic execution for software testingCommunications of the ACM, 2013
- Run-Time Enforcement of Information-Flow Properties on Android2013
- Securing Interactive Programs2012
- User-Driven Access Control: Rethinking Permission Granting in Modern Operating Systems2012
- Inference of Expressive Declassification Policies2011
- Declassification: Dimensions and principlesJournal of Computer Security, 2009
- Non-Interference for Deterministic Interactive Programs2009
- Z3: An Efficient SMT Solver2008
- Information-Flow Security for Interactive Programs2006
- The temporal logic of programs1977