SlideShare a Scribd company logo
1 of 60
Download to read offline
CNIT 128
Hacking Mobile Devices
2. Analyzing iOS Apps
Part 1 Updated 11-21-22
Topics: Part 1
• The Security Model
• iOS Apps
• Jailbreaking Explained
Topics: Part 2
• The Data Protection API
• The iOS Keychain
• TouchID
• Reverse Engineering iOS Binaries
The Security Model
Security Features
• Secure boot chain
• Code signing
• Process-level sandboxing
• Data-at-rest encryption
• Generic native language exploit mitigations
• Address space layout randomization
• Non-executable memory
• Stack smashing protection
Initializing iOS with
Secure Boot Chain
• Initializing and loading
fi
rmware
• Each step is cryptographically signed and
veri
fi
ed
Secure Boot Chain
• Boot ROM
• Read-only portion of the processor
• Contains public key for Apple's CA
• Used to verify next step: the LLB
Secure Boot Chain
• LLB (Low-Level Bootloader)
• Finds the iBoot image (second stage boot loader)
in
fl
ash memory
• Veri
fi
es its signature
• If signature check fails, boots into recovery mode
Secure Boot Chain
• iBoot
• Veri
fi
es and loads the iOS kernel
• iOS Kernel
• Loads usermode environment and OS
Secure Enclave
• Secure coprocessor shipped with all
modern iPhones and iPads
• Since iPhone 5s
• Handles cryptography on device
• Key management for
• Data Protection API
• Touch ID
fi
ngerprint data
Secure Enclave
• A customized version of ARM TrustZone
• Partitions itself from main processor
• Provides data integrity even if kernel is
compromised
• Even if device is jailbroken
• Secrets cannot be extracted
• Such as
fi
ngerprint data
Cachegrab
• Released in Dec. 2017
• Kernel code can deduce some information
about contents of the Secure Enclave
• Because it shares cache memory with
kernel processes
• Link Ch 2a
Restricting Application
Processes with Code Signing
• Validates signatures each time an app is
executed
• Only code signed with a trusted signature
can run
• Developers can install trusted certi
fi
cates
• In a provisioning pro
fi
le signed by Apple
App Store
• Production apps must be signed by Apple
• After submitting them to the App Store
• Apple bans risky activities
• Private APIs
• Apps that download and install executable
code
• To prevent apps from upgrading themselves
Isolating Apps with
Process-Level Sandboxing
• All third-party apps run in a sandbox
• Isolated from one another and from OS
• All apps run as the same mobile system user
• Each app is contained in its unique
directory
• Separation maintained by the XNU
Sandbox kernel extension
• From Jonathan Levin (link Ch 2b)
Permissions
• Since iOS 7, app needs permission from
user to access
• Media
• Microphone
• Address book
Protecting Information with
Data-at-Rest Encryption
• All
fi
le system data encrypted with AES
• Filesystem key generated on
fi
rst boot
• Stored on block 1 of NAND
fl
ash storage
• Device decrypts
fi
lesystem on bootup
• Filesystem is only encrypted at rest
• Remote wipe erases the key
Data Protection API
• Can encrypt individual
fi
les and keychain
items
• Key derived from passcode
• Encrypted items are inaccessible when
device is locked
Exploit Mitigations
Write or Execute (W^X)
• Memory pages cannot be both writable and
executable at the same time
• Implemented with ARM's Execute Never
(XN) feature
• Pages marked as writable cannot be later
reverted to executable
• Similar to Data Execution Protection (DEP)
in Windows, Linux, and Mac OS X
Return-Oriented
Programming
• Bypasses non-executable memory
• Injection contains only addresses
• Pointing to fragments of code
• Exploit is built from these fragments
ASLR
• Address Space Layout Randomization
• Code location randomized
• Attacker cannot
fi
nd the injected code to
run it
• Makes ROP chains more di
ffi
cult to use
ASLR Weaknesses
• Before iOS 5, dynamic linker was not relocated
• Memory disclosure bugs
• Can be used to improve exploits
• Apps compiled with PIE (Position Independent
Execution) can use full ASLR
• All memory regions randomized
• Other apps put base binary and dynamic linker
at a
fi
xed address
Stack Smashing
• Uses stack canaries
• Pseudorandom values on stack
• Bu
ff
er over
fl
ow attacks overwrite the
canary values
• And terminate the app
iOS Apps
Three Groups of Apps
• Standard native apps
• Browser-based apps
• Hybrid apps
Standard Native Apps
• Most common type
• Written in Objective-C or Swift
• Compiled to native code
• Linked against iOS SDK and Cocoa Touch
frameworks
Browser-Based Apps
• Render in iOS web views
• Loaded via mobileSafari
• Use HTML, JavaScript, and CSS
• Secure them like Web apps
Hybrid Apps
• Deployed with a native wrapper
• Used to display browser-based apps
• Mobile Enterprise App Platform deployment
Distribution of iOS Apps
• App Store
• Need an Apple Developer account
• Apps signed with a developer certi
fi
cate
can run on up to 100 iOS devices for
testing
• App store approval has manual and
automated tests
• Blocks malicious apps
Distribution of iOS Apps
• Enterprise Distribution
• Organizations can develop and distribute
custom apps in-house
• Apps signed with enterprise developer
certi
fi
cate can run on any number of devices
• Apple screens developers entering this
program
• Must have a legitimate business and a Dun
and Bradsheet number
Abuse of Certi
fi
cates
• An expired enterprise developer certi
fi
cate
was used
• By changing system date back to the past
• To run a Game Boy advanced emulator
• For Pangu jailbreak
App Structure
• IPA archive is a Zip archive containing
• Payload
• Payload/Application.app
• Data, compiled code, and resources
• iTunesArtwork
• Icon
• iTunesMetadata.plist
• Developer's name, copyright info
App Permissions
• Before iOS 6, every app in the App Store
had access to
• Contact, photos, other sensitive data
Data Classes in iOS 6
• Location services
• Contacts
• Calendar
• Photos
• Reminders
• Microphone access
• Motion activity
• Bluetooth access
• Social media data
Privacy Prompt
iOS 8 Location Information
• Three possible values: app is
• Never allowed access to location
information
• Allowed access only while the app is in
the foreground and in use
• Always allowed access to location
information
Jailbreaking Explained
Reasons for Jailbreaking
• Get apps from unauthorized marketplaces
like Cydia
• Piracy
• Access to restricted functions like tethering
Risks
• Weakens security of OS
• Allow unsigned code to run
• Most iOS malware only runs on jailbroken
phones
• iKee -
fi
rst iPhone worm, rickrolled
phones using default password
• iKee.B - Botted phones, phished Dutch
users
• Chinese origin
• Only on jailbroken
phones
• Hooked functions to steal
AppleID and password
Types of Jailbreaks
• Untethered - persists across reboots
• Tethered - requires a computer to start the
phone; otherwise you get Recovery Mode
• Semi-tethered - requires a computer to
start into jailbroken state, booting without
the computer ends up in non-jailbroken
state
Jailbreakme v3 Saffron
• Simply visit a Web site hosting a PDF
fi
le
• Works for iOS before 4.3.4
• Uses:
• Integer signedness issue to gain code
execution
• ROP payload
• Type confusion vulnerability
evasi0n Jailbreak
• Worked for iOS 6.0 - 6.1.2
• No memory corruption
• Used bypasses and logic bugs
• Lockdownd service allowed
fi
le
permissions to be changed
• USB driver allowed arbitrary functions to
be called
Building a Test
Environment
Accessing the Phone
• After jailbreaking
• Install OpenSSH in Cydia
• Connect via Wi-Fi or USB
• Default credentials are
• mobile / alpine
• root / alpine
Toolkit
• Cydia -- open app store
• BigBoss Recommended Tools
• Command-line UNIX tools
• Including apt
Apple's CC Tools
• Tools to parse, assemble, and link Mach-O
binaries
• File format for iOS and OSX apps
• Part of the iOS and OS X development
toolchain
• Run on OS X or Linux
• otool
• Object
fi
le-displaying tool
• All-purpose tool for Mach-O binary analysis
• Reveals class and method names
• Lists libraries, symbols
• Shows header information and load
commands
Apple's CC Tools
• nm
• Displays symbol table of a binary or
object
fi
le
• lipo
• Can combine or remove architecture
types from an app
Apple's CC Tools
Debuggers
• gdb
• Cydia's version doesn't work well on
modern iOS versions
• Radare's version is better
Code Signing
• codesign
• Apple's binary-signing tool
• Can also display signatures
• ldid
• Saurik's code-signer
Installipa
• Normal app installation uses installd
service
• Veri
fi
es code signature
• ipainstaller
• Can install unsigned apps on jailbroken
devices
Exploring the Filesystem
• Jailbroken devices allow full access
• Unjailbroken devices allow access to
portions of the
fi
lesystem, including
• Sandboxed area where apps are installed
• Must pair to a computer over USB
fi
rst
• Use apps like iExplorer or iFunBox
On a Jailbroken Device
Property Lists
• .plist
fi
les
• Binary format similar to XML
• Stores serialized objects and key-value
pairs
• plutil can convert plists to XML
Other Files
• Binary Cookies
• From Web pages
• Can be opened with
BinaryCookieReader.py
• SQLite Databases
2a Analyzing iOS Apps Part 1

More Related Content

Similar to 2a Analyzing iOS Apps Part 1

Forensics WS Consolidated
Forensics WS ConsolidatedForensics WS Consolidated
Forensics WS Consolidated
Karter Rohrer
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation Test
JongWon Kim
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
Asim Rais Siddiqui
 

Similar to 2a Analyzing iOS Apps Part 1 (20)

Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1Hacking and Securing iOS Apps : Part 1
Hacking and Securing iOS Apps : Part 1
 
CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)CNIT 128 3. Attacking iOS Applications (Part 2)
CNIT 128 3. Attacking iOS Applications (Part 2)
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3m
 
How iOS and Android Handle Security Webinar
How iOS and Android Handle Security WebinarHow iOS and Android Handle Security Webinar
How iOS and Android Handle Security Webinar
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application Security
 
Evaluating iOS Applications
Evaluating iOS ApplicationsEvaluating iOS Applications
Evaluating iOS Applications
 
Outsmarting SmartPhones
Outsmarting SmartPhonesOutsmarting SmartPhones
Outsmarting SmartPhones
 
CNIT 128 2. Analyzing iOS Applications (Part 2)
CNIT 128 2. Analyzing iOS Applications (Part 2)CNIT 128 2. Analyzing iOS Applications (Part 2)
CNIT 128 2. Analyzing iOS Applications (Part 2)
 
Beyond the 'cript practical i os reverse engineering lascon
Beyond the 'cript  practical i os reverse engineering lasconBeyond the 'cript  practical i os reverse engineering lascon
Beyond the 'cript practical i os reverse engineering lascon
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
 
Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)
 
Toorcon 2010: IPhone Rootkits? There's an App for That
Toorcon 2010: IPhone Rootkits? There's an App for ThatToorcon 2010: IPhone Rootkits? There's an App for That
Toorcon 2010: IPhone Rootkits? There's an App for That
 
iOS platform
iOS platformiOS platform
iOS platform
 
Forensics WS Consolidated
Forensics WS ConsolidatedForensics WS Consolidated
Forensics WS Consolidated
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation Test
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 

More from Sam Bowne

More from Sam Bowne (20)

Cyberwar
CyberwarCyberwar
Cyberwar
 
3: DNS vulnerabilities
3: DNS vulnerabilities 3: DNS vulnerabilities
3: DNS vulnerabilities
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic Curves
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-Hellman
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android Applications
 
12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)
 
10 RSA
10 RSA10 RSA
10 RSA
 
12 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 312 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 3
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard Problems
 
8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)
 
11 Analysis Methodology
11 Analysis Methodology11 Analysis Methodology
11 Analysis Methodology
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated Encryption
 
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)
 
7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)
 
5. Stream Ciphers
5. Stream Ciphers5. Stream Ciphers
5. Stream Ciphers
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers
 
6 Analyzing Android Applications (Part 2)
6 Analyzing Android Applications (Part 2)6 Analyzing Android Applications (Part 2)
6 Analyzing Android Applications (Part 2)
 

Recently uploaded

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
ssuserdda66b
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Recently uploaded (20)

Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 

2a Analyzing iOS Apps Part 1

  • 1. CNIT 128 Hacking Mobile Devices 2. Analyzing iOS Apps Part 1 Updated 11-21-22
  • 2. Topics: Part 1 • The Security Model • iOS Apps • Jailbreaking Explained
  • 3. Topics: Part 2 • The Data Protection API • The iOS Keychain • TouchID • Reverse Engineering iOS Binaries
  • 5. Security Features • Secure boot chain • Code signing • Process-level sandboxing • Data-at-rest encryption • Generic native language exploit mitigations • Address space layout randomization • Non-executable memory • Stack smashing protection
  • 6. Initializing iOS with Secure Boot Chain • Initializing and loading fi rmware • Each step is cryptographically signed and veri fi ed
  • 7. Secure Boot Chain • Boot ROM • Read-only portion of the processor • Contains public key for Apple's CA • Used to verify next step: the LLB
  • 8. Secure Boot Chain • LLB (Low-Level Bootloader) • Finds the iBoot image (second stage boot loader) in fl ash memory • Veri fi es its signature • If signature check fails, boots into recovery mode
  • 9. Secure Boot Chain • iBoot • Veri fi es and loads the iOS kernel • iOS Kernel • Loads usermode environment and OS
  • 10. Secure Enclave • Secure coprocessor shipped with all modern iPhones and iPads • Since iPhone 5s • Handles cryptography on device • Key management for • Data Protection API • Touch ID fi ngerprint data
  • 11. Secure Enclave • A customized version of ARM TrustZone • Partitions itself from main processor • Provides data integrity even if kernel is compromised • Even if device is jailbroken • Secrets cannot be extracted • Such as fi ngerprint data
  • 12. Cachegrab • Released in Dec. 2017 • Kernel code can deduce some information about contents of the Secure Enclave • Because it shares cache memory with kernel processes • Link Ch 2a
  • 13. Restricting Application Processes with Code Signing • Validates signatures each time an app is executed • Only code signed with a trusted signature can run • Developers can install trusted certi fi cates • In a provisioning pro fi le signed by Apple
  • 14. App Store • Production apps must be signed by Apple • After submitting them to the App Store • Apple bans risky activities • Private APIs • Apps that download and install executable code • To prevent apps from upgrading themselves
  • 15. Isolating Apps with Process-Level Sandboxing • All third-party apps run in a sandbox • Isolated from one another and from OS • All apps run as the same mobile system user • Each app is contained in its unique directory • Separation maintained by the XNU Sandbox kernel extension
  • 16. • From Jonathan Levin (link Ch 2b)
  • 17. Permissions • Since iOS 7, app needs permission from user to access • Media • Microphone • Address book
  • 18. Protecting Information with Data-at-Rest Encryption • All fi le system data encrypted with AES • Filesystem key generated on fi rst boot • Stored on block 1 of NAND fl ash storage • Device decrypts fi lesystem on bootup • Filesystem is only encrypted at rest • Remote wipe erases the key
  • 19. Data Protection API • Can encrypt individual fi les and keychain items • Key derived from passcode • Encrypted items are inaccessible when device is locked
  • 21. Write or Execute (W^X) • Memory pages cannot be both writable and executable at the same time • Implemented with ARM's Execute Never (XN) feature • Pages marked as writable cannot be later reverted to executable • Similar to Data Execution Protection (DEP) in Windows, Linux, and Mac OS X
  • 22. Return-Oriented Programming • Bypasses non-executable memory • Injection contains only addresses • Pointing to fragments of code • Exploit is built from these fragments
  • 23. ASLR • Address Space Layout Randomization • Code location randomized • Attacker cannot fi nd the injected code to run it • Makes ROP chains more di ffi cult to use
  • 24. ASLR Weaknesses • Before iOS 5, dynamic linker was not relocated • Memory disclosure bugs • Can be used to improve exploits • Apps compiled with PIE (Position Independent Execution) can use full ASLR • All memory regions randomized • Other apps put base binary and dynamic linker at a fi xed address
  • 25. Stack Smashing • Uses stack canaries • Pseudorandom values on stack • Bu ff er over fl ow attacks overwrite the canary values • And terminate the app
  • 27. Three Groups of Apps • Standard native apps • Browser-based apps • Hybrid apps
  • 28. Standard Native Apps • Most common type • Written in Objective-C or Swift • Compiled to native code • Linked against iOS SDK and Cocoa Touch frameworks
  • 29. Browser-Based Apps • Render in iOS web views • Loaded via mobileSafari • Use HTML, JavaScript, and CSS • Secure them like Web apps
  • 30. Hybrid Apps • Deployed with a native wrapper • Used to display browser-based apps • Mobile Enterprise App Platform deployment
  • 31. Distribution of iOS Apps • App Store • Need an Apple Developer account • Apps signed with a developer certi fi cate can run on up to 100 iOS devices for testing • App store approval has manual and automated tests • Blocks malicious apps
  • 32. Distribution of iOS Apps • Enterprise Distribution • Organizations can develop and distribute custom apps in-house • Apps signed with enterprise developer certi fi cate can run on any number of devices • Apple screens developers entering this program • Must have a legitimate business and a Dun and Bradsheet number
  • 33. Abuse of Certi fi cates • An expired enterprise developer certi fi cate was used • By changing system date back to the past • To run a Game Boy advanced emulator • For Pangu jailbreak
  • 34. App Structure • IPA archive is a Zip archive containing • Payload • Payload/Application.app • Data, compiled code, and resources • iTunesArtwork • Icon • iTunesMetadata.plist • Developer's name, copyright info
  • 35. App Permissions • Before iOS 6, every app in the App Store had access to • Contact, photos, other sensitive data
  • 36. Data Classes in iOS 6 • Location services • Contacts • Calendar • Photos • Reminders • Microphone access • Motion activity • Bluetooth access • Social media data
  • 38.
  • 39. iOS 8 Location Information • Three possible values: app is • Never allowed access to location information • Allowed access only while the app is in the foreground and in use • Always allowed access to location information
  • 41. Reasons for Jailbreaking • Get apps from unauthorized marketplaces like Cydia • Piracy • Access to restricted functions like tethering
  • 42. Risks • Weakens security of OS • Allow unsigned code to run • Most iOS malware only runs on jailbroken phones • iKee - fi rst iPhone worm, rickrolled phones using default password • iKee.B - Botted phones, phished Dutch users
  • 43. • Chinese origin • Only on jailbroken phones • Hooked functions to steal AppleID and password
  • 44. Types of Jailbreaks • Untethered - persists across reboots • Tethered - requires a computer to start the phone; otherwise you get Recovery Mode • Semi-tethered - requires a computer to start into jailbroken state, booting without the computer ends up in non-jailbroken state
  • 45. Jailbreakme v3 Saffron • Simply visit a Web site hosting a PDF fi le • Works for iOS before 4.3.4 • Uses: • Integer signedness issue to gain code execution • ROP payload • Type confusion vulnerability
  • 46. evasi0n Jailbreak • Worked for iOS 6.0 - 6.1.2 • No memory corruption • Used bypasses and logic bugs • Lockdownd service allowed fi le permissions to be changed • USB driver allowed arbitrary functions to be called
  • 48. Accessing the Phone • After jailbreaking • Install OpenSSH in Cydia • Connect via Wi-Fi or USB • Default credentials are • mobile / alpine • root / alpine
  • 49. Toolkit • Cydia -- open app store • BigBoss Recommended Tools • Command-line UNIX tools • Including apt
  • 50. Apple's CC Tools • Tools to parse, assemble, and link Mach-O binaries • File format for iOS and OSX apps • Part of the iOS and OS X development toolchain • Run on OS X or Linux
  • 51. • otool • Object fi le-displaying tool • All-purpose tool for Mach-O binary analysis • Reveals class and method names • Lists libraries, symbols • Shows header information and load commands Apple's CC Tools
  • 52. • nm • Displays symbol table of a binary or object fi le • lipo • Can combine or remove architecture types from an app Apple's CC Tools
  • 53. Debuggers • gdb • Cydia's version doesn't work well on modern iOS versions • Radare's version is better
  • 54. Code Signing • codesign • Apple's binary-signing tool • Can also display signatures • ldid • Saurik's code-signer
  • 55. Installipa • Normal app installation uses installd service • Veri fi es code signature • ipainstaller • Can install unsigned apps on jailbroken devices
  • 56. Exploring the Filesystem • Jailbroken devices allow full access • Unjailbroken devices allow access to portions of the fi lesystem, including • Sandboxed area where apps are installed • Must pair to a computer over USB fi rst • Use apps like iExplorer or iFunBox
  • 57. On a Jailbroken Device
  • 58. Property Lists • .plist fi les • Binary format similar to XML • Stores serialized objects and key-value pairs • plutil can convert plists to XML
  • 59. Other Files • Binary Cookies • From Web pages • Can be opened with BinaryCookieReader.py • SQLite Databases