Android Declassification Infrastructure

36
Android Declassificati on Infrastructure Matan David Yuval Evron Project Advisor: Roei Schuster 1

description

Android Declassification Infrastructure. Matan David Yuval Evron Project Advisor: Roei Schuster. Smart Phones. Go with us everywhere we go. Getting richer in capabilities and sensors. We install different applications on our phone. - PowerPoint PPT Presentation

Transcript of Android Declassification Infrastructure

Page 1: Android Declassification Infrastructure

Android Declassification Infrastructure

Matan DavidYuval Evron

Project Advisor: Roei Schuster

1

Page 2: Android Declassification Infrastructure

Smart Phones

• Go with us everywhere we go.• Getting richer in capabilities and sensors.• We install different applications on our phone.• An over-privileged application could pose a

serious threat to us as end users.

Page 3: Android Declassification Infrastructure

Android OS

• Unveiled by Google at 2007.• Based on the Linux OS.• Used by 50% of smartphone

owners in the U.S.• Over 400 million Android devices in use by

February 2012.• Over 1,000,000 Android devices activated

every day.

3

Page 4: Android Declassification Infrastructure

Android Permissions

• Enables apps to “communicate” with different hardware components (Camera, SD Card..)• <uses-permission android:name="android.permission.CAMERA"/>• Not very fine grained.• Each permission grants access to not only one service, but to several.

4

Page 5: Android Declassification Infrastructure

Our Project

• Does not involve changing the OS infrastructure itself.

• Identify the most commonly used and most vulnerable

permissions .• Subdivide them into smaller,

finer grained permissions.• A “Declassifier”.

5

Page 6: Android Declassification Infrastructure

Project Goals

• Enable much safer Android programming.• Applications utilizing our infrastructure will be less privileged and more secure.• No compromise on application functionality.• Make porting of applications as simple as

possible.

Page 7: Android Declassification Infrastructure

Success Criteria

• Try to influence as many applications as possible.

• Success will be measured by revising consumer applications, limiting their privileges, while preserving their original capabilities.

7

Page 8: Android Declassification Infrastructure

Implemented Declassifier Services1. Android Permission – android.permission.READ_CONTACTS

Declassifier Permissions: my.declassifier.CONTACTS_PHOTO_BY_NAME_PERMISSION my.declassifier.CONTACTS_PHONE_BY_NAME_PERMISSION my.declassifier.CONTACTS_ADDRESS_BY_NAME_PERMISSION my.declassifier.CONTACTS_BIRTHDAY_BY_NAME_PERMISSION my.declassifier.CONTACTS_EMAIL_BY_NAME_PERMISSION my.declassifier.CONTACTS_IS_STARRED_BY_NUMBER_PERMISSION

2. Android Permission - android.permission.WRITE_EXTERNAL_STORAGE Declassifier Permissions:

my.declassifier.EXTERNALSTORAGE_WRITE_FILE_PERMISSION my.declassifier.EXTERNALSTORAGE_DELETE_FILE_PERMISSION my.declassifier.EXTERNALSTORAGE_ALL_FILENAMES_PERMISSION my.declassifier.EXTERNALSTORAGE_CLEAR_ALL_DATA_PERMISSION

3. Android Permission – android.permission.READ_PHONE_STATE Declassifier Permissions:

my.declassifier.PHONE_STATED_READ_PHONE_TYPE_PERMISSION my.declassifier.PHONE_STATE_READ_SUBSCRIBER_ID_PERMISSION my.declassifier.PHONE_STATE_READ_CALL_STATE_PERMISSION my.declassifier.PHONE_STATE_READ_SIM_SERIAL_NUMBER_PERMISSION

Page 9: Android Declassification Infrastructure

Implemented Declassifier Services

4. Android Permission - android.permission.READ_CALENDAR

Declassifier Permissions:4. my.declassifier.CALENDAR_EVENT_DATE_BY_TITLE_PERMISSION5. my.declassifier.CALENDAR_LOCATION_BY_TITLE_PERMISSION6. my.declassifier.CALENDAR_DESCRIPTION_BY_TITLE_PERMISSION

5. Android Permission - android.permission.RECORD_AUDIO

Declassifier Permissions: my.declassifier.START_VOICE_RECORD_PERMISSION

6. Android Permission - android.permission.CHANGE_WIFI_STATE

Declassifier Permissions: my.declassifier.TURN_OFF_WIFI_PERMISSION my.declassifier.TURN_ON_WIFI_PERMISSION my.declassifier.CONNECT_TO_WIFI_PERMISSION

Page 10: Android Declassification Infrastructure

ImplementationWe broke down our Declassifier into 3 types:I. BroadcastReceiver –• The app sends an ordered broadcast, with all the information

encapsulated inside an Intent.

Intent i = new Intent("com.example.Declassifier. CALENDAR_EVENT_BY_TITLE_ACTION");i.putExtra("Title",titleNameStr);

• The app also supplies a custom BroadcastReceiver which will handle the Declassifier’s result (callback mechanism).

• The Declassifier filters out requests which to not satisfy the relevant permissions, and the app filters out returned results from unauthorized sources.

Page 11: Android Declassification Infrastructure

Implementation

II. ContentProvider – • Encapsulates data and provides it to applications through the

single ContentResolver interface.• Content is queried:

Uri uri = Uri.parse("content://" + AUTHORITY + "/" + BASE_PATH + "/" + GET_EVENT_DESCRIPTION_BY_TITLE);Cursor cursor = cr.query(uri,null,selection,null,null);

• A cursor to the content is returned.• The Declassifier checks if the given URI is permitted access

(using the path-permission mechanism) and filters out queries that are not.

Page 12: Android Declassification Infrastructure

Implementation

III. Activity - • Pops up a confirmation screen on the service the

3rd party application is trying to access.• The User has the option of granting or denying the

application access.• If permission is granted, the calling application uses

service as needed.• If permission is denied, the calling application will

return appropriate message and end running method.

Page 13: Android Declassification Infrastructure

Ported Applications• SMS Popup – For use with the Phone State declassifier• http://code.google.com/p/android-smspopup/• Auto Answer – For use with the Contacts declassifier.• http://code.google.com/p/auto-answer/• My Simple Notepad – For use with the External Storage

declassifier.• http://code.google.com/p/my-simple-notepad/feeds• Wifi Compass – For use with the Wifi declassifier.• http://code.google.com/p/wificompass/• GVoiceMail – For use with the Voice Record declassifier.• http://code.google.com/p/gvoicemail/

Page 14: Android Declassification Infrastructure

Running Examples - Auto Answer

Page 15: Android Declassification Infrastructure

Running Examples - Auto Answer

Page 16: Android Declassification Infrastructure

Running Examples - Auto Answer

Page 17: Android Declassification Infrastructure

Running Examples - GVoiceMail

Page 18: Android Declassification Infrastructure

Running Examples - GVoiceMail

Page 19: Android Declassification Infrastructure

Running Examples - GVoiceMail

Page 20: Android Declassification Infrastructure

Running Examples - GVoiceMail

Page 21: Android Declassification Infrastructure

Running Examples - GVoiceMail

Page 22: Android Declassification Infrastructure

Running Examples - wificompass

Page 23: Android Declassification Infrastructure

Running Examples - wificompass

Page 24: Android Declassification Infrastructure

Running Examples - wificompass

Page 25: Android Declassification Infrastructure

Running Examples - wificompass

Page 26: Android Declassification Infrastructure

Running Examples - wificompass

Page 27: Android Declassification Infrastructure

Running Examples - wificompass

Page 28: Android Declassification Infrastructure

Running Examples - wificompass

Page 29: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 30: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 31: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 32: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 33: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 34: Android Declassification Infrastructure

Running Examples - my-simple-notepad

Page 35: Android Declassification Infrastructure

Running Examples - SMSPopup

Page 36: Android Declassification Infrastructure

Running Examples - SMSPopup