170 likes | 327 Views
Vision: Automated Security Validation of Mobile Apps at App Markets. Presented by: T om Staley. Introduction. Rising security concerns in the smartphone app community Use of private data: Passwords Financial records GPS locations Malware attacks have been found targeting smartphones.
E N D
Vision: Automated Security Validation of Mobile Apps atApp Markets Presented by: Tom Staley
Introduction • Rising security concerns in the smartphone app community • Use of private data: • Passwords • Financial records • GPS locations • Malware attacks have been found targeting smartphones
TaintDroid • Previous attempt by presenters to address security problems • Tracks sensitive data as it flows between apps • Raises an alert when sensitive data is transmitted off the phone • Leaks are only found after the data has been lost
Current Security Methods • Unlike PCs, the app market is highly centralized • Scan apps as they join the market • Currently applied manually, if at all • Some banned behavior still slips through the cracks
Proposed Solution • AppInspector • Service run by market providers or by a third-party • Uses multiple virtual smartphones to run instances of apps before they reach the market • Entire process is automated to ensure thorough testing
Challenges • Three challenges with AppInspector • How to track and log data • How to determine security violations using the logs • How to ensure all branches of code are covered
AppInspector Components • Four main components • Input generator • Execution explorer • Information flow tracker • Security analyzer
Types of violations • Security violation - when an app accesses data without permissions to do so • Privacy violation – when an app discloses information without prompting the user • AppInspector focuses on privacy violations
Tracking Data • Log data about explicit and implicit data flows • Various actions also logged, like methods that access disk memory or device sensors • Action logging has to be limited to reduce overhead
Data Flows • Explicit data flow – following data through use of data dependencies • Attach a “label” to data as it leaves the source of the data • Track the label through the program until it reaches a “sink” • Implicit data flow – when sensitive information can be found by looking at control flow • if (w == 0) x = y; else z = y; • If w is privacy-sensitive, looking at values of x and z can determine if w == 0;
Violation Detection • Two methods to detect privacy violations • When sensitive data is disclosed: • Use data dependency graph to trace sensitive data back to source • Check for user notifications or search license agreements for permissions
Input Generation • App are event-driven • Two types of events: • UI inputs • Callback triggers from device sensors • These inputs can be randomly generated to test apps
Concrete Execution • Randomly generating input is known as Concrete Execution • Developers tested this approach on 9 apps • Fed constant stream of input for 30 minutes • 40% or lower code coverage found
Symbolic Execution • Another type of input testing known as symbolic testing • Systematically tests all possible execution paths • Highly inefficient
Concolic Execution • Mix of concrete and symbolic execution • Run symbolic execution on main application code • All other code (code libraries, system code, etc.) tested with concrete execution • Switch between the two methods as required during testing
Conclusion • The app market is at risk for security and privacy violations • AppInspector developed to scan apps before they reach marketplace • Uses concolic execution to generate input • Tracks sensitive data as it propagates through app • Uses logs to determine if privacy violation has occurred
Bibliography Peter Gilbert, "Vision: Automated Security Validation of Mobile Apps at App Markets", MCS’11, June 28, 2011, Bethesda, Maryland, USA.