Building Secure Apps
• Network
• Data Protec.on
• Inter-Process Communica.on (IPC)
• Jailbreak - detec.on & ac.on
Slide 16
Slide 16 text
Our apps can be under a-ack...
Slide 17
Slide 17 text
Why apps can be a,acked?
• !!! financial transac,ons
• PCI - Personal Card Informa,on "
• PII - Personal Iden,fiable Informa,on #
• PHI - Personal Health Informa,on $
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
Who might be an a-acker?
• ! Criminals
• Business compe1tors "
• # Internet Service Providers (ISP)
• Governments $
• ❤ Roman1c partners, family, friends
Slide 22
Slide 22 text
When can they a*ack?
• Direct access
• No passcode
• Jailbroken
• Malware
• Zero-day device
Slide 23
Slide 23 text
Building Secure Apps
Slide 24
Slide 24 text
Network
• Secure connec*on (HTTPS)
• App Transport Security (ATS)
• Cer*ficate pinning
• Cer*ficate Transparency (new mechanism)
Source code
• @inline(__always)
• class guard obfusca.on
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
Jailbreak
• Cydia app
• access outside sandbox
• fork a process
• method hooks & code injec1on
• debugger a4ached
• non-standard ports open
Slide 30
Slide 30 text
Jailbreak - how to live?
• slow down an a*acker
• wipe out sensi3ve data
• mark account as fraudolent on backend
Slide 31
Slide 31 text
How secure your app is?
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
Materials
Security @ swi-ing.io
My Cards project
Replace snapshot example
Protect store example
Disable keyboard extensions example
Validate IPC example
Slide 36
Slide 36 text
Materials
Apple's iOS Security Guide
Apple's Secure Coding Guide
WWDC 2016 - How iOS Security Really Works
WWDC 2016 - What's New in Security
XcodeGhost
Bypassing Jailbreak DetecHon