AppContext: Differentiating Malicious and Benign Mobile App Behavior Under Contexts
Tao Xie
Joint Work w/ David Yang, Sihan Li (Illinois)
Xusheng Xiao, Benjamin Andow, Rahul Pandita, William Enck (NCSU)
AppContext: Differentiating Malicious and Benign Mobile App Behavior - - PowerPoint PPT Presentation
AppContext: Differentiating Malicious and Benign Mobile App Behavior Under Contexts Tao Xie Joint Work w/ David Yang, Sihan Li (Illinois) Xusheng Xiao, Benjamin Andow, Rahul Pandita, William Enck (NCSU) Mobile App Markets Google Play
Joint Work w/ David Yang, Sihan Li (Illinois)
Xusheng Xiao, Benjamin Andow, Rahul Pandita, William Enck (NCSU)
Apple App Store Google Play Microsoft Windows Phone
5
APP DEVELOPERS APP USERS App Functional Requirements App Security Requirements User Functional Requirements User Security Requirements informal: app description, etc. permission list, etc.
App Code
6
App Code App Permissions
7
8
APP DEVELOPERS APP USERS App Functional Requirements App Security Requirements User Functional Requirements User Security Requirements informal: app description, etc. permission list, etc.
App Code
9
10
APP DEVELOPERS APP USERS App Functional Requirements App Security Requirements User Functional Requirements User Security Requirements
informal: app description, etc. permission list, etc.
App Code
11
App Description App Code App Permissions
WHYPER ( )
boundary, e.g., AppContext ()
()
App UIs, App categories, App metadata, User forums, … [functional] [security]
12
13
App Description App Code App Permissions
14
App Description Sentence Permission Linkage
Application Market WHYPER
DEVELOPERS USERS
15 Pandita et al. WHYPER: Towards Automating Risk Assessment of Mobile Applications. USENIX Security 2013 http://web.engr.illinois.edu/~taoxie/publications/usenixsec13-whyper.pdf
16
17
19
APP Description APP Permission Semantic Graphs Preprocessor Intermediate Representation Generator Semantic Engine NLP Parser Semantic Graph Generator API Docs Annotated Description FOL Representation WHYPER
20
21
Permission Keywords
READ_CONTACTS
contact, data, number, name, email
READ_CALENDAR
calendar, event, date, month, day, year
RECORD_AUDIO
record, audio, voice, capture, microphone
sounds but NOT requiring permission to record audio
22
23
24
App Description App Code App Permissions
WHYPER ( )
boundary, e.g., AppContext ()
()
App UIs, App categories, App metadata, User forums, … [functional] [security]
26
“One-Click Register & Login”
ICSE 2012 27
28
App Description App Code App Permissions
WHYPER ( )
boundary, e.g., AppContext ()
()
App UIs, App categories, App metadata, User forums, … [functional] [security]
ActionReceiver.OnReceive() Date date = new Date(); If(data.getHours>23 || date.getHours< 5 ){ ContextWrapper.StartService(MainService); … MainService.OnCreate() DummyMainMethod() SendTextActivity$4.onClick() SplashActivity.OnCreate() SmsManager.sendTextMessage() long last = db.query(“LastConnectTime"); long current = System.currentTimeMillis(); If(current – last > 43200000 ){ SmsManager.sendTextMessage(); db.save(“LastConnectTime”, current); … SendTextActivity$5.run() MainService.b() ContextWrapper.StartService()
ActionReceiver.OnReceive() Date date = new Date(); If(data.getHours>23 || date.getHours< 5 ){ ContextWrapper.StartService(MainService); … MainService.OnCreate() DummyMainMethod() SendTextActivity$4.onClick() SplashActivity.OnCreate() SmsManager.sendTextMessage() long last = db.query(“LastConnectTime"); long current = System.currentTimeMillis(); If(current – last > 43200000 ){ SmsManager.sendTextMessage(); db.save(“LastConnectTime”, current); … SendTextActivity$5.run() MainService.b() ContextWrapper.StartService()
ActionReceiver.OnReceive() Date date = new Date(); If(data.getHours>23 || date.getHours< 5 ){ ContextWrapper.StartService(MainService); … MainService.OnCreate() DummyMainMethod() SendTextActivity$4.onClick() SplashActivity.OnCreate() SmsManager.sendTextMessage() long last = db.query(“LastConnectTime"); long current = System.currentTimeMillis(); If(current – last > 43200000 ){ SmsManager.sendTextMessage(); db.save(“LastConnectTime”, current); … SendTextActivity$5.run() MainService.b() ContextWrapper.StartService()
If(data.getHours>23 || date.getHours< 5 ) If(current – last > 43200000 ) Date date = new Date(); db.query(“LastConnectTime") System.currentTimeMillis()
Conditional Stmt Information Flow Environment-property Method
Calendar SystemTime DataBase
Context Factors
SmsManager.sendTextMessage()
Context1: (Event: Signal strength changes), (Factor: Calendar) Context2: (Event: Entering app), (Factor: Database, SystemTime) Context3: (Event: Clicking a button)
Context factors: environmental attributes for affecting security-sensitive behavior’s invocation (or not)
44
App Description App Code App Permissions
e.g., WHYPER ( )
the boundary, e.g., AppContext ()
boundary ()
App UIs, App categories, App metadata, User forums, … [functional] [security]
45
App Description App Code App Permissions taoxie@illinois.edu App UIs, App categories, App metadata, User forums, …
Acknowledgments: Supported in part by NSA Science of Security (SoS) Lablet
contradict w/ user perceptions
judgments based on perceived information
User Expectations User Perceptions App Behaviors
Interfaces, Descriptions, Usage scenarios etc. User judgments, Privacy requirements
imperceptible, or contradict w/ user perceptions
judgments based on perceived information
User-Aware Privacy Control ASE 2012 AppContext ICSE 2015 WHYPER USENIX Security 2013