Security and Programming Language Work on SmartPhones

Slides:



Advertisements
Similar presentations
Towards Remote Policy Enforcement for Runtime Protection of Mobile Code Using Trusted Computing Xinwen Zhang Francesco Parisi-Presicce Ravi Sandhu
Advertisements

SIF: A Selective Instrumentation Framework for Mobile Apps Shuai Hao, Ding Li, William G.J. Halfond Ramesh Govindan.
Openflow App Testing Chao SHI, Stephen Duraski. Motivation Network is still a complex stuff ! o Distributed mechanism o Complex protocol o Large state.
Compiler Optimized Dynamic Taint Analysis James Kasten Alex Crowell.
When Role Models Have Flaws: Static Validation of Enterprise Security Policies Marco Pistoia IBM T. J. Watson Research Center Hawthorne, New York
2014 Network and Distributed System Security Symposium AppSealer: Automatic Generation of Vulnerability-Specific Patches for Preventing Component Hijecking.
CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerability Chao Shi CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerabilities.
Chapter 6 Security Kernels.
Policy Weaving for Mobile Devices Drew Davidson. Smartphone security is critical – 1200 to 1400 US Army troops to be equipped with Android smartphones.
Program Representations. Representing programs Goals.
Long Lu, Zhichun Li, Zhenyu Wu, Wenke Lee and Guofei Jiang CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerability.
VanarSena: Automated App Testing. App Testing Test the app for – performance problems – crashes Testing app in the cloud – Upload app to a service – App.
By Philipp Vogt, Florian Nentwich, Nenad Jovanovic, Engin Kirda, Christopher Kruegel, and Giovanni Vigna Network and Distributed System Security(NDSS ‘07)
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
CS-550 (M.Soneru): Protection and Security - 1 [SaS] 1 Protection and Security.
Security of Mobile Applications Vitaly Shmatikov CS 6431.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
Efficient Privilege De-Escalation for Ad Libraries in Mobile Apps Bin Liu (SRA), Bin Liu (CMU), Hongxia Jin (SRA), Ramesh Govindan (USC)
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Lei Wu, Michael Grace, Yajin Zhou, Chiachih Wu, Xuxian Jiang Department of Computer Science North Carolina State University CCS 2013.
Vulnerability-Specific Execution Filtering (VSEF) for Exploit Prevention on Commodity Software Authors: James Newsome, James Newsome, David Brumley, David.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
D2Taint: Differentiated and Dynamic Information Flow Tracking on Smartphones for Numerous Data Sources Boxuan Gu, Xinfeng Li, Gang Li, Adam C. Champion,
Presented by: Tom Staley. Introduction Rising security concerns in the smartphone app community Use of private data: Passwords Financial records GPS locations.
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
A Specification Language and Test Planner for Software Testing Aolat A. Adedeji 1 Mary Lou Soffa 1 1 DEPARTMENT OF COMPUTER SCIENCE, UNIVERSITY OF VIRGINIA.
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
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.
Android Security Model that Provide a Base Operating System Presented: Hayder Abdulhameed.
Model construction and verification for dynamic programming languages Radu Iosif
November 2005 New Features in Paradyn and Dyninst Matthew LeGendre Ray Chen
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Android Permissions Demystified
Dynamic Vetting Android Applications for Privilege-escalation Risks Jiaojiao Fu 1.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
CS223: Software Engineering
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
AppAudit Effective Real-time Android Application Auditing Andrew Jeong
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
INFORMATION-FLOW ANALYSIS OF ANDROID APPLICATIONS IN DROIDSAFE JARED YOUNG.
Authors: William Enck & Patrick McDaniel In collaboration with: Duke University and Intel Labs Presentation: Ed Novak 1.
Introduction to Android Programming
Privacy in Mobile Systems Karthik Dantu and Steve Ko.
Joshua Garcia Institute for Software Research
More Security and Programming Language Work on SmartPhones
Free for All! Assessing User Data Exposure to Advertising Libraries on Android Campbell Foskin.
TriggerScope: Towards Detecting Logic Bombs in Android Applications
Adaptive Android Kernel Live Patching
Chapter 14: System Protection
Android System Security
Android Runtime – Dalvik VM
TaintART: A Practical Multi-level Information-Flow Tracking System for Android RunTime Sadiq Basha.
AppShield: Enabling Multi-entity Access Control Cross Platforms for Mobile App Management Zhengyang Qu1, Guanyu Guo2, Zhengyue Shao2, Vaibhav Rastogi3,
Harry Xu University of California, Irvine & Microsoft Research
MobiSys 2017 Symbolic Execution of Android Framework with Applications to Vulnerability Discovery and Exploit Generation Qiang Zeng joint work with Lannan.
Security mechanisms and vulnerabilities in .NET
Systematic Detection of capability leaks in stock android smartphones
TriggerScope Towards detecting logic bombs in android applications
Review CSE116 2/21/2019 B.Ramamurthy.
Introduction to AppInventor
Android Platform, Android App Basic Components
Mobile Programming Dr. Mohsin Ali Memon.
Software Development Process Using UML Recap
Dynamic Binary Translators and Instrumenters
Gesto: Mapping UI Events to Gestures and Voice Commands
Presentation transcript:

Security and Programming Language Work on SmartPhones Karthik Dantu and Steve Ko

CHEX: Motivation Wide-spread app development leads to large variance in app quality and security vulnerabilities One example of vulnerability is the component hijacking vulnerability in Android Many applications implement access control improperly on external requests or accidentally leak private data or privileges Need a scalable vulnerability filtering system for app markets

Component Hijacking Attacks An unauthorized app, issuing requests to one or more public components in a vulnerable app, seeks to: READ sensitive data WRITE to critical region Perform a combination

Challenges Reliably discovering all types of entry points (or event handlers) in their completeness Soundly modeling the asynchronous invocations of entry points for analysis Assessing the collective side-effects of individual data-flows and identifying converged flows of interest Tracking data flows across splits and components Analyzing framework code is hard: Just model it wrt data flow

Entry-point Discovery

Handling Split Flows Sources SensSrc InputSrc Sinks PublicSink SpecifiedSink CriticalSink

SDS and PDS PDS generated by two simple operations – link and unlink an SDS Data-flow edges Heap variables sharing the same location-key tuple Framework API pairs that transit data among splits Tag_TransSink, Tag_TransSrc Depth-first search for pruning

Implementation Dalysis : APK  IR DexLib: Programmatically read embedded data WALA: Static analysis framework for Java (used for IR) Chose 180 sources and sinks that match tags defined by policies 1-3 Create Data Dependence Graphs for PDS analysis

Selective Instrumentation Framework Performance analysis as well as security motivate the need for app instrumentation Selective instrumentation useful for performance Permit path inspection between specified codepoints Accurately estimate the instrumentation overhead Three main mechanisms Source code instrumentation Runtime instrumentation Binary instrumentation

App Instrumentation in Mobile Space Instrumentation to analyze the critical path e.g., AppInsight Enable fine-grained permission checking Sensor auditing for security reasons e.g., CHEX

SIF Inputs App binary SIFScript Workload Description Instrumenter Overhead Estimator Log output

SIFScript: Codepoint Set Codepoint Set: Encapsulates a set of instructions that share one or more attributes setMethod setByteCode setPermissions setLoops Instrumenter.place: Before, After, At, PlaceLoops()

SIFScript: Path Set Path Set: Encapsulates a set of dynamically traversed paths that satisfy a user-specified constraint Path: Collection of paths traversed by the app when it is executed Contains: All intra-procedural paths that contains atleast one of the specified codepoints Sequence: All paths that contain all specified codepoints Report: stacktrace

SIF Design: Control Flow Analysis Incorporates Efficient Path Profiling – Ball and Larus Assign weights to edges on a CFG such that each unique traversal returns a unique sum along edges thereby identifying the unique execution path Single counter per method sufficient for instrumentation Key idea: Instrument path segments

SIF Design: Codepoint Abstraction Three steps Find target instrumentation positions Enable access to local data variables Insert user-defined code Instrumentation done as callbacks Contains – straightforward Sequence – complicated Perform reachability analysis Instrument all possible paths Include all exception handlers in reachability analysis

SIF Design: Overhead Estimator Two sources Instructions inserted by SIF components User-defined instrumentation code User provides workflow description App only instrumented with Ball-Larus profiler User executes regular workload Output is the workflow for overhead estimation

SIF Implementation Language abstractions implemented as an extension to Java Apktool  dex2jar  converts app to java bytecode BCEL library used to read and modify java bytecode Android SDK used to convert java bytecode to dalvik bytecode and re-package app Does not handle reflection and dynamically loaded code No visibility into native code