Adrienne Porter Felt
I am a computer science Ph.D. candidate at UC Berkeley, researching web and smartphone security. My primary research topic is the design of permission systems for modern platforms like web browsers and smartphones. My advisor is David Wagner. I am a student instructor at the UC Berkeley Self-Paced Center, where I teach Python, Java, and Unix.

I write a research blog on smartphone and web security.
Publications
Android Permissions: User Attention, Comprehension, and Behavior
Adrienne Porter Felt, Elizabeth Ha, Serge Egelman, Ariel Haney, Erika Chin,
and David Wagner
UC Berkeley Technical Report 2012 (in submission)
[abstract] [paper]
Android's permission system is intended to inform users about the risks of installing applications. When a user installs an application, he or she has the opportunity to review the application's permission requests and cancel the installation if the permissions are excessive or objectionable. We examine whether the Android permission system is effective at warning users. In particular, we evaluate whether Android users pay attention to, understand, and act on permission information during installation. We performed two usability studies: an Internet survey of 308 Android users, and a laboratory study where we interviewed and observed 25 Android users. Study participants displayed low attention and comprehension rates: both the Internet survey and laboratory study found that 17% of people paid attention to permissions during installation, and only 3% of Internet survey respondents could correctly answer all three permission comprehension questions. This indicates that current Android permission warnings do not help most users make correct security decisions. However, a notable minority of users demonstrated both awareness of permission warnings and reasonable rates of comprehension. We present recommendations for improving user attention and comprehension, as well as identify open challenges.

[hide abstract]
Android Permissions Demystified
Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, and David Wagner
ACM Conference on Computer and Communication Security (CCS) 2011
[abstract] [paper] [tool and data] [slides]
Android provides third-party applications with an extensive API that includes access to phone hardware, settings, and user data. Access to privacy- and security-relevant parts of the API is controlled with an install-time application permission system. We study Android applications to determine whether Android developers follow least privilege with their permission requests. We built Stowaway, a tool that detects overprivilege in compiled Android applications. Stowaway determines the set of API calls that an application uses and then maps those API calls to permissions. We used automated testing tools on the Android API in order to build the permission map that is necessary for detecting overprivilege. We apply Stowaway to a set of 940 applications and find that about one-third are overprivileged. We investigate the causes of overprivilege and find evidence that developers are trying to follow least privilege but sometimes fail due to insufficient API documentation.

[hide abstract]
A Survey of Mobile Malware in the Wild
Adrienne Porter Felt, Matthew Finifter, Erika Chin, Steve Hanna, and David Wagner
ACM Workshop on Security and Privacy in Mobile Devices (SPSM) 2011
[abstract] [paper] [malware data] [slides]
Mobile malware is rapidly becoming a serious threat. In this paper, we survey the current state of mobile malware in the wild. We analyze the incentives behind 46 pieces of iOS, Android, and Symbian malware that spread in the wild from 2009 to 2011. We also use this data set to evaluate the effectiveness of techniques for preventing and identifying mobile malware. After observing that 4 pieces of malware use root exploits to mount sophisticated attacks on Android phones, we also examine the incentives that cause non-malicious smartphone tinkerers to publish root exploits and survey the availability of root exploits.

[hide abstract]
Permission Re-Delegation: Attacks and Defenses
Adrienne Porter Felt, Helen Wang, Alex Moshchuk, Steve Hanna, and Erika Chin
USENIX Security Symposium 2011
[abstract] [paper] [attack video] [slides]
Modern browsers and smartphone operating systems treat applications as mutually untrusting, potentially malicious principals. Applications are (1) isolated except for explicit IPC or inter-application communication channels and (2) unprivileged by default, requiring user permission for additional privileges. Although inter-application communication supports useful collaboration, it also introduces the risk of permission re-delegation. Permission re-delegation occurs when an application with permissions performs a privileged task for an application without permissions. This undermines the requirement that the user approve each application's access to privileged devices and data. We discuss permission re-delegation and demonstrate its risk by launching real-world attacks on Android system applications; several of the vulnerabilities have been confirmed as bugs.

We discuss possible ways to address permission re-delegation and present IPC Inspection, a new OS mechanism for defending against permission re-delegation. IPC Inspection prevents opportunities for permission re-delegation by reducing an application's permissions after it receives communication from a less privileged application. We have implemented IPC Inspection for a browser and Android, and we show that it prevents the attacks we found in the Android system applications.

[hide abstract]
The Effectiveness of Application Permissions
Adrienne Porter Felt, Kate Greenwood, and David Wagner
USENIX Conference on Web Application Development (WebApps) 2011
[abstract] [paper] [slides]
Traditional user-based permission systems assign the user's full privileges to all applications. Modern platforms are transitioning to a new model, in which each application has a different set of permissions based on its requirements. Application permissions offer several advantages over traditional user-based permissions, but these benefits rely on the assumption that applications generally require less than full privileges. We explore whether that assumption is realistic, which provides insight into the value of application permissions.

We perform case studies on two platforms with application permissions, the Google Chrome extension system and the Android OS. We collect the permission requirements of a large set of Google Chrome extensions and Android applications. From this data, we evaluate whether application permissions are effective at protecting users. Our results indicate that application permissions can have a positive impact on system security when applications' permission requirements are declared up-front by the developer, but can be improved.

[hide abstract]
Analyzing Inter-Application Communication in Android
Erika Chin, Adrienne Porter Felt, Kate Greenwood, and David Wagner
International Conference on Mobile Systems, Applications, and Services (MobiSys) 2011
[abstract] [paper] [tool] [Erika's slides]
Modern smartphone operating systems support the development of third-party applications with open system APIs. In addition to an open API, the Android operating system also provides a rich inter-application message passing system. This encourages inter-application collaboration and reduces developer burden by facilitating component reuse. Unfortunately, message passing is also an application attack surface. The content of messages can be sniffed, modified, stolen, or replaced, which can compromise user privacy. Also, a malicious application can inject forged or otherwise malicious messages, which can lead to breaches of user data and violate application security policies.

We examine Android application interaction and identify security risks in application components. We provide a tool, ComDroid, that detects application communication vulnerabilities. ComDroid can be used by developers to analyze their own applications before release, by application reviewers to analyze applications in the Android Market, and by end users. We analyzed 20 applications with the help of ComDroid and found 34 exploitable vulnerabilities; 12 of the 20 applications have at least one vulnerability.

[hide abstract]
Phishing on Mobile Devices
Adrienne Porter Felt and David Wagner
Workshop on Web 2.0 Security and Privacy (W2SP) 2011
[abstract] [paper] [slides]
This work was mentioned in the news: article, article, article
We assess the risk of phishing on mobile platforms. Mobile operating systems and browsers lack secure application identity indicators, so the user cannot always identify whether a link has taken her to the expected application. We conduct a systematic analysis of ways in which mobile applications and web sites link to each other. To evaluate the risk, we study 85 web sites and 100 mobile applications and discover that web sites and applications regularly ask users to type their passwords into contexts that are vulnerable to spoofing. Our implementation of sample phishing attacks on the Android and iOS platforms demonstrates that attackers can spoof legitimate applications with high accuracy, suggesting that the risk of phishing attacks on mobile platforms is greater than has previously been appreciated.

[hide abstract]
Diesel: Applying Privilege Separation to Database Access
Adrienne Porter Felt, Matthew Finifter, Joel Weinberger, and David Wagner
ACM Symposium on Information, Computer and Communications Security (AsiaCCS) 2011 [abstract] [short paper] [tech report] [Matt's slides]
Database-backed applications typically grant complete database access to every part of the application. In this scenario, a flaw in one module can expose data that the module never uses for legitimate purposes. Drawing parallels to traditional privilege separation, we argue that database data should be subject to limitations such that each section of code receives access to only the data it needs. We call this data separation. Data separation defends against SQL-based errors including buggy queries and SQL injection attacks and facilitates code review, since a module's policy makes the extent of its database access explicit to programmers and code reviewers. We construct a system called Diesel, which implements data separation by intercepting database queries and applying modules' restrictions to the queries. We evaluate Diesel on three widely-used applications: Drupal, JForum, and WordPress.

[hide abstract]
Object Views: Fine-Grained Sharing in Browsers
Leo A. Meyerovich, Adrienne Porter Felt, and Mark S. Miller
World Wide Web (WWW) 2010
[abstract] [paper]
Browsers do not currently support the secure sharing of JavaScript objects between principals. We present this problem as the need for object views, which are consistent and controllable versions of objects. Multiple views can be made for the same object and customized for the recipients. We implement object views with a JavaScript library that wraps shared objects and interposes on all access attempts. The security challenge is to fully mediate access to objects shared through a view and prevent privilege escalation. We discuss how object views can be deployed in two settings: same-origin sharing with rewriting-based JavaScript isolation systems like Google Caja, and inter-origin sharing between browser frames over a message-passing channel.

To facilitate simple document sharing, we build a policy system for declaratively defining policies for document object views. Notably, our document policy system makes it possible to hide elements without breaking document structure invariants. Developers can control the fine-grained behavior of object views with an aspect system that accepts programmatic policies.

[hide abstract]
Protecting Browsers from Extension Vulnerabilities
Adam Barth, Adrienne Porter Felt, Prateek Saxena, and Aaron Boodman
Network and Distributed System Security Symposium (NDSS) 2010
[abstract] [paper] [slides]
Browser extensions are remarkably popular, with one in three Firefox users running at least one extension. Although well-intentioned, extension developers are often not security experts and write buggy code that can be exploited by malicious web site operators. In the Firefox extension system, these exploits are dangerous because extensions run with the user's full privileges and can read and write arbitrary files and launch new processes. In this paper, we analyze 25 popular Firefox extensions and find that 88% of these extensions need less than the full set of available privileges. Additionally, we find that 76% of these extensions use un- necessarily powerful APIs, making it difficult to reduce their privileges. We propose a new browser extension system that improves security by using least privilege, privilege separation, and strong isolation. Our system limits the misdeeds an attacker can perform through an extension vulnerability. Our design has been adopted as the Google Chrome extension system.

[hide abstract]
Privacy Protection for Social Networking APIs
Adrienne Porter Felt and David Evans
Workshop on Web 2.0 Security and Privacy (W2SP) 2008
[abstract] [paper]
This work was mentioned in the news: article, article, article
Social networking APIs integrate third-party content into the site and give third-party developers access to user data. These open interfaces enable popular site enhancements but pose serious privacy risks by exposing user data to third-party developers. We address the privacy risks associated with social networking APIs by presenting a privacy-by-proxy design for a privacy-preserving API that is motivated by an analysis of the data needs and uses of Facebook applications. Our study of 150 popular Facebook applications reveals that nearly all applications could maintain their functionality using a limited interface that only provides access to an anonymized social graph and placeholders for user data. Since the platform host can control the third party applications' output, privacy-by-proxy can be accomplished without major changes to the platform architecture or applications by using new tags and data transformations.

[hide abstract]
Talking to Strangers Without Taking Their Candy: Isolating Proxied Content
Adrienne Porter Felt, Pieter Hooimeijer, David Evans, Wes Weimer
Workshop on Social Network Systems (SNS) 2008
[abstract] [paper]

Social networks have begun supporting external content integration with platforms like OpenSocial and the Facebook API. These platforms let users install third-party applications and are a popular example of a mash- up. Content integration is often accomplished by proxying the third-party content or importing third-party scripts. However, these methods introduce serious risks of user impersonation and data exposure. Modern browsers provide no mechanism to differentiate between trusted and untrusted embedded content. As a result, content providers are forced to trust third-party scripts or ensure user safety by means of server-side code sanitization. We demonstrate the difficulties of server-side code filtering - and the ramifications of its failure - with an example from the Facebook Platform. We then propose browser modifications that would distinguish between trusted and untrusted content and enforce their separation.

[hide abstract]
Non-Peer-Reviewed
The Death of the Internet. Markus Jakobsson, Editor
"Phishing on Mobile Devices" by Adrienne Porter Felt
To be published in early 2012
An Evaluation of the Per-Application Permission Model
Adrienne Porter Felt
Lunch talk at Mozilla, September 2010
[abstract] [talk slides]

Traditional user-based permission systems assign the user's full privileges to all applications. Modern application platforms (like Android and HTML5) use a per-application permission model, in which each application has a different set of privileges based on its requirements. In theory, the per-application permission model limits the impact of vulnerabilities to applications' declared permissions, informs users of the risks of applications, and facilitates a centralized review process. We explore whether these benefits are being realized in practice by performing case studies on Android and the Google Chrome extension system. This talk will cover a set of studies on Android applications and Chrome extensions that evaluate application permission requirements, application overprivilege, malware permission usage, and the permissions leaked by buggy applications. It will also include some preliminary results on user understanding of Android permission requests. From these studies, we distill lessons for the design of future application platforms.

[hide abstract]
Least Privilege for Browser Extensions
Adrienne Porter Felt
M.S. Thesis 2010
Defacing Facebook: A Security Case Study
Adrienne Porter Felt
White Paper 2007
apf/@/cs.berkeley.edu
731 Soda Hall

photo of me

Education
I hold a B.S. from the University of Virginia (2008) and a M.S. from UC Berkeley (2010). My Ph.D. is in progress.
Work
UC Berkeley 2008-
Graduate researcher
Fortify 2011-
Android consultant
Microsoft 2010
Intern with Helen Wang
Google 2008
Intern with the Caja team
Fellowships
2011:
Facebook Fellowship
2010:
Google Anita Borg Scholar
2009:
NSF Graduate Research Fellowship
2008:
UCB Chancellor's Fellowship
I'm married to Mark Murphy. We have a dog, Punky (portrait below).
woof