Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als (...

60
Authen’cator Leakage Through Backup Channels on Android Guangdong Bai Na’onal University of Singapore

Transcript of Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als (...

Page 1: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Authen'catorLeakageThroughBackupChannelsonAndroid

GuangdongBai

Na'onalUniversityofSingapore

Page 2: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Webservicesareincreasinglydeliveredthroughmobileapps…

2

SocialNetworking

OnlineBanking EmailService

Page 3: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Can’twesimplyusemobilebrowsers?

3

V.S.

ü  Fulluseofdevice/APIsü Lessprogramminglimita'onü Runningfaster

ü CrossplaQormsü Reusablebrowserfunc'onality(JSengine,…)ü Developedfaster

Page 4: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Can’twesimplyusemobilebrowsers?

4

…the(mobile)browserhasbecomeasingleapplica'onswimminginaseaofapps.--FlurryInsights

Page 5: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Therefore,mobileappsplaythesameroleaswebbrowsers

5

HTTP/1.1200Set-Cookie:cookie1=87654321;domain=.idp.com----------------------------------------<bodyonload=foo()><script>vardomain="hfp://www.sp.com/login";varauthToken="3fa09d24a3ce";varuEmail="[email protected]";varidpSign="2oOs5u29erIas…“;func'onfoo(){varmessage=uEmail+"&"+authToken+"&"+idpSign;window.postMessage(domain,message);}</script></body>

GETHTTP/1.1

WebServer App

②Contentrendering

①Communica'on

protocols

Page 6: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

However,thisisanon-trivialtask…

6

WebServer App

②Contentrendering

①Communica'on

protocols

•  Codeinjec'onafacks–  Havebeenextensivelystudied[CCS’13,CCS’14,ESORICS’15]

•  Securityofcommunica'onprotocols–  Novelafacksurface–  NovelTrustedCompu'ngBase(TCB)

Page 7: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Focusofthistalk:webauthen'ca'onprotocolsonAndroid •  Implementa'onofwebauthen'ca'onschemesonAndroid

–  Authen'ca'onprocess–  Howauthen'ca'oncreden'als(authen'cators)aremanaged

•  Backupchannel:anewafacksurfaceagainstwebauthen'ca'ononAndroidplaQorm–  Whybackupisadangerousfunc'onalityonAndroid–  Howtoabusebackupchannels

•  Casestudiesandmi'ga'ons

7

Page 8: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sec'on1.WebAuthen'ca'ononAndroid

Page 9: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Webauthen'ca'on:safeguardtowebaccounts

•  WebAuthen'ca'on–  Aprocessbyservertoconfirmwhetheranen'ty(client)iswhoitdeclared –  Oneofthemostlyusedwebfunc'onali'es

9

Page 10: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

HowAndroidappsimplementwebauthen'ca'on?

•  Ourinves'ga'on–  Goal:tolearnapproachescontemporaryappsusetoimplementtheir

authen'ca'onschemes

–  Focus:howauthen'catorsaremanaged

–  Methodology:wehavemanuallyanalyzedtop-ranked100appsonGooglePlay(byreverseengineeringandtrafficanalysis)

10

Page 11: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Resultsummary

11Figuresource:hfp://geektechreviews.com/wp-content/uploads/2015/07/Top-10-Free-Android-Apps-Must-Have.jpg

TOP100

66withauthen'ca'on

schemes

34withoutauthen'ca'on

schemes

Standaloneappse.g.,newsbrowsers,mapsandvideoplayers

–  Basicauthen'ca'on(40)–  SingleSign-on(40)–  AndroidAccountManager(16)

Page 12: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Webauthen'ca'onscheme#1:Basicauthen'ca'on •  Basicauthen'ca'onstandsfortradi'onalauthen'ca'onschemes

onthebasisof–  Knowledge(e.g.,apasswordandsecurityques'ons)

•  34outof40appsusepassword-basedschemes

–  Ownership(e.g.,ahardwaretokenandamobilephone)•  6outof40appsuseSMS-basedone'mepasswordschemes

–  Inherence(e.g.,fingerprintandre'nalpafern)•  Noneisfound•  Fingerprintconfiden'alityatBlackHatUS2015byDr.WeiTao

12

Page 13: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Generalprocessofbasicauthen'ca'onondesktopbrowsers

13

WebServer

UID/PWD

•  Authen'cator–  Anauthen'ca'oncreden'alindica'ngclient’sloginsession–  E.g.,cookies,sessionID,OAuthTokenandOAuthCode

ü  Sameoriginpolicy(SOP)ü Contentsecuritypolicy(CSP)ü Cookieprotec'onü …

WebBrowser

Page 14: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Generalprocessofbasicauthen'ca'ononAndroidapps

14

WebServer

UID/PWD RestAPI

Webview

ContentProvider

SharedPreference

AndroidApp

InternalStorage /data/data/appname

Page 15: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Webauthen'ca'onscheme#2:SingleSign-on

•  SingleSign-On(SSO)–  Akerberos-likesinglecreden'al

authen'ca'onscheme

–  BrowserID(Mozilla)–  FacebookConnect

•  250+Millionusers,2,000,000websites–  OpenID

•  onebillionusers,50,000websites–  …

15

Page 16: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Threepar'esinSSO

16

User

Iden'tyProvider(IDP)

RelyingParty(RP)

e.g.,

e.g., Token

Page 17: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

SSOinAndroid •  RelyingParty(RP)

–  Applica'on•  Iden'typrovider(IDP)

–  SSOServiceisreleasedinformofSDK–  E.g.,FacebookConnect,TwiferID

17

Page 18: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Aconcreteprocess:Facebookconnect

18

Legend Secretcookies

OAuthAccesstoken

FacebookServer

RPapp

FacebookSDK

Android

/app/app/RP

Android

IDPapp

RPapp

FacebookSDK

/app/app/IDP /app/app/RP

Page 19: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Webauthen'ca'onscheme#3:AndroidAccountManager

19hfp://blog.udinic.com/2013/04/24/write-your-own-android-authen'cator/

•  AccountManager–  AnAndroidservicewhichprovidesadelegated

authen'ca'onserviceandcentralizedaccount/authen'catorcontrol

–  Pros•  Simplifiestheprocessforthedeveloper

–  Byimplemen'ngsomeinterface

•  Canhandlemul'pletokentypesforasingleaccount

•  Automa'callybackgroundupdate(SyncAdapters)

Page 20: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

BriefinghowAccountManagerworks •  Developerneedsonlyto…

–  TocreateanAccountAuthen)cator•  Addaccounts,accounttypes,authtoken

–  TocreateanAc'vity•  Throughwhichusersentercreden'als

•  Accountmanagerwill…–  Manageauthen'cators

•  Locatedinaccount.dbin/data/system/users/0

–  Updateauthen'catorsonbackground

20

Page 21: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Securityofauthen'ca'onschemes •  Securityofprotocolsinthreelayers

–  Design-levelsecurity:designandlogicflaws•  Anotoriousexample:flawsinNeedham-Schroederprotocol•  Protocolverifica'on:theoremproving(Proverif),modelchecking(PAT)

–  Implementa'on-levelsecurity•  Implementa'onerrors/bugsinthecode•  E.g.,GooglelDflaw:notallmessagesarecoveredinsignature(IEEES&P’12)Guessableauthen'cators(NDSS’13)

–  Infrastructure-levelsecurity•  Exploitsintheso|warestack(e.g.,OS,filesystem)thattheprotocolsrelyupon•  Apreviousstudy:passwordleakagethroughcompromisedADB(ClaudXiaoonHITCON’14)

21

Page 22: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Let’slookatinfrastructure-levelsecurityofwebauthen'ca'ononAndroid

22

UID/PWD RestAPI

Webview

ContentProvider

SharedPreference

AndroidApp

InternalStorage /data/data/appname

BasicAuthen'ca'on

Page 23: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Let’slookatinfrastructure-levelsecurityofwebauthen'ca'ononAndroid

23

SingleSign-on

Legend Secretcookies

OAuthAccesstoken

FacebookServer

RPapp

FacebookSDK

Android

/app/app/RP

Android

IDPapp

RPapp

FacebookSDK

/app/app/IDP /app/app/RP

Page 24: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Let’slookatinfrastructure-levelsecurityofwebauthen'ca'ononAndroid

24

SingleSign-on

BasicAuthen'ca'on

AccountManager

/app/app/appname

Theownerapp’sproprietarydirectory

Systemdirectory /data/system/users/0

Page 25: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Isola'onMechanisminAndroid

25

Sandbox Sandbox

/data/data/appname

✓✗

Uname/password

Whatifthesandboxisbypassed?

Page 26: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Backupfunc'onalityhastoviolatesandboxmechanism

26

Backupapp

Sandbox Sandbox

✓✗✓

Page 27: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sec'on2.BackuponAndroid

Page 28: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

TwowaystoimplementbackuponAndroid •  Root-basedbackup

–  Rootthedeviceandgrantrootprivilegetothebackupapps

•  ADB-basedbackup

28

Backupapp

Sandbox Sandbox

✓✓

Weconsideronlytobackupanapp’sdatalocatedinitsproprietaryfolder,insteadoftheuser’sdatacanbeaccessedthroughAPIslikecontactsandSMSmessages

Page 29: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

ADB-basedbackup •  ADB(AndroidDebugBridge)

–  ADBisaversa'lecommandlinetoolthatletsuserscommunicatewithanemulatorinstanceorconnectedAndroid-powereddevice.

–  Runningonsystem(orsignature)levelprivilege•  Root>system>user

•  HowdoesADB-basedbackupwork?(doweneed“addbackup”every'me?)

29

System level Android

proxy

1.  adbshell2.  app_processproxy User level

Backup app

Page 30: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

HowdoesanADBproxyconductbackup?

30

bu1backupappname>backupdata.ab

bu0restore<backupdata.ab

backup

restore

ANDROIDBACKUP11noneorAES-256

Reference:hfp://nelenkov.blogspot.sg/2012/06/unpacking-android-backups.html

magicformatversion

compressionflag

encryp'onalgo

compressedusingdeflatealgorithm

data

Page 31: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Howbackupcanbeathreattoauthen'ca'on?

31

BackupAppVic'mApp

Globallyreadablestorage

ADBProxy

MaliciousApp

Channel#1:BackupdataLeakage

Channel#2:BackupcapabilityLeakage

Page 32: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Asummaryofleakagethroughtheexis'ngbackupapps

Category Apps Installs Publiclyaccessible?

Backupdataencrypted?

Compromisedinterfaces?

Leakagepossible?

Root-based

MyBackup 1,000,000-5,000,000 SDcard ✗ -- ✓

Ul'mateBackup

500,000-1,000,000 SDcard ✗ -- ✓

EaseBackup 100,000-500,000 SDcard ✗ -- ✓

TitaniumBackup

10,000,000-50,000,000 SDcard ✗ -- ✓

ADB-based Helium 1,000,000-5,000,000 SDcard ✗ ✓ ✓

32

Page 33: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

AnalyzinganADB-basedBackupApp •  Helium

–  Oneofthebestappsin2013(www.gizmap.com/best-android-apps-2013/30238)–  Developer:ClockworkMod

•  DeveloperofCyanogenModAndroidOS•  Hasreleased19appsonGooglePlay,15millioninstalls

•  OuranalysisontheADB-basedappisenlightenedbyScreenMilker[NDSS’14]

33

Page 34: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

InternalsofHelium(obtainedbyreverseengineering)

34

ShellRunner ShellProxyService am startservice ①

/data/data/helium Local Socket Server

Android Helium

Legend control

flow

flow data

settings.db

Page 35: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

InternalsofHelium(obtainedbyreverseengineering)

35

ShellRunner ShellProxyService am startservice ①

/data/data/helium Local Socket Server

LocalBackup Main

Activity ⑴

⑵ ⑶ ⑷

SD Card

Android Helium

Legend control

flow

flow data

settings.db

Page 36: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

InternalsofHelium(obtainedbyreverseengineering)

36

ShellRunner ShellProxyService am startservice ①

/data/data/helium Local Socket Server

WebBackup

LocalBackup Main

HTTPServer

Activity

Asyn

⑵ ⑶ ⑷

SD Card

(i) (ii) (iii)

(iv)

Android Helium

Legend control

flow

flow data

settings.db

Page 37: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

AccessControlProtocolintheADBProxy

37

ADBProxy

LocalSocketServer HeliumMainapp

CodeofADBproxy

CodeofbroadcastPassword()

Page 38: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Alogicflaw

38

ADBProxy

LocalSocketServer HeliumMainapp

CodeofADBproxy

CodeofbroadcastPassword()

Page 39: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

HowhandleSocket()works?

39

handleSocket(){try{

while(true){r=getRequest();if(checkOTP(r)) serve(r);else throwexcep'on;}

catch{ //notterminate}}

Page 40: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Alogicflaw

40

ADBProxy

LocalSocketServer HeliumMainapp

CodeofADBproxy

CodeofbroadcastPassword()

Page 41: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Afack#1:Exploitthelogicflaw

41

ShellRunner ShellProxyService

AuthSniffer User

uninstall start

mHelium

Monitor uninstall events Attacker

Monitor install events Trick user to install mHelium

install

start

Helium uninstalled

Wrong token

•  Disadvantageoftheafacker–  Heliumneedstobeuninstalled–  Afackerneedstoinstallan

malwarewiththesamenameasHelium

•  Advantageoftheafacker–  OnceobtainingtheOTP,the

afackerisabletobackupthevic'mappatany'me(ac'veafack)

–  OnceobtainingtheOTP,theafackerisabletoconductotherhigh-privilegedac'ons(seehfp://developer.android.com/tools/help/adb.html)

Page 42: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Afack#2:InvoketheWebinterface

42

HTTPServeronport5000

URL Method HTTPBody DescripKon

hfp://IP:5000/api/package GET NULL Fetchthelistofinstalledapps

hfp://IP:5000/api/backup.zip POST Nameoftheapptobackup

Backup

hfp://IP:5000/api/restore.zip

POST Backupdata Restore

Page 43: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Afack#2:InvoketheWebinterface

43

HTTPServeronport5000

•  Disadvantageoftheafacker–  TheHTTPserverisclosedbydefaultandonlyopenwhenweb

backupisused(semi-ac'veafack)–  NeedsINTERNETpermission

•  Advantageoftheafacker–  Canbackuptargetvic'm–  EasiertoimplementthanAfack#1

Page 44: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Afack#3:Accessbackupdataonexternalstorage

44

•  Disadvantageoftheafacker–  Cannotchosetargetvic'm(passiveafack)

•  Advantageoftheafacker–  Easytoimplement

Page 45: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sec'on3.ImpactandCasestudies

Page 46: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

ExtentoftheADBbackup •  Theappswon’tbebackupbyADBproxywhen

–  UsingAndroidAccountManagerforauthen'ca'on–  Android:allowBackupisfalse

•  IfadeveloperdoesnotspecifyitinAndroidManifest.xml,itistruebydefault!!–  Ourstudyrevealsthatonly~10%appsspecifyitfalse.

46

Page 47: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Howmanyappsaresubjecttotheseafacks? •  DataSetI

–  Topranked100apps•  DataSetII

–  Randomlychosen10CategoriesofappsfromGoolgePlay–  Top10appsfromeachcategory

47Helium

Device 1 Device 2 Web Server

?

Attacker PC

Proxy ②

③ ④ ⑤

Victim App

Page 48: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Howmanyappsaresubjecttotheseafacks?

48

W/OAuthen'ca'on,

83

Infected,80 AccountManager,23

W/OBackup,14

Notinfected,

37

Page 49: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Casestudy#1:FacebookApp

49

POSThfps://b-api.facebook.com/method/auth.loginHTTP/1.1...User-Agent:[FBAN/FB4A;FBAV/9.0.0.26.28;FBBV/2403143;FBDM/email=alice.tester%40gmail.com&password=pwd&sig=452aca050cdce967a699e969076962f0&...

HTTP/1.1200OK...Content-Type:applica'on/json{"session_key":"5.71T...411696","access_token":"CAAAAUaZA...XW8ZD","session_cookies":[{"name":"c_user","value":“100003708411696","expires":"Thu,28May201510:11:48GMT","domain":".facebook.com"},{“name":"xs","value":"201:71TTJlPmwZwjXQ:2:1401271908:10025","expires":"Thu,28May201510:11:48GMT","domain":".facebook.com"},...]...}

Page 50: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Iden'fyingauthen'cators

50

access_token Creden'alsinsubsequentrequests,e.g.,pos'nganewpost

c_user Creden'alsindica'ngtheuser’sloginstate xs

prefs_db

/data/data/com.facebook.katana

Page 51: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Casestudy#2:FacebookSingleSign-on

51

user id/pwd

rpApp Facebook Server

c_user, xs verification

OAuth token

Facebook SDK

? user_info&OAuth token user_info

c_user, xs OAuth token

Authen'ca'on

Authoriza'on

• Authoriza'on:theusercancontrolwhatinforma'oncanbeaccessedbytherpApp.

Page 52: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Authen'catorsbelongingtotwoorigins?

52

FacebookServer

RPapp

FacebookSDK

Android

/app/app/RP

c_user

xs

OAuthtoken

facebook.com

rp.com

• Facebookcompletelydelegatesthesecrecyofitscreden'alstoRPapp?!

Page 53: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Usingc_userandxstologintouser’saccountandcompletelyviolateauthoriza'on…

53

Page 54: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Facebook’sopinion

54

FacebookSecurity

Butcouldn'tamaliciousapplica)onwithaWebViewalsostealusernamesandpasswordsasthey'resubmiKed?Oncetheuserisenteringtheircreden)alsoutsideofatrustedbrowser,there'sveryliKlethatwecandofromourendtoprotectthem.That'swhyit'ssoimportantthatmarketplaceslikeGooglePlayandApple'sAppStoretakestepstoprotectusersfrommaliciousapplica)ons.

Page 55: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sec'on4.Mi'ga'on

Page 56: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sugges'onstobackupappdevelopers •  BuildsecureADB-basedBackup

–  Preventbackupprivilegefromexposure•  VerifiedAccesscontroloftheADBproxy•  Secrecyofbackupdata

–  Followtheprincipleofleastprivilege•  Exposeonlybackup/restorefunc'onality

–  ManagelifecycleofADBproxy•  ADBproxyneveroutlivesthemainapp

56

Page 57: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

Sugges'onstowebappdevelopers •  Protectauthen'cators

–  Disableandroid:allowBackupifnotnecessary–  Avoidstoringpassword–  Shortenauthen'catorlife'me

•  Avoidimplementa'onownauthen'catormanagement–  UseAndroidAccountManager

57

Page 58: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

SummaryandTake-away •  Thedilemma

–  Backupfunc'onalityv.s.Confiden'ality–  Pushtheboundaryorbreakthesandbox?

•  ScreenMilker[NDSS’14]

•  Authen'ca'on–  Awarenessofinfrastructure-levelafacks

58

Page 59: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

References •  [CCS’13]Wang,Rui,etal."UnauthorizedorigincrossingonmobileplaQorms:Threatsand

mi'ga'on."•  [CCS’14]Jin,Xing,etal."Codeinjec'onafacksonHTML5-basedmobileapps:Characteriza'on,

detec'onandmi'ga'on."•  [ESORICS’15]Hassanshahi,Behnaz,etal."Web-to-Applica'onInjec'onAfacksonAndroid:

Characteriza'onandDetec'on."•  [IEEES&P’12]Wang,Rui,etal."Signingmeontoyouraccountsthroughfacebookandgoogle:A

traffic-guidedsecuritystudyofcommerciallydeployedsingle-sign-onwebservices.“•  [NDSS’13]Bai,Guangdong,etal.“AUTHSCAN:Automa'cExtrac'onofWebAuthen'ca'on

ProtocolsfromImplementa'ons.”•  [NDSS’14]Lin,Chia-Chi,etal."Screenmilker:Howtomilkyourandroidscreenforsecrets."

59

Page 60: Authen’cator Leakage Through Backup Channels on Android...– How authen’caon creden’als ( authen’cators) are managed • Backup channel: a new aack surface against web authen’caon

60

Thankyou!

[email protected]