SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler 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

Mais conteúdo relacionado

Semelhante a 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 1Subhransu 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-iAmPr3mPrem 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 WebinarDenim Group
 
iOS Application Security
iOS Application SecurityiOS Application Security
iOS Application SecurityEgor Tolstoy
 
Evaluating iOS Applications
Evaluating iOS ApplicationsEvaluating iOS Applications
Evaluating iOS Applicationsiphonepentest
 
Outsmarting SmartPhones
Outsmarting SmartPhonesOutsmarting SmartPhones
Outsmarting SmartPhonessaurabhharit
 
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 lasconNino 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: AndroidSam 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 nullcongoa2013Blueinfy 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 ThatEric 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 Notesjaxarcsig
 

Semelhante a 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
 

Mais de 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 SecuritySam Bowne
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam Bowne
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic CurvesSam Bowne
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-HellmanSam Bowne
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android ApplicationsSam 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
 
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 3Sam Bowne
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard ProblemsSam 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 MethodologySam Bowne
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated EncryptionSam 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 CiphersSam Bowne
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data CollectionSam 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
 

Mais de 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)
 

Último

Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 

Último (20)

Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.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