Root-proof Smartphones

advertisement
Root-proof Smartphones
and
Other Myths and Legends
Scott G. Kelly
March 8, 2012
CanSecWest 2012
Agenda
• Smartphone tug of war
– Why we want control
– Why providers want control
• The struggle for control
– Rooting/jailbreaking
– Provider responses
– How/why of provider control failures
• New security technologies
– What they are, how they work
– Some potential implications
March 8, 2012
CSW 2012
2
Evolution
• Smartphones (SPs) are increasingly powerful
– In some cases, can functionally replace PCs
– Email, web, video, etc.
• But SPs and PCs differ in at least one subtle
and important way:
– By design, SP is multi-tenant environment; PC is
not
March 8, 2012
CSW 2012
3
What’s a multi-tenant environment?
• Computing environment where
– Hardware/resources are shared
– among multiple stakeholders
– whose interests not necessarily aligned
• Cloud service (Amazon EC2) is good example
– Provider: Amazon
– Hardware: shared server, storage, network
– Tenants
• Provider + VMs
• VM owners may be mutually suspicious
• At least 2 tenants: Amazon + VM owner
March 8, 2012
CSW 2012
4
PCs are single-tenant*
• PC manufacturer may have configured system certain
way, but…
• You are free to change it
–
–
–
–
–
Add hardware
Replace OS
Replace pieces of OS
Install/remove applications
Etc.
*Enterprise PC or home PC with multiple users is multi-tenant, but to much
lesser degree than cloud example, and in different way than SP
March 8, 2012
CSW 2012
5
SP has >=2 tenants
• Tenant 1
– Service provider*
– Similar to cloud provider example above
• Tenant 2
– SP user (you)
– Like VM owner in EC2 example
• DOH! But I OWN my SP, right?
– Well… sort of.
– Depends on what you mean by “own”
March 8, 2012
CSW 2012
6
Misaligned Interests
You
Provider
Want to customize
• Install custom “ROM”
• Install “unauthorized” apps
• Remove/replace “bloatware”
Wants “Brand control”
• Fixed OS
• Limit/control app sources
• Pre-installed, undeletable apps
Want to tether phone
Wants to charge extra for tethering
Want to unlock SIM
Wants to lock phone to network
• Phone is loss-leader
• Customer churn is bad
• Phone exclusivity is valuable
Want to overclock
Wants to charge more for un-throttling
Want to install custom baseband
Wants to protect/control cellular network
Want to remove CarrierIQ
??? (ask Trevor )
March 8, 2012
CSW 2012
7
Whose pwn is it, anyway?
• Technically, it is yours.
• As a practical matter (more often than not),
that’s an illusion.
• Why?
– Because you got it from the provider.
– And the provider designed/configured the phone
to maintain control.
– smart pwn.
• Solution: “rooting”/”jailbreaking”
March 8, 2012
CSW 2012
8
Rooting
• Basically, two ways to root phone:
1. Install new firmware image (“rom”) using built-in
firmware update facility
2. Exploit a system vulnerability, overwrite/replace
firmware image*
• The first way works if providers don’t prevent it
– But providers are implementing barriers
• In fact, barriers may become the norm
– So, some phones require sploitz
March 8, 2012
CSW 2012
9
SP Architecture Overview
• To understand rooting barriers, we need some
background
• Following is a brief overview in two parts
– Embedded systems architecture
– Modern SP architecture
• Once we have that background, we can come
back to attacker/defender discussion
March 8, 2012
CSW 2012
10
Embedded Systems 101
• Embedded systems
generally include
– NAND/NOR Flash
• non-volatile memory in
which firmware is stored
– CPU/MCU
• processor for OS/apps
– DRAM
• random access memory
(just like your PC)
– Interfaces
• Wifi, ethernet, etc.
March 8, 2012
CSW 2012
11
Embedded Systems 101 (2)
• At power-on
– Processor comes out of reset
– Begins running code from
flash*
• Boot Loader (BL) is typically
first code to run
• BL initializes HW (memory,
etc.)
• BL usually copies itself into
DRAM before continuing
March 8, 2012
CSW 2012
12
Embedded Systems 101 (3)
• BL continues hardware
initialization from
DRAM
• BL validates, loads, and
jumps into OS
• OS finishes init, goes to
runtime steady state
March 8, 2012
CSW 2012
13
Terminology
• SoC
– A System on Chip packages all or most necessary system
elements into a single Integrated Circuit (IC) package
• Application CPU/processor/core
– SPs typically utilize a multi-core SoC. The application
CPU runs the user interface and apps
• Baseband processor
– The baseband (aka modem/radio) processor handles
cellular communications.
March 8, 2012
CSW 2012
14
Terminology (2)
• System firmware
– Collection of system code controlled by provider
• System image
– System firmware and file systems are packaged for
distribution.
• OTP/eFuse
– One Time Programmable memory, typically
implemented with eFuse technology
March 8, 2012
CSW 2012
15
SP Architecture (1)
• Embedded systems are all
around us
– Variations depending on
application
• But core components are
essentially the same
–
–
–
–
CPU(s)
NVRAM
DRAM
I/O
• And so are development
procedures
http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware
March 8, 2012
CSW 2012
16
SP Architecture (2)
March 8, 2012
CSW 2012
17
SP Architecture (3)
http://www.arm.com/images/processor/Mobile_Computing_Diagram_550.jpg
March 8, 2012
CSW 2012
18
SP Architecture (4)
http://www.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=12843&contentId=53243
March 8, 2012
CSW 2012
19
Important Observations
• SPs have multiple processors/cores
– application processor (may be SMP)
– Baseband (a.k.a. modem) processor
– Others
• These cores run distinct instruction streams
– They are not all controlled by the OS that is running on the
application processor (and they are not all running the
same OS)
– What resources they share (e.g. memory, buses, etc.) are
design choices that may or may not be informed by
security concerns
March 8, 2012
CSW 2012
20
Important Observations (cont.)
• Inter-processor communication requires
protocols, interconnects, protocol handlers, etc.
– These are all part of the system attack surface
• The complexity of the code running on the
baseband and other cores is a design choice
– QCOM MSM6280 runs 32MB+ of code on baseband
• http://events.ccc.de/congress/2011/Fahrplan/events/4735.e
n.html
• http://tjworld.net/wiki/Android/HTC/Vision/RadioAnalysis
– P(bugs|32MB) >> 0? Seems highly likely.
March 8, 2012
CSW 2012
21
Going back…
• So, how did that first approach to rooting work,
again?
– SPs support firmware upgrade
• Firmware is stored in flash
– Provider (or someone) creates image file
– Image is delivered to SP
•
•
•
•
OTA (over the air)
OTN (over the network)
SD/MMC (download)
USB (fastboot)
– write new image to flash
March 8, 2012
CSW 2012
22
Image upgrades (2)
• To use the first approach, need to
– Reverse engineer image format
– Assemble tool chain, source code*
– Recreate working facsimile of system image, with
your mods added
• NOTE: can re-use binary pieces of existing images (!)
– Construct new image file
– Flash new image
March 8, 2012
CSW 2012
23
Why the second rooting method?
• Providers often want to ensure that only
authorized images run on SPs
– Initially, some assumed that creating a firmware
image is sufficiently “hard”
• Security through obscurity
• But they were wrong.
– Many available “roms”, “rom kitchens”, etc. prove this
is not hard
• Plan B: implement secure boot
March 8, 2012
CSW 2012
24
Secure Boot?
• Put simply, means that only authorized (system)
code runs
• If image is corrupted, or you try to install your
own (unauthorized) code, system will not run.
• Neat! Why don’t they have that for Windows yet?
– D’oh! UEFI is coming.
– But that’s another presentation.
March 8, 2012
CSW 2012
25
Secure Boot Overview
• Based on “chain of
trust”
• Requires trusted root
– Trusted code (RoT) with
ability to verify next link
in chain
• Verification mechanism
– Typically, digital
signatures
– Public key(s) protected
(in ROM/OTP)
March 8, 2012
Source: www.trustedcomputinggroup.org
CSW 2012
26
Secure Boot Overview (2)
• Chain of trust, cont.
– RoT verifies BL
– BL verifies kernel, rootfs
– Kernel may be configured
to validate applications
(e.g., iOS)
• Trick is to ensure public
keys are protected
• Can use multiple public
keys:
– BL key is in ROM/OTP
– Kernel key is in BL
– rootfs key is in kernel/BL
Source: www.trustedcomputinggroup.org
March 8, 2012
CSW 2012
27
Is this “bootloader locking”?
• Bootloader locking is a form of secure boot
– Protects against bootloader replacement
– Ensures that bootloader policy is applied to kernel
• Bootloader locking typically prevents you from
“flashing a rom” – it prevents full image
replacement.*
• So, how does this “locking” work?
March 8, 2012
CSW 2012
28
BL Locking
• Multiple approaches to locking*
– Permanently write-protect bootloader (e.g. by
storing it in ROM, or read-only flash)
– Require signed bootloader (IPL code in ROM
verifies/loads)
– Have some system element assert wp on BL flash
sector during boot process
• Multiple HTC/QCOM phones have been known to do
this
• Baseband asserts wp on EMMC during boot
March 8, 2012
CSW 2012
29
Subverting BL Locking
• If bootloader is signed
– If symmetric key is used, may be able to obtain this
key somehow (examples to follow)
– If public key can be replaced, you can load your own
image
• This implies a fundamental security implementation error
• SoC vendors typically know better
– If bootloader is verified in flash and then loaded into
DRAM, a hardware attack is possible (let check
succeed, then substitute your BL)
– Voltage glitching may cause bogus BL to seem “valid”
March 8, 2012
CSW 2012
30
Subverting BL Locking (2)
• If dynamic write-protect scheme is used
– Defeat write-protect
• By preventing wp operation from completing
• By undoing wp operation after the fact
– Mutliple HTC phones have fallen to this approach
– Power-cycling EMMC resets WP
– http://forum.xda-developers.com/wiki/HTC_Vision
– Replace flash chip (modchip)
– Others?
March 8, 2012
CSW 2012
31
Subverting BL Locking (3)
• Uh…
– Hardware attacks?
– Timing attacks?
– Glitching?
• Isn’t there an easier way!?
– Good question.
– Lazy attackers work smart, look for weak links in chain
– Hmmm….
March 8, 2012
CSW 2012
32
Finding a weak link
• ROM loads bootloader
• Bootloader loads Linux
• Linux loads
–
–
–
–
UI
Network drivers
Browser
Apps
• Boot process looks secure
• Or is it?
March 8, 2012
CSW 2012
33
GTV recovery example
• Sony GTV supports a “recovery” kernel
• Earlier version contained a subtle flaw
– ls /tmp/mnt/diskb1/package_list_*.zip | head -1 | grep
"package_list_”
– Attacker controls filename (package_list_*.zip)!
– “package_list_;cd /tmp;cd /mnt;cd /diskb1;sh t.sh;.zip” allows exec of
t.sh on USB (D’OH!)
– Game over.
• TOCTTOU flaw allows downgrade
– http://gtvhacker.com
• Secure boot FAIL.
March 8, 2012
CSW 2012
34
Weak Validation examples
• Asus SBK
– Asus EEE Transformer Tablet uses symmetric AES key to validate
bootloader, image (SBK)
– Key is well protected within system, but it was leaked by
someone with access (they since changed SBK)
– Secure boot FAIL.
• Samsung CMAC key
– Various Samsung DTV/BDP devices use symmetric key to
validate bootloader, image
– Key is not well protected within system
– Attackers root device, directly read key.
– Secure boot FAIL.
March 8, 2012
CSW 2012
35
Attacking runtime system
• Even if secure boot method is robust, can still
attack runtime
– More features == more complexity
– More complexity == more bugs
– More bugs == more opportunity for sploitz
• So, how to find the openings?
March 8, 2012
CSW 2012
36
Attack Surface Analysis
• Need to do some recon
– Figure out what’s running
– Determine distribution of
security bugs in code
– Each interface is an entry
point
– Each entry point exposes code
paths, data
– Find path to exploitable bug
• Need to craft inputs in
such a way as to gain
control of the system
March 8, 2012
CSW 2012
37
Reconnaissance: Linux
140
• Publicly reported Linux
vulnerabilities for last 12+
years
–
–
–
–
2011: 85
2010: 125
2009: 100
(etc).
• Many of these yield full
control of the system
120
100
80
60
40
• This looks promising.
20
Source: http://www.cvedetails.com
0
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
March 8, 2012
CSW 2012
38
IE Vulnerabilities
Source: http://www.accuvant.com/capability/accuvant-labs/security-research/browser-security-comparison-quantitativeapproach
March 8, 2012
CSW 2012
39
Chrome looks no better
Source: http://www.accuvant.com/capability/accuvant-labs/security-research/browser-security-comparison-quantitativeapproach
March 8, 2012
CSW 2012
40
What about Firefox?
Source: http://www.accuvant.com/capability/accuvant-labs/security-research/browser-security-comparison-quantitativeapproach
March 8, 2012
CSW 2012
41
Browser Vulnerability Summary
Source: http://www.accuvant.com/capability/accuvant-labs/security-research/browser-security-comparison-quantitativeapproach
March 8, 2012
CSW 2012
42
Webkit/Opera public stats
• Apple Webkit vulnerabilities*
– 2010: 94 (code execution >= 63)
– 2011: 112 (code execution >= 96)
• Opera Browser vulnerabilities*
– 2009: 16 (code execution >= 1)
– 2010: 36 (code execution >= 5)
– 2011: 56 (code execution >= 4)
Source: http://www.cvedetails.com
March 8, 2012
CSW 2012
43
Promising avenue: runtime
• Why?
– OS’s have vulnerabilities
• Function of complexity,
number of contributors,
engineering decisions
– So do browsers/webkit
– App support
• Android apps can include
*.so (!!)
March 8, 2012
CSW 2012
44
Surprise!
Wait:
– The SP correctly implements secure boot, but I can
still root it?
– And if I can configure the exploit to run at boot time,
this is persistent!
– Woohoo!
• The only way this can be fixed is if
– Provider forces an OTA update*, or
– You voluntarily download/install an update, and
– Provider can (forcibly) prevent rollback
March 8, 2012
CSW 2012
45
So, what will they do?
• The industry is struggling with this
• Things working against solution
– SP ecosystem complexity
– Vocal rooting community
– Solution cost
• Things creating solution pressure
– Providers want to prevent SIM unlocking, cloning, etc.
– 3rd party providers need secure platform
• DRM, NFC, wallet apps, etc.
– Malware is going to become a problem
March 8, 2012
CSW 2012
46
Emerging Solutions
• Google’s (rumored) initiatives
–
–
–
–
Lock down *.so usage
Add capabilities/LSM protections
Up to date patching strategy
All are helpful, but losing battle given provider mods?
• Trusted Computing Group (TCG) has been working on
Mobile Trust Module (MTM)
• Global Platform has been working on Trusted Execution
Environment (TEE) definitions/specifications
www.trustedcomputingroup.org, www.globalplatform.org
March 8, 2012
CSW 2012
47
Trusted Execution Environment
March 8, 2012
CSW 2012
48
Global Platform Vision of TEE
Source:GlobalPlatform_TEE_White_Paper_Feb2011.pdf
March 8, 2012
CSW 2012
49
Numerous ways to implement TEE
• Multiple cores (hardware TEE)
– Sensitive operations run on “security” core
– Security core controls (and isolates)
•
•
•
•
OTP/keys
Secure on-chip RAM
Crypto operations/processor
Secure boot, firmware integrity protection
– Application core runs untrusted code (e.g. UI,
Android)
March 8, 2012
CSW 2012
50
Hardware TEE Example
March 8, 2012
CSW 2012
51
Numerous Ways to Implement TEE (2)
•
With ARM TrustZone™
– Normal/secure world
abstraction supported by
hardware
– sensitive operations run in
“secure world”
– secure world controls (and
isolates)
• OTP/keys and related crypto ops
• internal SRAM
• Other critical assets
*copied from “TrustZone: Integrated Hardware and Software Security”,
Information Quarterly, Volume 3, Number 4, 2004
– “normal world” runs untrusted
code
March 8, 2012
CSW 2012
52
TrustZone Hardware Example
Source: ARM, PRD29-GENC-009492C_trustzone_security_whitepaper.pdf
March 8, 2012
CSW 2012
53
Numerous Ways to Implement TEE (3)
• Virtualization
– secure boot
– robust hypervisor
– MMU/MPU under hypervisor
control
– functionally equivalent to HW TEE,
TrustZone
• Hypervisor + MMU/MPU enforces
isolation of sensitive
operations/keys
March 8, 2012
CSW 2012
54
Numerous Ways to Implement TEE (4)
•
Software TEE
– Challenge is in providing effective
isolation between trusted and
untrusted elements
– Tools that can help:
•
•
•
•
rigorous obfuscation techniques
white-box cryptography
anti-debugging techniques
runtime tampering/integrity
checks
• policy/containment framework
(e.g. SELinux, grsecurity)
•
Can always be defeated with
enough time/effort
•
Don’t know of any real-world SP
examples*
March 8, 2012
CSW 2012
55
Current TEE Implementations
• Rapidly gaining momentum
–
–
–
–
–
–
–
Texas Instruments M-Shield
ST-Ericsson
NVIDIA Tegra2
Marvell
Motorola
Intel (GTV, etc.)
Others
• GP membership is growing
– http://www.globalplatform.org/membershipcurrentfu
ll.asp
March 8, 2012
CSW 2012
56
Remember this?
March 8, 2012
CSW 2012
57
TEE is the future for SP
• ARM has significant lead in this market
• Many (most?) SPs have ARM processors in
them already (including iPhone!)
• Turning on TZ is a no-brainer for many SP
providers
• Primary barriers are cost/complexity
– But this should scale as TZ gets traction
March 8, 2012
CSW 2012
58
TEE/shmee
140
• Even with a robust TEE and
secure boot, rooting can’t
be stopped.
120
100
80
60
– “There is no spoon.”
40
20
• As long as there are system
vulnerabilities, control is up
for grabs
0
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
• And this is really difficult to
“fix” (impossible?)
March 8, 2012
CSW 2012
59
What prevents a fix?
• Fundamental problem
– Vulnerabilities are a given
– Ecosystem does not facilitate patching
• Fragmentation  not enough security experts
• Carrier certification requirements have scaling implications
• Not always clear who’s on the hook (Google? Apple? IC
vendor? Handset manufacturer? Carrier?)
• Result
– Sploitz have potentially long lifetime
March 8, 2012
CSW 2012
60
Providers and Rooting
• Providers have mixed feelings about this
– Allowing rooting makes them more popular
– With TEE, it doesn’t really hurt anything
– Malware might change things
• If malware is using sploit, providers will need to
respond
• One possible answer: A/V in TEE
• HTC explicitly supports unlocking
– http://htcdev.com/bootloader
March 8, 2012
CSW 2012
61
Other implications
• Probably would have ended here, but Carrier IQ
raised some interesting questions
• Providers’ and users’ interests are often not
aligned
• Providers may want access/control that users
would rather not cede
• What are implications of TEE?
March 8, 2012
CSW 2012
62
Hypothetically…
• Unlockable HTC phones are based on QC
SnapDragon
– Supports TrustZone
• Is TZ disabled when BL is unlocked?
• What if it’s not?
March 8, 2012
CSW 2012
63
Hypothetically… (2)
• Boot process starts in TZ
• HTC said they are
unlocking bootloader
My bet is here
• But they didn’t say which
bootloader.
This one?
• “Perhaps we are asking
the wrong questions.”
– Agent Brown
March 8, 2012
CSW 2012
64
Hypothetically… (3)
• Unfortunately, no one can be told what The Matrix
is. You have to see it for yourself.
• Blue pill, anyone?
March 8, 2012
CSW 2012
65
Paranoia?
• You decide:
– Provider has strong
incentives to maintain
control
– Secure world code may
be encrypted
– Normal world cannot
see secure world*
Provider has
complete control
over this
• What if CarrierIQ were
in the secure world?
March 8, 2012
CSW 2012
66
Winds of Change
• We are gradually ceding control of our computing
devices
• Many (most?) users don’t yet see this as an issue
• Recent Win8/ARM/UEFI flap should give us pause
• If we don’t resist, invasive provider controls may
become De facto standard
“Do you hear that Mr. Anderson? That is the sound of inevitability.”
–Agent Smith
March 8, 2012
CSW 2012
67
Some Observations
• Without oversight, providers are
not accountable
– Regulation might help, but is not a
panacea
• Some consolation
– TEEs complexity will lead to bugs
• TEE sploitz will happen.
– TEE reversing may provide our only
insights into some of these devices
– H/W attacks are also possible (by
those with skilz)
• Openmoko suddenly looks a lot
more appealing.
March 8, 2012
CSW 2012
68
Parting Thoughts
• Matrix Preloaded?
– TEE provides ability to bare-metal virtualize
Application OS (AOS)
– From safety of TEE, “agent” can monitor/modify AOS
– Naïve implementations will not be “aware” of agent
– With UEFI, this extends to the PC
– Quis custodiet ipsos custodes?
• Red pill, please.
March 8, 2012
CSW 2012
69
Download