SECURITY AND PRIVACY OF MOBILE APPS Fred McMahan INTRODUCTION AND MOTIVATION INTRODUCTION AND MOTIVATION Increase in the number of smart devices Number of applications available for the smart device Who developed that app? Do we trust them? Leads to a increase in the possibility of a dangerous app Malware Privacy Leak Up to the user to determine if the app is safe IOS VS. ANDROID ITunes Over 550,000 Apps 25 Billion downloads Google Play Over 450,00 Apps 10 billion downloads IOS SDK available to anyone Closed OS Source Code Closed Publication Requires Apples approval before adding it to ITunes Magic Delete Button Disable or delete apps at will ANDROID OS SDK available to anyone Open source OS Open Publication Open Content Potential for more Malware Research more focused with Android OS CURRENT SECURITY AND PRIVACY MODELS IOS Every App is validated before publishing to ITunes This protects the user from potential malware Apps must request permission from user to use personal data ANDROID Multiple places to download applications Apps may not be checked by any authority before published Uses permission scheme User must approve an app to use a specific feature GOOGLE'S BOUNCER A background system that runs on Google Play Check each application on the market for malware Runs each application in the cloud to look for suspicious activity 40% decrease in the number of potentially malicious downloads Is this enough security? RUN-TIME PROTECTION RUN-TIME PROTECTION Apps developed to monitor other applications Lookout Security & Antivirus Also monitors for privacy leaks Have the ability to monitor the inter process communication Monitor for malicious activity Is this enough security? May not always catch malicious code SAINT Uses a pre-defined policy to monitor inter-process communications Each application run on it own virtual machine SAINT rejects the communication if it is not defined in the policy SAINT ANALYSIS Provides a basic run-time security Pre-defined policies may not account for all malicious activity INSTALL-TIME PROTECTION INSTALL-TIME PROTECTION Allows malicious apps to be avoided Inform the user User needs a security tool to quantify a threat level when they downloads an application Provide a user with accurate evaluation of how much of a threat the application presents How do we develop Install-time protection? REVERSE ENGINEER CODE Most effective Easy to locate privacy leak and malicious code Time consuming Complexity Currently not able to do on the phone SCANDROID Automated security tool designed to compare installing application against installed applications Reverse engineers byte code to obtain Java code Maps the flows of the program Data entering and leaving the application Compares this to other installed applications Gives the user the ability to not install the application SCANDROID ISSUES Time complexity Larger programs take longer Not currently able to accomplish on the device PERMISSIONS 114 Permissions required to gain access to functionality ACCESS_FINE_LOCATION – GPS ACCESS_COURSE_LOCATION – Cell Tower CAMERA Find an entire lists at: http://developer.android.com/reference/android/Manif est.permission.html PERMISSIONS MANIFEST FILE A file included with every Android App to tell the OS what features it needs to access Presents the required permissions to the user at install time User must accept the permission before being able to install the app Most users probably just skip over the list SAMPLE PERMISSION MANIFEST <activity android:name=".app.DeviceAdminSample" android:label="@string/activity_sample_device_admin"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.SAMPLE_CODE" /> </intent-filter> </activity> <receiver android:name=".app.DeviceAdminSample$DeviceAdminSampleReceiver" android:label="@string/sample_device_admin" android:description="@string/sample_device_admin_description" android:permission="android.permission.BIND_DEVICE_ADMIN"> <meta-data android:name="android.app.device_admin" android:resource="@xml/device_admin_sample" /> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver> KIRIN SECURITY TOOL Analyzes security configuration from the package manifest before app installation Every application has a security configuration which tells the OS what inter-process communication (IPC) are going to be used SAMPLE THREAT FACTORS KIRIN PRELIMINARY RESULTS Rule 2: An application must not have PHONE_STATE, RECORD_AUDIO, and INTERNET permission labels. KIRIN PRELIMINARY RESULTS Rule 4: An application must not have ACCESS_FINE_LOCATION, INTERNET, and RECEIVE_BOOT_COMPLETE permission labels. Rule 5: An application must not have ACCESS_COARSE_LOCATION, INTERNET, and RECEIVE_BOOT_COMPLETE permission labels. KIRIN ANALYSIS Provides a good introduction to using manifest file at install time Does not give user any information Misidentify applications as malicious STOWAWAY Designed to identify over-privileged applications Over-privileged applications can lead to malicious applications taking advantage of them Find the cause of over privilege Reverse engineer to get the API calls Matches the API calls to the Permission Requests Identifies Permission not required STOWAWAY SAMPLE BatteryBoosters.apk ocd.apk STOWAWAY RESULTS Out 900 Apps 323 were over-privileged CAUSES FOR OVER-PRIVILEGING Small amount of over-privileging comes from developers purposely The majority of over-privileging comes from: Misunderstanding of the API API documentation errors CURRENT RESEARCH CURRENT RESEARCH Working on a tool to quantify a threat level when a user downloads an application using the permission manifest file Must be able to run fast with low overhead Detect multiple attacks including: Spam attacks DoS Battery exhaustive Privacy violation Provide a user with accurate evaluation of how much of a threat the application presents CURRENT RESEARCH Gather permission manifest files from known safe apps Using frequency counts of label-label occurrence for all label possibility (114 – Labels) Use the matrices to calculate risk Global Categorical Global Manifest Matrix (GMM) Categorical Manifest Matrix (CMM) Use the matrices to build graphs to look for possible attacks Manifest Permission Graphs (MPG) GMM & CMM Store the counts into matrix L1 – Manifest Label fL1 – Frequency count for manifest label fL1,L2 – Frequency count for manifest label 1 and 2 Perform statistical analysis using the frequency counts Labels counts with low frequency may pose more risk Perform matrix operations to find anomalies EXTRACTED PERMISSIONS MPG Use the matrices to build Manifest Graphs Frequency counts become weights Lower weights account for less connection between two labels Run graphing algorithms with the un-trusted application to find possible malicious activity Graphs allow us to visually see the potential for security leaks PERMISSION MANIFEST ISSUES Manifest file does not allow us to know how many times a permission is requested during run-time The order in which the permission are used The manifest file does not incorporate all sensors Accelerometer is accessed directly through API Designers use this sensor to build other applications that go beyond the sensors original intention Opens a possible hole for a leak of private information. FUTURE WORK Still lots of research to pursue: Devices are getting more CPUs and Memory Does this allow us to reverse engineer on the mobile device What about those adds that pop up while using an app What kind of information do they collect on a user Do they inform the user about the information they are collecting. Who has access to this information CONCLUSION Further research in security and privacy is vital as the use of smart device increases User knowledge is a major part of protection scheme Manifest file provides a good starting point to installtime protection but requires refinement Users need both install-time and run-time protection to be better protected As long as people have malicious intent there will always be malicious programs to protect against QUESTIONS REFERENCES  Android Manifest Permission Reference, http://developer.android.com/reference/android/Manifest.permission.html 2012.  K. W. Y. Au, Y. F. Zhou, Z. Huang, P. Gill and D. Lie. Short paper: A look at smartphone permission models. Presented at Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. 2011, .  D. Barrera, H. G. Kayacik, P. C. van Oorschot and A. Somayaji. A methodology for empirical analysis of permission-based security models and its application to android. Presented at Proceedings of the 17th ACM Conference on Computer and Communications Security. 2010, .  J. Bickford, R. O'Hare, A. Baliga, V. Ganapathy and L. Iftode. Rootkits on smart phones: Attacks, implications and opportunities. Presented at Proceedings of the Eleventh Workshop on Mobile Computing Systems & Applications. 2010, .  S. Bugiel, L. Davi, A. Dmitrienko, T. Fischer and A. R. Sadeghi. XManDroid: A new android evolution to mitigate privilege escalation attacks. Security 2011.  J. Burns. Developing secure mobile applications for android. White Paper of iSEC Partners 2008.  M. Conti, V. Nguyen and B. Crispo. CRePE: Context-related policy enforcement for android. Information Security pp. 331-345. 2011.  R. Dantu, P. Kolan and J. Cangussu. Network risk management using attacker profiling. Security and Communication Networks 2(1), pp. 83-96. 2009.  L. Davi, A. Dmitrienko, A. R. Sadeghi and M. Winandy. Privilege escalation attacks on android. Information Security pp. 346-360. 2011.  W. Enck. Defending users against smartphone apps: Techniques and future directions. REFERENCES  W. Enck, D. Octeau, P. McDaniel and S. Chaudhuri. A study of android application security. Presented at USENIX Security. 2011, .  W. Enck, M. Ongtang and P. McDaniel. On lightweight mobile phone application certification. Presented at Proceedings of the 16th ACM Conference on Computer and Communications Security. 2009, .  W. Enck, M. Ongtang and P. McDaniel. Understanding android security. Security & Privacy, IEEE 7(1), pp. 50-57. 2009.  A. P. Felt, E. Chin, S. Hanna, D. Song and D. Wagner. Android permissions demystified. Presented at Proceedings of the 18th ACM Conference on Computer and Communications Security. 2011, .  A. P. Felt, K. Greenwood and D. Wagner. The effectiveness of application permissions. Presented at Proc. of the USENIX Conference on Web Application Development. 2011, .  A. P. Fuchs, A. Chaudhuri and J. S. Foster. SCanDroid: Automated security certification of android applications. Manuscript, Univ.of Maryland, Http://www.Cs.Umd.Edu/~ avik/projects/scandroidascaa 2009.  C. Gehrmann and P. Ståhl. Mobile platform security. ERICSSON REVIEW the Telecommunications Technology Journal 2pp. 59-70. 2008.  K. Kostiainen, E. Reshetova, J. E. Ekberg and N. Asokan. Old, new, borrowed, blue--: A perspective on the evolution of mobile platform security architectures. Presented at Proceedings of the First ACM Conference on Data and Application Security and Privacy. 2011, .  D. Muthukumaran, A. Sawani, J. Schiffman, B. M. Jung and T. Jaeger. Measuring integrity on mobile phone systems. Presented at Proceedings of the 13th ACM Symposium on Access Control Models and Technologies. 2008, .  M. Nauman, S. Khan and X. Zhang. Apex: Extending android permission model and enforcement with user-defined runtime constraints. Presented at Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security. 2010, . REFERENCES  M. Ongtang, S. McLaughlin, W. Enck and P. McDaniel. Semantically rich applicationcentric security in android. Presented at Computer Security Applications Conference, 2009. ACSAC'09. Annual. 2009, .  I. Rassameeroj and Y. Tanahashi. Various approaches in analyzing android applications with its permission-based security models. Presented at Electro/Information Technology (EIT), 2011 IEEE International Conference on. 2011, .  G. Russello, B. Crispo, E. Fernandes and Y. Zhauniarovich. YAASE: Yet another android security extension. Presented at Privacy, Security, Risk and Trust (PASSAT), 2011 IEEE Third International Conference on and 2011 IEEE Third International Confernece on Social Computing (SocialCom). 2011.  A. Shabtai, Y. Fledel and Y. Elovici. Securing android-powered mobile devices using SELinux. Security & Privacy, IEEE 8(3), pp. 36-44. 2010.  W. Shin, S. Kiyomoto, K. Fukushima and T. Tanaka. A formal model to analyze the permission authorization and enforcement in the android framework. Presented at Social Computing (SocialCom), 2010 IEEE Second International Conference on. 2010, .  W. Shin, S. Kwak, S. Kiyomoto, K. Fukushima and T. Tanaka. A small but nonnegligible flaw in the android permission scheme. Presented at Policies for Distributed Systems and Networks (POLICY), 2010 IEEE International Symposium on. 2010, .  W. Tang, G. Jin, J. He and X. Jiang. Extending android security enforcement with a security distance model. Presented at Internet Technology and Applications (iTAP), 2011 International Conference on. 2011, .