Earp: Principled Storage, Sharing, and Protection for Mobile Apps
Yuanzhong Xu, Tyler Hunt, Youngjin Kwon, Martin Georgiev,
Vitaly Shmatikov†, Emmett Witchel
UT !Austin, !†Cornell !Tech
Santa !Clara, !CA, !3/18/2016
Earp: Principled Storage, Sharing, and Protection for Mobile Apps - - PowerPoint PPT Presentation
Earp: Principled Storage, Sharing, and Protection for Mobile Apps Yuanzhong Xu , Tyler Hunt, Youngjin Kwon, Martin Georgiev, Vitaly Shmatikov , Emmett Witchel UT !Austin, ! Cornell !Tech Santa !Clara, !CA, !3/18/2016 Desktop
Santa !Clara, !CA, !3/18/2016
Files
work individually
store and exchange data, in the form of files
2
Files
OS protects data:
permissions
handles (file descriptors)
access control checks
file handle
3
the platform — an app “ecosystem”
services to other apps
storage user login contacts, calendar, media collections
4
storage user login contacts, calendar, media collections
interactions
access control checks
Check what apps have access to what data
access control checks
access
5
Different high-level semantics: not just files!
how data structures represent semantics
requirements
ad hoc checks
contact info photo album calendar events
6
access control checks
DB rows
Example: implement a photo manager
Photo files Thumbnails
…
7
DB rows Photo files Thumbnails
public
private photos and albums
photos and albums
Example: implement a photo manager
8
DB rows Photo files
— ACL columns in DB, append WHERE clauses in queries
— permission bits not enough for many apps
Transfer via IPC, no direct file access…
What is the API?
apps to access photos?
about a photo?
Thumbnails
Problem: ad hoc checks are hard, error-prone Example: implement a photo manager
9
Specifications
protection…
privilege
DB rows Photo files Thumbnails
10
Specifications
DB rows Photo files Thumbnails
public
protection requirement
Enforcement
access control checks
no ad hoc checks in apps
12
Specifications
? ? ?
Enforcement DB rows Photo files Thumbnails
public
access control checks
13
Highly structured app-level data Unstructured byte streams
13
No visibility to structures
Specifications
DB rows Photo files Thumbnails
public
Enforcement
access control checks
Highly structured app-level data Platform-level structured abstraction & protection
14
desc
— capability handle, representing an access control view (but more than just a DB view)
Relational
a platform-level abstraction
App
requirements with the data model — annotated relational schema
specify
Platform
15
Platform App
No need for OAuth
desc Relational
16
Virtual table Virtual table Virtual tables
Service callbacks
function add () {…}; function list() {…}; …
Proxy
Database
16
database/service
desc
downgrade: add more restrictions e.g., exclude some sensitive rows/columns
desc
transfer: (temporarily) delegate access to another app
desc
17
Operations:
textual tags photos albums
FILE-type column
18
textual tags photos albums
public
Protection requirements:
photos and albums
albums
19
textual tags photos albums
Per-object permissions (per-row ACLs)
20
Problem with permissions only: sharing collections of data.
textual tags photos albums
Share this album? Need to transitively updating ACLs of many objects!
21
textual tags photos albums
confers access confers access
Capability relationships:
Cross-table relationships can confer access rights, in one direction (red arrows).
22
with simple ACLs
23
textual tags photos albums
confers access confers access
Capability relationships make access rights on one object may depend on other objects Cross-table checks for every access?
24
descriptors based on query results Solution: “buffer” computed access rights in descriptors
d0
25
successful query proves access
d1 d2
Directly allow access to the photo
d3
database
details about descriptors
management
desc
APIs
26
A modified Firefox OS:
code (HTML5, JavaScript)
in the platform (browser) Paper discusses ways to apply Earp innovations to Android
Browser runtime (platform)
App sandbox
APP in JavaScript
API for structured data Earp reference monitor JavaScript Engine DOM SQLite databases services
27
Local apps
categories and data fields
to attachments Proxies for remote services
28
Microbenchmarks: mostly
access control is efficient
(built on top of SQLite)
29
Macrobenchmarks for remote services
latency
Elgg read Elgg write Google Drive write Google Drive read
local latency: app<->proxy remote latecy: proxy<->remote
30
31