1.04k likes | 1.2k Views
Cellular Networks and Mobile Computing COMS 6998- 10, Spring 2013. Instructor: Li Erran Li ( lel2139@columbia.edu ) http://www.cs.columbia.edu/ ~lierranli/coms6998- 10Spring2013/ Lecture 12: Mobile Platform Security: Attacks and Defenses. Mobile Security Attacks and Defenses.
E N D
Cellular Networks and Mobile ComputingCOMS 6998-10, Spring 2013 Instructor: Li Erran Li (lel2139@columbia.edu) http://www.cs.columbia.edu/~lierranli/coms6998-10Spring2013/ Lecture 12: Mobile Platform Security: Attacks and Defenses
Mobile Security Attacks and Defenses • Inter application communication related attacks (LianhaoQu and Joseph Orilogbon on QUIRE and Akhila on XManDroid) • Permission re-delegation (confused deputy attacks) • Collusion attacks • System vulnerability based attacks (Ying-Chi Meng and SichangLi on MoCFI) • Control flow attacks (code injection attacks) • Root exploits (e.g. adbd bug used by DroidKungfu malware) • Application specific attacks (Jill Jermyn and SnigdhaChalla on texting apps) Cellular Networks and Mobile Computing (COMS 6998-10)
19thAnnualNetwork&DistributedSystemSecuritySymposium TowardsTamingPrivilegeEscalation AttacksonAndroid AlexandraDmitrienko FraunhoferInstituteforSecureInformationTechnology,Darmstadt,Germany Ahmad-RezaSadeghi,BhargavaShastry FraunhoferSIT/CASED, Darmstadt,Germany SvenBugiel,LucasDavi TUDarmstadt/CASED, Germany ThomasFischer Ruhr-University Bochum Cellular Networks and Mobile Computing (COMS 6998-10) @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
AppInstallationinAndroid AndroidMarket MoviePlayer DownloadApp Permissions Install Requested permissionsare reasonable User Cellular Networks and Mobile Computing (COMS 6998-10) @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
Canappsgobeyondtheirprivileges? YES Privilegeescalationattacks Cellular Networks and Mobile Computing (COMS 6998-10) 3 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
ConfusedDeputyAttack Donothavearightpermission?Askyourneighbor! Malware Privileges:none Benignapp Privileges:P1 AndroidOS AndroidMiddleware 1)Invokebrowsertodownloadmaliciousfiles(Lineberryetal.,BlackHat 2010) 2)InvokePhoneapptoperformaphonecall(Encketal.,TechReport2008) 3)InvokeAndroidScriptingEnvironmenttosendSMSmessages(Davietal., ISC’2010) Cellular Networks and Mobile Computing (COMS 6998-10) 4 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
CollusionAttack Two(ormore)appscolludetolaunchtheattack Benignapp Privileges:P2 Malware Privileges:P1 Android SystemApp AndroidOS 1)Appscommunicatedirectly Example:ClaudioMarforioet.al,TechReportETHZurich Cellular Networks and Mobile Computing (COMS 6998-10) 5 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
CollusionAttack Two(ormore)appscolludetolaunchtheattack Benignapp Privileges:P2 Malware Privileges:P1 Android SystemApp AndroidOS 2)Appscommunicateviacovert(e.g.,volumesettings)orovert(e.g., contentproviders)channelsinAndroidSystemcomponents Example:Soundcomber(Schlegeletal.,NDSS’2011) Cellular Networks and Mobile Computing (COMS 6998-10) 6 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
Inter-ApplicationCommunication Inter-processcommunication(IPC) Intentsandremoteprocedurecalls Filesystem(files,Unixdomainsockets) Networksockets AppA AppB Applicationlayer Middleware Linuxkernel Reference Monitor Discretionary accesscontrol ofLinux IPC FileSystem Network Sockets Cellular Networks and Mobile Computing (COMS 6998-10) 7 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
RelatedWork AppA Perm.P1 AppB Perm.P2Perm.P3 Sensitive Data Installer Saint DalvikVM TaintDroid ReferenceMonitor Saint AppFence Porscha Mediator Paranoid Android Apex CRePE IPCInspection QUIRE TrustDroid Apex Kirin Permission Database StaticandOffline AnalysisTools ded ComDroid Stowaway AndroidMiddleware QUIRE TrustDroid LinuxKernel SELinux Cellular Networks and Mobile Computing (COMS 6998-10) 8 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
XManDroid: eXtendedMonitoringonAndroid Monitorsallcommunicationchannelsbetweenapps Validatesiftherequestedcommunicationlinkcompliestoasystem- centricsecuritypolicy AppA AppB Applicationlayer Middleware Linuxkernel Reference Monitor Discretionary accesscontrol ofLinux IPC FileSystem Network Sockets XManDroid Cellular Networks and Mobile Computing (COMS 6998-10) 9 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
XManDroidArchitecture AppB AppA Android Permissions System View Applicationlayer Read/WriteFile/Socket Reference Monitor Decision Maker CreateFile/Socket AndroidMiddleware Middlewarelayer Kernellayer LinuxDiscretionaryAccessControl XManDroidMandatoryAccessControl FileSystem/InternetSockets Cellular Networks and Mobile Computing (COMS 6998-10) 10 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
XManDroid’sSystemView: Graph-basedRepresentation Android Core SystemComponents Applicationsandboxes Files IPCcalls Accesstofiles Socketconnections Internetsockets 11 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER Cellular Networks and Mobile Computing (COMS 6998-10)
XManDroid:SimplifiedExample Android Core C P1 P2 B A PolicyRule: SandboxA:permissionP1,noP2 SandboxB:permissionP2,noP1 Communicationtype:Direct Decision:Deny 12 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER Cellular Networks and Mobile Computing (COMS 6998-10)
XManDroid:SimplifiedExample Android Core C P1 P2 B A PolicyRule: SandboxA:permissionP1,noP2 SandboxB:permissionP2,noP1 Communicationtype:Indirect Decision:Deny 13 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER Cellular Networks and Mobile Computing (COMS 6998-10)
Contributions Design Ageneral framework towardstaming privilege escalationattacks System-centric policy enforcement Implementation Kernel-level mandatoryaccess controlbasedon TOMOYO Callbackchannel betweenkernel- levelandthe middleware System-centric IPCcallchain trackingfor Intents(inspired byQUIRE) Tests Evaluation Studyoninter- application communication Cellular Networks and Mobile Computing (COMS 6998-10) 14 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
Evaluation 1 2 3 Effectiveness(attackprevention) Performance Rateoffalselydeniedcommunications Cellular Networks and Mobile Computing (COMS 6998-10) 15 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
StudyonApplicationCommunication Patterns Cellular Networks and Mobile Computing (COMS 6998-10) 16 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
IPC-basedApplicationCommunication Cellular Networks and Mobile Computing (COMS 6998-10) 17 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
FileandSocket-basedApplication Communication Cellular Networks and Mobile Computing (COMS 6998-10) 18 @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER
ConclusionandFutureWork Firstgeneralapproachtowardstacklingprivilegeescalation attacks(atapplicationlevel) Runtimemonitoring,butquiteefficient Nofalsenegatives Nofalsepositives,butconceptuallytheyarepossible Currentwork Largescaleevaluation Automaticpolicyengineering FullIPCcallchaintracking ApplyingXManDroidframework fordomainisolationonAndroid @FraunhoferSIT/CASED2012AlexandraDmitrienko,NDSS2012DONOTDISTRIBUTEFURTHER BizzTrust Cellular Networks and Mobile Computing (COMS 6998-10) 19
Cellular Networks and Mobile Computing (COMS 6998-10) 1 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 2 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 3 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 4 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 5 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
BBL3 entry ins,ins,ins,… exit BBL5 entry ins,ins,ins,… exit BBL1 entry ins,ins,ins,… exit BBL2 entry ins,ins,ins,… exit BBL4 entry ins,ins,ins,… exit Entry:Anyinstructionthatistargetofabranch(e.g.,firstinstructionofafunction) Exit: Anybranch(e.g.,indirectordirectjumpandcall,return) Cellular Networks and Mobile Computing (COMS 6998-10) 6 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
BBL3 BBL1 entry ins,ins,ins,… exit entry ins,ins,ins,… exit MaliciousCode Shellcode BBL2 1 CodeInjection entry ins,ins,ins,… exit LibraryCode InstructionSequences LibraryFunctions 2ROP;ret2libc BBL4 entry ins,ins,ins,… exit BBL5 entry ins,ins,ins,… exit Entry:Anyinstructionthatistargetofabranch(e.g.,firstinstructionofafunction) Exit: Anybranch(e.g.,indirectordirectjumpandcall,return) Cellular Networks and Mobile Computing (COMS 6998-10) 7 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 8 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
BBL3 label_3 entry ins,ins,ins,… exit BBL1 label_1 entry ins,ins,ins,… exit BBL2 label_2 entry 1. InsertLABELinstructions(that serveasnopinstructions)atthe beginningofeachBBL ins,ins,ins,… exit BBL4 label_4 entry ins,ins,ins,… exit BBL5 label_5 entry ins,ins,ins,… exit Cellular Networks and Mobile Computing (COMS 6998-10) 9 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
BBL3 label_3 entry ins,ins,ins,… exit BBL1 label_1 entry ins,ins,ins,… exit BBL2 label_2 entry ins,ins,ins,… exit 2. Rewriteallexitinstructionswith acontrol-flowcheck BBL4 label_4 entry ins,ins,ins,… exit BBL5 label_5 entry ins,ins,ins,… exit CFICheck: *BBL3[exit]==label_5 Cellular Networks and Mobile Computing (COMS 6998-10) 10 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
BBL3 BBL1 label_3 entry ins,ins,ins,… exit 1 2 BBL5 label_5 entry ins,ins,ins,… exit label_1 entry ins,ins,ins,… exit BBL2 label_2 entry ins,ins,ins,… exit BBL4 label_4 entry ins,ins,ins,… exit MaliciousCode Shellcode LibraryCode InstructionSequences LibraryFunctions CFICheck: *BBL3[exit]==label_5 Cellular Networks and Mobile Computing (COMS 6998-10) 11 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 12 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Intelx86Approach [Abadietal.,CCS2005] ARM •Notcompatibletoapplication signing •Requiressophisticatedbinary instrumentationframework(Vulcan) anddebugginginformation •Programcounterdirectlyaccessible •Nodedicatedreturninstructions •Side-Effectsofcontrol-flow instructions,e.g.,POP{r4-r7,pc} •ARMsupportstwoinstructionsets (ARM/THUMB) Smartphones •ApplicationSigning •ApplicationEncryption •Typically,noaccesstosourcecode Cellular Networks and Mobile Computing (COMS 6998-10) 13 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Contributions Firstcontrol-flowintegrityframeworkfor smartphoneplatforms Wepresentrewritingtechniquesthattackle uniquechallengesofsmartphones OurprototypeforiOSrequiresnosourcecode andefficientlyperformsCFIatruntime 1 3 2 Cellular Networks and Mobile Computing (COMS 6998-10) 14 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
10011… 01100… Unprotectedand encryptediOSBinary 1 Preprocessor Decryption Disassembling 2 Unprotectedplain iOSBinary 3 GenerateRewriting Information StaticAnalysis Patchfile RuntimeEnforcement Instructions… callFunc_A 4 Control-FlowGraph Generator Control-Flow Graph Cellular Networks and Mobile Computing (COMS 6998-10) 15 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
10011… 01100… Unprotectedand encryptediOSBinary 1 Preprocessor Decryption Disassembling StaticAnalysis RuntimeEnforcement MoCFILibrary Load-TimeModuleRuntimeModule BinaryRewritingCFIEnforcement 6 CFIProtected iOSBinary 2 Unprotectedplain iOSBinary 3 GenerateRewriting Information 5 Instructions… callFunc_A Patchfile 4 Control-FlowGraph Generator Control-Flow Graph Cellular Networks and Mobile Computing (COMS 6998-10) 16 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
10011… 01100… Unprotectedand encryptediOSBinary 1 Preprocessor Decryption Disassembling StaticAnalysis RuntimeEnforcement MoCFILibrary Load-TimeModuleRuntimeModule BinaryRewritingCFIEnforcement 6 2 Unprotectedplain iOSBinary 3 5 Instructions… callFunc_A Instructions… callCFI_Library GenerateRewriting Information CFIProtected iOSBinary Patchfile 7 4 Control-FlowGraph Generator Control-Flow Graph Cellular Networks and Mobile Computing (COMS 6998-10) 17 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Cellular Networks and Mobile Computing (COMS 6998-10) 18 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
4Byte THUMB Instruction! OriginaliOSBinary Header Code Instruction Instruction,… CALLFunction Instruction Load-TimeModule–BinaryRewriting Control-Flow Graph Shadow Stacks MoCFI Runtime Module Instruction,… INDIRECTJUMP Instruction BBLEntry RETURN Data “BBLEntry”referstoaninstructionthatistargetofotherbranch instructionsintheprogram Cellular Networks and Mobile Computing (COMS 6998-10) 19 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Load-TimeModule–BinaryRewriting Control-Flow Graph Shadow Stacks MoCFI Runtime Module Trampoline_1 SaveRegisters JUMP Runtime_Module ResetRegisters JUMPFunction OriginaliOSBinary Header Code Instruction Instruction,… CALLFunction Instruction RewritteniOSBinary Header Code Instruction Instruction,… CALL Trampoline_1 Instruction,… INDIRECTJUMP Instruction BBLEntry RETURN Data Data “BBLEntry”referstoaninstructionthatistargetofotherbranch instructionsintheprogram Cellular Networks and Mobile Computing (COMS 6998-10) 20 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Load-TimeModule–BinaryRewriting Control-Flow Graph Shadow Stacks MoCFI Runtime Module Trampoline_1 SaveRegisters JUMP Runtime_Module ResetRegisters JUMPFunction Trampoline_2 PreviousInstruction SaveRegisters JUMP Runtime_Module ResetRegisters INDIRECTJUMP OriginaliOSBinary Header Code Instruction Instruction,… CALLFunction Instruction Instruction,… INDIRECTJUMP Instruction BBLEntry RETURN Data RewritteniOSBinary Header Code Instruction Instruction,… CALL Trampoline_1 Instruction JUMP Trampoline_2 Data “BBLEntry”referstoaninstructionthatistargetofotherbranch instructionsintheprogram Cellular Networks and Mobile Computing (COMS 6998-10) 21 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Load-TimeModule–BinaryRewriting Control-Flow Graph Shadow Stacks MoCFI Runtime Module Trampoline_1 SaveRegisters JUMP Runtime_Module ResetRegisters JUMPFunction Trampoline_2 PreviousInstruction SaveRegisters JUMP Runtime_Module ResetRegisters INDIRECTJUMP OriginaliOSBinary Header Code Instruction Instruction,… CALLFunction Instruction Instruction,… INDIRECTJUMP Instruction BBLEntry RETURN Data RewritteniOSBinary Header Code Instruction Instruction,… CALL Trampoline_1 Instruction JUMP Trampoline_2 Instruction BBLEntry #ILLEGALINS Data ExceptionHandler “BBLEntry”referstoaninstructionthatistargetofotherbranch instructionsintheprogram Cellular Networks and Mobile Computing (COMS 6998-10) 22 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
LibraryInjection OurMoCFIlibraryisinjectedintotheprocessofthe applicationbysettingDYLD_INSERT_LIBRARIES Jailbreak? Werequireajailbreakforsettingoneenvironment variableandinstallingourlibrary Inordertoperformbinaryrewriting,werequirethe dynamiccode-signingentitlement Cellular Networks and Mobile Computing (COMS 6998-10) 23 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
PerformanceMeasurements Worst-CaseScenario:quicksort applicationthatfrequentlydemandsa CFIcheck PerformanceMeasurementsforquicksort FactorWithoutMoCFIWithMoCFI n=1000.047ms0.432ms Averageoverheadmeasurementwith gensystek n=1,000 n=10,000 0.473ms 6.725ms 6.186ms 81.163ms 100 withMoCFI withoutMoCFI 80 60 40 20 0 TimeinSeconds FPU/ALU 4,87 PICalc 3,85 MD5Calc 1,19 ScrShot 1,02 RAM 5,00 Disk 1,21 Quartz2D 1,03 ResizeIMG 1,01 Trans3D 1,09 BenchmarksandSlowdownFactorforgensystek AppliedMoCFItopopulariOSapps(e.g.,Facebook,Texas Holdem,Minesweeper) Cellular Networks and Mobile Computing (COMS 6998-10) 24 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
FirstCFIframeworkforsmartphoneplatforms ItperformsCFIenforcementon-the-flyatruntime Compatibletoapplicationsigning/encryptionand memoryrandomization(e.g.,ASLR) Requiresnoaccesstosourcecode OngoingWork CFIfornativeiOSlibraries FormalAnalysis CFIforAndroid Cellular Networks and Mobile Computing (COMS 6998-10) 25 @TUDarmstadt/CASED2012 LucasDavi,NDSS2012 DONOTDISTRIBUTEFURTHER
Guess Who’s Texting You? • Evaluating the Security of Smartphone Messaging Applications Sebastian Schrittwieser Cellular Networks and Mobile Computing (COMS 6998-10)
Smartphone Messaging • Aim at replacing traditional text messaging (SMS) and GSM/CDMA/3G calls • Free phone calls and text messages over the Internet • Novel authentication concept • Phone number used as single authenticating identifier Cellular Networks and Mobile Computing (COMS 6998-10)
Internet Telecom infrastructure Cellular Networks and Mobile Computing (COMS 6998-10)
Motivation Cellular Networks and Mobile Computing (COMS 6998-10)