SlideShare a Scribd company logo
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

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
Subhransu Behera
 
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)
Sam Bowne
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3m
Prem Kumar (OSCP)
 
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
Denim Group
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application Security
Egor Tolstoy
 
Evaluating iOS Applications
Evaluating iOS ApplicationsEvaluating iOS Applications
Evaluating iOS Applications
iphonepentest
 
Outsmarting SmartPhones
Outsmarting SmartPhonesOutsmarting SmartPhones
Outsmarting SmartPhones
saurabhharit
 
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)
Sam Bowne
 
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
Nino Ho
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
Sam Bowne
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
Sam Bowne
 
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
Blueinfy Solutions
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
DataArt
 
Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)Pentesting Mobile Applications (Prashant Verma)
Pentesting Mobile Applications (Prashant Verma)
ClubHack
 
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
Eric Monti
 
Forensics WS Consolidated
Forensics WS ConsolidatedForensics WS Consolidated
Forensics WS ConsolidatedKarter Rohrer
 
iOS Application Penetation Test
iOS Application Penetation TestiOS Application Penetation Test
iOS Application Penetation TestJongWon Kim
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS DevelopmentAsim Rais Siddiqui
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
jaxarcsig
 

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

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

TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
Nguyen Thanh Tu Collection
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
bennyroshan06
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
GeoBlogs
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
AzmatAli747758
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 

Recently uploaded (20)

TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptxMARUTI SUZUKI- A Successful Joint Venture in India.pptx
MARUTI SUZUKI- A Successful Joint Venture in India.pptx
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 

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