SlideShare a Scribd company logo
PRACTICAL iOS 

APP SECURITY
CHRIS FORANT
CHRIS FORANT
T R A I N I N G A P P D E V E L O P M E N T
AppCritique
1. iOS APP SECURITY PRIMER
2. SUP’ WITH SWIFT?
3. LET’S BUILD AN APP!
4. TIPS, BEST PRACTICES, AND
OTHER RANDOMNESS
TOPICS
iOS APP SECURITY
PRIMER
iOS APPS ==
SMALL DESKTOP SOFTWARE, RIGHT?
MOBILE IS DIFFERENT.
✓ USE CASES
✓ HIGHLY TAILORED OS’S
✓ FRAGMENTED HARDWARE 

(SIZE / SHAPE / CAPABILITIES)
✓ AMOUNT OF “ALIVE” TIME
✓ DEVELOPMENT PARADIGMS
iOS IS EVEN
MORE DIFFERENT.
✓ SANDBOXING
✓ CONTROLLED API USAGE
✓ BACKGROUND MODES
✓ CODE SIGNING AND
ENTITLEMENTS
✓ APP REVIEW
✓ TRUST
CORNERSTONES*
Practical iOS App Security
SANDBOXING
/DOCUMENTS
/LIBRARY
/TMP
RESOURCES AND EXECUTABLE
BUNDLE DIR
DATA DIR
SANDBOXING
CONTROLLED
INTER-APP
COMMUNICATIONS
✓ CUSTOM URL SCHEMES
✓ APP EXTENSIONS (8.0)
✓ AIRDROP
MyApp
CUSTOM URL SCHEMES
myApp://
Some
Other App
openURL(myAppURL)
[scheme]://whatever/u/want/to/pass?
APP EXTENSIONS
APP EXTENSIONS
AIRDROP
WIFI + BLUETOOTH
OR
PROGRAMMATICALLY
BACKGROUND MODES
OTHERWISE:
CODE SIGNING
APP REVIEW
CONTROLLED API USAGE
DEVELOPER ECOSYSTEM
ENTITLEMENTS
ENTITLEMENTS
TRUST.GOTTA HAVE IT.
๏ DEVICE PAIRING
๏ KEYS ON MAC:
๏ /VAR/DB/LOCKDOWN
๏ REMOVING FROM
iDEVICE:
๏ > RESET LOCATION/
PRIVACY
TRUST?
WITH TRUST
✓ SANDBOX CONTENT*
✓ BACKUPABILITY
*RESTRICTED AS OF IOS 8.3 TO YOUR
OWN APPS OR ONES WITH ITUNES FILE
SHARING ENABLED
✓ OS USER LEVEL DATA

✓ APP SANDBOX DATA*
✓ DOCUMENTS
✓ LIBRARY
✓ SHARED
CONTAINERS
*FOR ALL 3RD-PARTY APPS
BACKUPS
WITHOUT TRUST
๏ USING APPLE
CONFIGURATOR
๏ UNCHECK THIS BOX
PAIR-LOCK
SWIFT.NUFF SAID.
✓ MODERN, EXPRESSIVE
✓ FAST (COMING SOON!)
✓ “SAFE BY DEFAULT”
✓ EASY TO ADOPT
SWIFT IS:
✓ TYPE SAFE
✓ FOCUSED IMMUTABILITY
✓ SAFER STRINGS
✓ DEFINITIVE INITIALIZATION
✓ INTEGER OVERFLOW PROTECTION
✓ ARRAY OUT-OF-BOUNDS CHECKING
✓ POINTER-LESS (MOSTLY.)
SWIFT SAFETY
DEMOSECURESWIFTLANG.PLAYGROUND
✓ OBJECTIVE-C STILL LARGE PART OF MANY
PROJECTS
✓ C STANDARD LIBRARY STILL AVAILABLE
✓ UnsafePointer CAN BE USED FOR C
INTEROPERABILITY
BE AWARE:
WELL THEN.WHAT COULD POSSIBLY
GO WRONG?
PLENTY.
PII LEAK PHI LEAK
SSL
DATA
PROTECTION
API MISUSE HTTP
OS ARTIFACTS
AD/ANALYTICS
ENTERPRISE
BLINDNESSPLAINTEXT
3RD-PARTY
CODE
INVALIDATED
INPUTS
APP TIME!
KEYMASTER
KEVIN

APP DEVELOPER
KEYMASTERWHAT A NOVEL IDEA!
LET’S HAVE
A LOOK
DEMO
HMM…

SOMETHING’S
NOT RIGHT HERE
SECURITY ANALYST

TAKES A LOOK
EDDIE
AppCritique
WE’VE GOT
PROBLEMS.
✗ SENSITIVE DATA STORED IN USER
PREFERENCES (NSUserDefaults)
✗ DATA PROTECTION LEFT DEFAULT
✗ NO BACKGROUND CLEANUP
PROBLEMS
USER DEFAULTS

ARE FOR PREFERENCES



NOT SENSITIVE INFO
IT IS A SINGLE

.PLIST FILE
NOT A DATABASE
PREFERENCES
THE FILE:
/Library/Preferences/appBundleID.plist
PLISTS ARE
XML
PLAINTEXT XML
READABLE IN TEXT
EDITOR
BINARY PLIST

USE PLUTIL TO
CONVERT
DEMO
DATA PROTECTION
/DOCUMENTS
/LIBRARY
/TMP
RESOURCES AND EXECUTABLE
BUNDLE DIR
DATA DIR
DEFAULT DATA PROTECTION
/DOCUMENTS
/LIBRARY
/TMP
DATA DIR
NSFileProtectionCompleteUntilFirstUserAuthentication
DATA PROTECTION
DEMO
PROJECT LEVEL
FILE LEVEL
MITIGATE
SPRING
CLEANING

YOUR RESIDUAL
DATA
PASTEBOARD
TEXT FIELD CACHING
SNAPSHOT IMAGES FOR MULTI-
TASKING
ARTIFACTS
DEMO
USE NAMED PASTEBOARD INSTEAD OF
GENERAL, OR CLEAR IT WHEN APP RESIGNS
BLUR OR SCRUB SCREENS ON RESIGN
DISABLE AUTOCOMPLETE ON TEXT FIELDS,
AND USE SECURE ENTRY WHEN APPROPRIATE
MITIGATE
UPDATE
v2
DEMO
WE’VE STILL
GOT
PROBLEMS.
✗ ADDING DATA PROTECTION
“COMPLETE” IS NOT GOOD
ENOUGH FOR THIS SITUATION
PROBLEMS
UPDATE
v3
DEMO
ALMOST AS
BAD.
SRSLY…SRSLY…
✗ MANY CONVENIENT COCOA
APIS WRITE TO .PLIST
✗ USE THEM, BUT DON’T STORE
SENSITIVE INFO THERE
PROBLEMS
.PLISTS AGAIN!
UPDATE
v4
OK. I GOT
RID OF
PLIST DATA
DEMO
GETTING
WARMER
✗ CORE DATA USES SQLITE, WHICH
CAN BE READ BY TOOLS EASILY
✗ CORE DATA BY DEFAULT USES:
PROBLEMS
NSFileProtectionCompleteUntilFirstUserAuthentication
INCREASE THE DATA
PROTECTION TO COMPLETE
ENCRYPT DATA PRIOR TO
STORING IT IN CORE DATA
MITIGATE
UPDATE
v5
DEMO
NOW YOUR
GETTING
SOMEWHERE!
ENCRYPTED SQLITE DB FOR
STORING SENSITIVE INFO
KEYCHAIN
DEFAULT
IT’S STILL C-
BASED API… 😾
GRAB YOURSELF A
SWIFT OR OBJ-C
WRAPPER
LIBRARY
KEYCHAIN
FRAMEWORK:

LocalAuthentication
TouchID
SUPER EASY API
CAN ADD PASSWORD
OPTION FOR FALLBACK
CAN BE INTEGRATED
WITH KEYCHAIN ITEMS
TouchID
kSecAccessControlUserPresence
UPDATE
v6
KEYMASTER
WATCH EDITIONA NO BRAINER!
DEMO
APP GROUPS
RESOURCES AND EXECUTABLE
BUNDLE DIR
/DOCUMENTS
/LIBRARY
/TMP
DATA DIR
SEPARATE CONTAINER
APP GROUP DIR
ENTITLEMENT BASED
ALL APPS FROM
SAME DEVELOPER
AND GROUP ID CAN
ACCESS THIS
CONTAINER
APP GROUPS
SRSLY…
YOU’RE
REGRESSING
ON ME…
๏ APPLE WATCH USES APP GROUPS FOR
SHARED CONTAINER STORAGE
✗ APP GROUPS DON’T OFFER FREE
SECURITY JUST BECAUSE THEY IN A
DIFFERENT DIRECTORY
PROBLEMS
LESSONS
LEARNED
1. DON’T STORE SENSITIVE DATA IN THE CLEAR
2. CLEAN UP WHEN APP RESIGNS
3. CORE DATA DEFAULT PROTECTION IS NOT
COMPLETE
4. KEYCHAIN IS THE GENERALLY ACCEPTED METHOD
FOR PROTECTING SECRETS LOCALLY
5. USE TouchID, IT IS SWEET
6. DON’T LET NEW SHINY THINGS LIKE APPLE WATCH
FOG YOUR SECURITY MIND!
7. EVALUATE WHETHER STORING SENSITIVE INFO
LOCALLY IS EVEN A GOOD IDEA
SWITCHING
TOPICS 
BUCKET O’
SECURITY
⚠ DON’T HARDCODE SENSITIVE
STRINGS IN CODE
✓ CHECK FOR LEFTOVER DEV STUFF
✓ CONSIDER MOVING API KEYS OR
THE LIKE ELSEWHERE
HARDCODED STRINGS
⚠ BE CAREFUL WHAT YOU LOG
TO THE DEVICE’S CONSOLE
✓ USE #ifdef DEBUG
✓ SWIFT: println()
NSLOG( )
⚠ SYSTEM CALLS LIKE THIS CAN BE
USED FOR BOTH GOOD AND BAD
⚠ CAN BE USED TO OBTAIN
RUNNING PROCS AND NETSTAT
SYSCTL ( )
๏ PROCESS OF WRITING OBJ-
C OBJECTS TO A FILE
๏ WE USED IT TODAY
๏ NSCoding PROTOCOL
SERIALIZATION
⚠ NSCoding IS VULNERABLE TO
OBJECT SUBSTITUTION ATTACKS
✓ USE NSSecureCoding AND
supportsSecureCoding( )
SERIALIZATION
✓ USE HTTPS +
CERTIFICATE PINNING
WHEN APPLICABLE
NETWORKING
✓ CERT PINNING IS EASY WITH
NSURLSession
✓ OR YOUR FAVORITE 3RD PARTY
NETWORKING LIBRARY
NETWORKING
APP BUNDLE
DEVELOPMEN
RUNTIME
APP BUNDLE
NSData NSData==
SERVER TRUST #
⚠ NSURLSession CACHES REQUESTS
IN CACHE.DB BY DEFAULT
✓ CHANGE THE SESSION POLICY TO
NSURLRequestReloadIgnoringCacheData
✓ HANDLE willCacheResponse:
URL CACHE
✓ IF YOU USE THEM, KEEP THEM UP-TO-DATE
✓ WARNING: BE AWARE OF PRIVACY POLICIES
AND “OPT OUT” OPTIONS
✓ DEVELOPERS WILL SEND THE DARNDEST
THINGS BACK TO THEIR SERVERS (LIKE WHAT
YOU ATE TODAY, AND WHERE)
✓ COULD ALSO BE DATA STORAGE CONCERN
ANALYTICS LIBRARIES
iBEACONS
iBEACONS
✓ iBEACONS ARE BLUETOOTH LE
BROADCASTERS
✓ SENDS UUID, MAJOR, MINOR
VERSIONS
✓ THAT’S IT…
BEACON SECURITY
✓ CAN BE SPOOFED
✓ WITHOUT AUTHENTICATION LAYER,
CAN BE “REPURPOSED”
✓ DO YOU CARE? IT ALL DEPENDS ON
WHAT THE APP DOES
BEACON SECURITY
๏ STACY’S SHOES APP IS VERY POPULAR
๏ APP HAS ANALYTICS RIDING ON HTTP 😱
๏ APP USES BEACONS WHILE THEY ARE IN
THE RETAIL STOREFRONT
๏ APP SENDS BACK ALL SORTS OF PII…
HERE’S A RIDICULOUS
SCENARIO
๏ HACKER FINDS THIS OUT
๏ HACKER SITS ON WIFI IN HEAVY POPULATED
COFFEE HOUSE
๏ HACKER SPOOFS STACY’S iBEACON TO COERCE
THE APP TO SPILL ITS GUTS FROM THE COFFEE
SHOP WIFI…
๏ YEAH… I TOLD YOU RIDICULOUS
RIDICULOUSNESS
CONTINUED
✓ BUY BEACONS THAT PROVIDE
SECURE UUIDs (rotating)
✓ APP WILL REQUIRE SPECIAL API
AND INTERNET ACCESS
MITIGATION
I’VE DONE ALL
OF THIS…
I’M A
GOOD
CODER!
BUT…
HAVE YOU CHECKED
YOUR 3rd PARTY CODE
LATELY???
! GETS YOU MOVING QUICKLY
! CAN USE COCOAPODS TO KEEP
LIBRARIES UP TO DATE
" LIMITS YOUR ABILITY TO
TROUBLESHOOT
" OPENS YOU UP TO RISK OUT OF YOUR
CONTROL
3RD PARTY CODE
1. APPLE SECURE CODING GUIDE
2. iOS SECURITY GUIDE
3. THE SWIFT PROGRAMMING
LANGUAGE
4. OWASP MOBILE SECURITY PROJECT
5. THE INTERNET
FURTHER READING
MOBILE SECURITY CONSULTING
FORANT_CHRIS@BAH.COM
THANKS.
iOS DEVELOPER TRAINING
WWW.TOTEM.TRAINING

CONTACT@TOTEM.TRAINING

@TOTEM_TRAINING
T R A I N I N G
Practical iOS App Security

More Related Content

PDF
iOS and Android security: Differences you need to know
PDF
Dorking & Pentesting with Tacyt
PPTX
CyberCamp 2015: Low Hanging Fruit
PDF
The Road To Defendable Systems - Emirates NBD
PPTX
How to know if your iPhone is hacked? Check these 5 points now!
PDF
Security for Human Beings
PPTX
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
PDF
Deception in Cyber Security (League of Women in Cyber Security)
iOS and Android security: Differences you need to know
Dorking & Pentesting with Tacyt
CyberCamp 2015: Low Hanging Fruit
The Road To Defendable Systems - Emirates NBD
How to know if your iPhone is hacked? Check these 5 points now!
Security for Human Beings
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Deception in Cyber Security (League of Women in Cyber Security)

What's hot (12)

PDF
YOW! Connected 2014 - Developing Secure iOS Applications
PPTX
Cybersecurity: A game of innovation
PDF
Malware on Smartphones and Tablets - The Inconvenient Truth
PPTX
SL_Long Beach_Creative Artists_12_04_2015
PPTX
iOS Security and Encryption
PDF
Smart Bombs: Mobile Vulnerability and Exploitation
PDF
We Don't Need No Stinking Badges
PDF
Penetration testing of i phone-ipad applications
PPTX
Allianz Global CISO october-2015-draft
PPTX
Fragments-Plug the vulnerabilities in your App
PDF
Challenges in Testing Mobile App Security
PDF
Mobile Hacking
YOW! Connected 2014 - Developing Secure iOS Applications
Cybersecurity: A game of innovation
Malware on Smartphones and Tablets - The Inconvenient Truth
SL_Long Beach_Creative Artists_12_04_2015
iOS Security and Encryption
Smart Bombs: Mobile Vulnerability and Exploitation
We Don't Need No Stinking Badges
Penetration testing of i phone-ipad applications
Allianz Global CISO october-2015-draft
Fragments-Plug the vulnerabilities in your App
Challenges in Testing Mobile App Security
Mobile Hacking
Ad

Similar to Practical iOS App Security (20)

PDF
Debunking the Top 5 Myths About Mobile AppSec
PDF
CASE STUDY - Ironclad Messaging & Secure App Dev for Regulated Industries
PDF
CocoaConf Austin 2014 | Demystifying Security Best Practices
PDF
Security Checklist: how iOS can help protecting your data.
PDF
5 Mobile App Security MUST-DOs in 2018
PPTX
Secure Your Mobile Apps
PPTX
Build a Security Portfolio That Strengthens Your Security Posture
PDF
OWASP Mobile Security: Top 10 Risks for 2017
PDF
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
PDF
Bringing Government and Enterprise Security Controls to the Android Endpoint
PDF
The fundamentals of Android and iOS app security
PDF
Mobile Penetration Testing: Episode 1 - The Forensic Menace
PDF
Why you need API Security Automation
PDF
Threat Hunting, Detection, and Incident Response in the Cloud
PDF
The Dev, Sec and Ops of API Security - API World
PPTX
Mitigating the Top 5 Cloud Security Threats
PPT
Mobile code mining for discovery and exploits nullcongoa2013
PPT
Survey Presentation About Application Security
PPTX
Mobile security services 2012
PDF
Starting with mobile application pen testing
Debunking the Top 5 Myths About Mobile AppSec
CASE STUDY - Ironclad Messaging & Secure App Dev for Regulated Industries
CocoaConf Austin 2014 | Demystifying Security Best Practices
Security Checklist: how iOS can help protecting your data.
5 Mobile App Security MUST-DOs in 2018
Secure Your Mobile Apps
Build a Security Portfolio That Strengthens Your Security Posture
OWASP Mobile Security: Top 10 Risks for 2017
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
Bringing Government and Enterprise Security Controls to the Android Endpoint
The fundamentals of Android and iOS app security
Mobile Penetration Testing: Episode 1 - The Forensic Menace
Why you need API Security Automation
Threat Hunting, Detection, and Incident Response in the Cloud
The Dev, Sec and Ops of API Security - API World
Mitigating the Top 5 Cloud Security Threats
Mobile code mining for discovery and exploits nullcongoa2013
Survey Presentation About Application Security
Mobile security services 2012
Starting with mobile application pen testing
Ad

Recently uploaded (6)

PDF
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
PPTX
Introduction to Packet Tracer Course Overview - Aug 21 (1).pptx
PDF
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
DOC
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
DOC
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
PPTX
ASMS Telecommunication company Profile
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
Introduction to Packet Tracer Course Overview - Aug 21 (1).pptx
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
ASMS Telecommunication company Profile

Practical iOS App Security