SlideShare a Scribd company logo
Pentesting iPhone Applications




            satishb3@hotmail.com
Agenda
• iPhone App Basics
   – App development
   – App distribution


• Pentesting iPhone Apps
   – Methodology
   – Areas of focus


• Major Mobile Threats
Who am I

     <1            • Framework for functional testing tools
 Development




                   • Web application hacking, Network assessments,
5+ Information       Reverse engineering, Mobile application hacking…
   Security




                   • OWASP Hyderabad Contributor
Other Activities   • Blogging - Securitylearn.wordpress.com



                                                                        3
iPhone App Basics
• iPhone released in 2007
   – 110 million sales till March 2011

• Browser based Applications
   – HTML + CSS + JavaScript

• Native iOS Applications
   – Objective C & Cocoa Touch API
       • Super set of C, Compiles into native code (ARM)


• App Store
   – Centralized mechanism to distribute software
   – Only Apple signed application are available
   – Designed to protect the Apps from piracy & No malware
Why to build iPhone Application?
•   New business
•   Good way to launch new services
•   Urgency for clients
•   Users want them
•   Quick to develop
•   Fame and Fortune
    – Angry Birds cost $140k to develop and made $70 million in profits
       Source: mildtech.net
iPhone Application Distribution
Distributed as .ipa files

•   iOS Simulator
•   Device testing
•   Ad-Hoc Distribution
•   In-House Distribution
•   Over The Air Distribution
•   App Store Distribution
    – Apps have to obey Apple Review guidelines
Pentesting of iPhone Applications
• Areas of focus include
   –   Network communication
   –   Privacy Issues
   –   Application Data Storage
   –   Reverse Engineering
   –   URL Schemes
   –   Push Notifications


• Overlap between iPhone security and iPhone App security
JailBreaking
• iPhone does not allow unsigned applications
• Jailbreak gives a full access to the device
• Allows to install Apps which are not authorized (via Cydia)
• Can put your phone at increased risk to some security
  vulnerabilities
• Tools: PwnageTool, redsn0w, Sn0wbreeze,
         Greenpois0n, jailbreakMe…

• JailBreaking makes our work easy
Useful Cydia Apps
•   Openssh : SSH to phone
•   Adv-cmds : process commands like ps, kill…
•   Sqlite3 : Sqlite database client
•   GNU Debugger: Reverse engineering
•   Syslogd : To view iPhone logs
•   Tcpdump: capture traffic on phone
•   com.ericasadun.utlities: plutil (view plist files)
•   Darwin tools: Strings command
•   Odcctools: otool, nm …
SSH to iPhone
• Install Open SSH from Cydia
• On workstation install SSH Client
• iPhone has two users by default
   – Root and mobile (password is ‘alpine’)
• Connect to the phone as a root user via SSH
   – SSH over WIFI
                                                   SSH Clients
      > ssh root@iPhoneIP
                                         Type      Windows       OS X
      > password: alpine
                                         Console   Putty         SSH client
                                         GUI       WinSCP        Cyberduck
   – SSH over USB
      > ./itunnel_mux --lport 1234
      > ssh –p 1234 root@127.0.0.1
      > password: alpine
Network Communication
• Mobile application pentesting isn’t really all that different
   – It involves network communication
• Communication mechanism
       • Clear text transmission (http)
       • Encrypted transmission (https)
       • Use of Custom or Proprietary protocols
Clear text Transmission
• It’s 2011. Still Apps run on http
• More possible MITM attacks because of WIFI
   – Firesheep
• To analyze HTTP traffic
   – Enable manual proxy in iPhone
     (settings - > WIFI - > manual)
SSL Communication
• HTTPS is required for sensitive data transmission

• In SSL communication,
   – Apps may fail to validate SSL cert
       • allowsAnyHTTPSCertificateForHost
   – Apps which are validating the cert will not allow MITM
       • similar to modern browsers like Google chrome, IE 8…
   – To capture the traffic, load your proxy (burp) CA Cert to iPhone
   – Same applicable to other protocols which works on Cert
Custom Protocols
• Identify the communication protocol
   – On SSH Terminal:
      > tcpdump -w traffic.pcap
   – Load the .pcap in wireshark and analyze
• May not respect iPhone proxy settings
• DNS Spoofing techniques to MITM

• Once you capture the traffic it is a typical web application
  pentesting in which attacks are done on the application server
   -Authentication, Authorization, Session management, weak ciphers….
Privacy Issues
• Every iPhone has an unique device identifier called UDID
• Apps may collect the device UDID
• With UDID
   – Possible to observe the user browsing patterns
   – Feasible to locate user Geo location
   – More possible attacks are documented in “Eric Smith: iPhone-
     Applications-Privacy-Issues.pdf”
• One such application is
   – Openfient : mobile social gaming network
     http://corte.si/posts/security/openfeint-udid-deanonymization/

• Observe the network traffic to find out UDID transmission
Application Data Storage
• 76 percent of mobile Apps store user data on phone
• 10 percent Apps store passwords in clear text
  Source: viaforensics.com/appwatchdog

• Apps store information on phone
   – For better performance
   – Offline access

• Data storage locations
       •   Plist files
       •   Keychain
       •   Logs
       •   Screenshots
       •   Home directory
Application Directory Structure
• Application run in a sandbox (seatbelt) with ‘mobile’ privileges
• Each application gets a private area of the file system
   – App Home directory: /var/mobile/Applications/[GUID]
    SubDirectory                               Description
    Appname.app                Contains the application code and static data

     Documents             Data that may be shared with desktop through iTunes

       Library                            Application support files

 Library/Preferences/                     App specific preferences

                         Data that should persist across successive launches of the
   Library/Caches/
                                application but not needed to be backed up
                        Temporary files that do not need to persist across successive
         tmp
                                         launches of the application
Plist files
• Property list files
    – often used to store user’s properties of an App
    – /var/mobile/Applications/[appid]/Documents/Preferences
•   Key value pairs are stored in binary format
•   Easily extracted and modified with property list editor, plutil
•   Look for usernames , passwords, cookies…
•   Apps may take Authentication/Authorization decisions
    – Ex: admin=1, timeout=10


• Do not store clear text data in plist files
Keychain
•   SQLite database for sensitive data storage
•   Four tables: genp, inet, cert, keys
•   Located at: /var/Keychains/keychain-2.db
•   Keychain data is encrypted
    – Uses hardware encryption key
    – Uses user passcode for encryption
        • Depends on accessibility constant of keychain entry
    – Can not be moved to other device
• Idea is, developers can leverage keychains to have the OS to
  store information securely
    – Not any more
Keychain
• Accessible to all the applications
• Application can only access it’s key chain items
   – On a JailBroken device It can be bypassed
• Keychain Dumper Tool – by github
   – Displays keychain entries of all the installed applications

• Use data protection API while storing data in keychain
• Use kSecAttrAccessibleWhenUnlocked accessibility constant
   – If phone is lost & user sets a passcode, it is difficult to retrieve
     protected contents in keychain
   – Keychain data is encrypted with User Passcode
Error Logs
• Apps may write sensitive data in logs
   –   Debugging (NSLog calls)
   –   Trouble shooting
   –   Requests & Responses
   –   /private/var/log/syslog

• To view iPhone logs
   – Console App (from AppStore)
   – Sync to iTunes
        • Mac OS X : ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>
        • Windows XP:
          C:Documents and Settings<USERNAME>Application DataApple
          computerLogsCrashReporter/<DEVICE_NAME>
Screenshot
• Home button shrinks your application with a nice effect
• iOS takes screen shots of the application to create that effect
• Sensitive data may get cached
   – App directory/Library/Caches/Snapshots


• Solution
   – Remove sensitive data or change the screen before the
     applicationDidEnterBackground() function returns
   – Instead of hiding or removing sensitive data you can also prevent
     back- grounding altogether by setting the "Application does not run in
     background" property in the application's Info.plist file
Screenshot




             Copied From SANS website
Home directory
•   Apps can store data in application home directory
•   Custom encryption mechanism can be used to store files
•   Use Reverse engineering techniques to find encryption key
•   Write tools to break the custom encryption
Reverse Engineering
• Apps downloaded from AppStore are encrypted
    – Fairplay DRM (AES)
• On a JailBroken device, we can decrypt Apps easily
    – Craculous : decrypts Apps on device
    – Installous : installs decrypted Apps on device
•   Self distributed Apps are not encrypted
•   Hex Rays decompiler & Run time debugger (gdb)
•   Look for Hard coded passwords and encryption keys
•   Buffer Overflows
    – iOS 4.3 introduced ASLR support
        • Apps must be compiled with PIE (position independent executable) for full support
URL Scheme
• Protocol Handlers - mailto:, tel:
• Browser to App interaction
• View Info.plist for supported schemes
       > plutil Facebook.app/Info.plist
          CFBundleURLName = "com.facebook";
          CFBundleURLSchemes = ( fbauth, fb );
• Parameters are supplied to the application
      Mailto:securitylearn.wordpress@gmail.com
      twitter://post?message=visit%20maniacdev.com
   – Bad Input crash Apps
URL Scheme
• Decrypt the App to find parameters
     > strings Facebook.app/Facebook | grep 'fb:'
       fb://online#offline
       fb://birthdays/(initWithMonth:)/(year:)
       fb://userset
       fb://nearby
       fb://place/(initWithPageId:)
   – http://wiki.akosma.com/IPhone_URL_Schemes
• Remote attacks
   – URL Scheme allows to edit or delete data without user permission
     Ex: Skype URL Handler Dial Arbitrary Number
     <iframe src="skype://14085555555?call"></iframe>
Push Notifications
• App vendors use this service to push notifications to the
  user's device even when the app is in a frozen state
   – Instant Messenger alerts the user when a new message is
     received even though the user is using another app
• Device token unique to ios instance is required
• Push notification data can be read by Apple
   – Do not send Confidential data in notifications
• Do not allow push notifications to modify App data
Major mobile Threats
• Easy to lose phones
   – Device is protected with passcode
   – Sensitive files on the device are encrypted
   – What’s the threat?
• Data encryption in mobile is only available after boot up
   – Boot Rom exploits
       • all files on the device can be copied with in 10 minutes
   – Passcode brute force
       • 4 digit passcode can be brute forced with in 20 minutes

• Mobile App Risks
   – Veracode Top 10
   – OWASP Top 10
References
• BlackHat 2011 - DaiZovi_iOS_Security
• Fraunhofer iOS Device encryption security
• GitHub – Keychain Dumper
Thank You




Email : Satishb3@securitylearn.net

Blog: http://www.securitylearn.net

More Related Content

PPTX
iOS-Application-Security-iAmPr3m
PDF
Hacking and Securing iOS Apps : Part 1
PDF
I Want More Ninja – iOS Security Testing
PPTX
Hacking and securing ios applications
KEY
Jailbreaking iOS
PPTX
iOS Security and Encryption
PDF
YOW! Connected 2014 - Developing Secure iOS Applications
PDF
iOS Application Penetration Testing
iOS-Application-Security-iAmPr3m
Hacking and Securing iOS Apps : Part 1
I Want More Ninja – iOS Security Testing
Hacking and securing ios applications
Jailbreaking iOS
iOS Security and Encryption
YOW! Connected 2014 - Developing Secure iOS Applications
iOS Application Penetration Testing

What's hot (20)

PDF
OWASP Melbourne - Introduction to iOS Application Penetration Testing
PPT
iOS Hacking: Advanced Pentest & Forensic Techniques
PDF
iOS Application Penetation Test
PDF
Attacking and Defending Apple iOS Devices
PPT
Mobile Security Assessment: 101
PPTX
Pentesting iOS Applications
PDF
CrikeyCon 2015 - iOS Runtime Hacking Crash Course
PPT
iOS Application Penetration Testing for Beginners
PDF
Pentesting iOS Apps - Runtime Analysis and Manipulation
PDF
Ruxmon April 2014 - Introduction to iOS Penetration Testing
PDF
iOS Application Security
PDF
Pentesting iOS Apps
PPTX
iOS jailbreaking
PDF
Iphone Presentation for MuMe09
PDF
Five Lessons Learned From Breaking Into A Casino: Confessions of a Penetratio...
PDF
Yow connected developing secure i os applications
PDF
Security Best Practices for Mobile Development
PDF
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
PDF
Dark Side of iOS [SmartDevCon 2013]
PDF
Smart Bombs: Mobile Vulnerability and Exploitation
OWASP Melbourne - Introduction to iOS Application Penetration Testing
iOS Hacking: Advanced Pentest & Forensic Techniques
iOS Application Penetation Test
Attacking and Defending Apple iOS Devices
Mobile Security Assessment: 101
Pentesting iOS Applications
CrikeyCon 2015 - iOS Runtime Hacking Crash Course
iOS Application Penetration Testing for Beginners
Pentesting iOS Apps - Runtime Analysis and Manipulation
Ruxmon April 2014 - Introduction to iOS Penetration Testing
iOS Application Security
Pentesting iOS Apps
iOS jailbreaking
Iphone Presentation for MuMe09
Five Lessons Learned From Breaking Into A Casino: Confessions of a Penetratio...
Yow connected developing secure i os applications
Security Best Practices for Mobile Development
Online Retailer's Conference 2013 - Hacking Mobile Applications - Industry Ca...
Dark Side of iOS [SmartDevCon 2013]
Smart Bombs: Mobile Vulnerability and Exploitation
Ad

Viewers also liked (16)

PPT
Infosecure 2011 owasp y cumplimiento normativo pci-dss y pa-dss
PPTX
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
PDF
Forensic analysis of iPhone backups (iOS 5)
PDF
Lifetime support-middleware-069163
PDF
Droidcon it-2014-marco-grassi-viaforensics
DOC
دليل جميع مراكز تكوين الأطر التربوية
PPT
iPhone forensics on iOS5
PDF
C0c0n 2011 mobile security presentation v1.2
PPT
padding oracle attack
PPT
Pentesting web applications
DOC
الهاكرز
 
PPTX
Web application attack Presentation
PPSX
بحث علمي عن الهاكرز . Hackers
PDF
Reverse Engineering iOS apps
PDF
Pentest with Metasploit
PPTX
Web application attacks
Infosecure 2011 owasp y cumplimiento normativo pci-dss y pa-dss
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Forensic analysis of iPhone backups (iOS 5)
Lifetime support-middleware-069163
Droidcon it-2014-marco-grassi-viaforensics
دليل جميع مراكز تكوين الأطر التربوية
iPhone forensics on iOS5
C0c0n 2011 mobile security presentation v1.2
padding oracle attack
Pentesting web applications
الهاكرز
 
Web application attack Presentation
بحث علمي عن الهاكرز . Hackers
Reverse Engineering iOS apps
Pentest with Metasploit
Web application attacks
Ad

Similar to Pentesting iPhone applications (20)

PPTX
Windows Phone 8 Security and Testing WP8 Apps
PDF
Evaluating iOS Applications
PDF
Pentesting Mobile Applications (Prashant Verma)
PPT
Mobile code mining for discovery and exploits nullcongoa2013
PDF
CNIT 128 8: Mobile development security
PPT
Automation In Android & iOS Application Review
PPTX
128-ch4.pptx
PDF
CNIT 128 Ch 4: Android
PDF
2a Analyzing iOS Apps Part 1
PDF
Mobile Browser Content Handling
PDF
CactusCon - Practical iOS App Attack and Defense
PPTX
iOS application (in)security
PDF
CNIT 128 2. Analyzing iOS Applications (Part 1)
PPTX
Android Security and Peneteration Testing
PDF
Designing Secure Mobile Apps
PPT
Outsmarting SmartPhones
PPTX
Hacking and Securing iOS Applications by Satish Bomisstty
PDF
Mobile Application Security Code Reviews
PPT
iOS Application Pentesting
PDF
Hacking and Securing iOS Applications
Windows Phone 8 Security and Testing WP8 Apps
Evaluating iOS Applications
Pentesting Mobile Applications (Prashant Verma)
Mobile code mining for discovery and exploits nullcongoa2013
CNIT 128 8: Mobile development security
Automation In Android & iOS Application Review
128-ch4.pptx
CNIT 128 Ch 4: Android
2a Analyzing iOS Apps Part 1
Mobile Browser Content Handling
CactusCon - Practical iOS App Attack and Defense
iOS application (in)security
CNIT 128 2. Analyzing iOS Applications (Part 1)
Android Security and Peneteration Testing
Designing Secure Mobile Apps
Outsmarting SmartPhones
Hacking and Securing iOS Applications by Satish Bomisstty
Mobile Application Security Code Reviews
iOS Application Pentesting
Hacking and Securing iOS Applications

Recently uploaded (20)

PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
01-Introduction-to-Information-Management.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
master seminar digital applications in india
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Classroom Observation Tools for Teachers
PDF
Pre independence Education in Inndia.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Week 4 Term 3 Study Techniques revisited.pptx
VCE English Exam - Section C Student Revision Booklet
STATICS OF THE RIGID BODIES Hibbelers.pdf
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
01-Introduction-to-Information-Management.pdf
PPH.pptx obstetrics and gynecology in nursing
Final Presentation General Medicine 03-08-2024.pptx
Abdominal Access Techniques with Prof. Dr. R K Mishra
Microbial disease of the cardiovascular and lymphatic systems
Pharmacology of Heart Failure /Pharmacotherapy of CHF
master seminar digital applications in india
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Classroom Observation Tools for Teachers
Pre independence Education in Inndia.pdf
Anesthesia in Laparoscopic Surgery in India
human mycosis Human fungal infections are called human mycosis..pptx
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Supply Chain Operations Speaking Notes -ICLT Program

Pentesting iPhone applications

  • 1. Pentesting iPhone Applications satishb3@hotmail.com
  • 2. Agenda • iPhone App Basics – App development – App distribution • Pentesting iPhone Apps – Methodology – Areas of focus • Major Mobile Threats
  • 3. Who am I <1 • Framework for functional testing tools Development • Web application hacking, Network assessments, 5+ Information Reverse engineering, Mobile application hacking… Security • OWASP Hyderabad Contributor Other Activities • Blogging - Securitylearn.wordpress.com 3
  • 4. iPhone App Basics • iPhone released in 2007 – 110 million sales till March 2011 • Browser based Applications – HTML + CSS + JavaScript • Native iOS Applications – Objective C & Cocoa Touch API • Super set of C, Compiles into native code (ARM) • App Store – Centralized mechanism to distribute software – Only Apple signed application are available – Designed to protect the Apps from piracy & No malware
  • 5. Why to build iPhone Application? • New business • Good way to launch new services • Urgency for clients • Users want them • Quick to develop • Fame and Fortune – Angry Birds cost $140k to develop and made $70 million in profits Source: mildtech.net
  • 6. iPhone Application Distribution Distributed as .ipa files • iOS Simulator • Device testing • Ad-Hoc Distribution • In-House Distribution • Over The Air Distribution • App Store Distribution – Apps have to obey Apple Review guidelines
  • 7. Pentesting of iPhone Applications • Areas of focus include – Network communication – Privacy Issues – Application Data Storage – Reverse Engineering – URL Schemes – Push Notifications • Overlap between iPhone security and iPhone App security
  • 8. JailBreaking • iPhone does not allow unsigned applications • Jailbreak gives a full access to the device • Allows to install Apps which are not authorized (via Cydia) • Can put your phone at increased risk to some security vulnerabilities • Tools: PwnageTool, redsn0w, Sn0wbreeze, Greenpois0n, jailbreakMe… • JailBreaking makes our work easy
  • 9. Useful Cydia Apps • Openssh : SSH to phone • Adv-cmds : process commands like ps, kill… • Sqlite3 : Sqlite database client • GNU Debugger: Reverse engineering • Syslogd : To view iPhone logs • Tcpdump: capture traffic on phone • com.ericasadun.utlities: plutil (view plist files) • Darwin tools: Strings command • Odcctools: otool, nm …
  • 10. SSH to iPhone • Install Open SSH from Cydia • On workstation install SSH Client • iPhone has two users by default – Root and mobile (password is ‘alpine’) • Connect to the phone as a root user via SSH – SSH over WIFI SSH Clients > ssh root@iPhoneIP Type Windows OS X > password: alpine Console Putty SSH client GUI WinSCP Cyberduck – SSH over USB > ./itunnel_mux --lport 1234 > ssh –p 1234 root@127.0.0.1 > password: alpine
  • 11. Network Communication • Mobile application pentesting isn’t really all that different – It involves network communication • Communication mechanism • Clear text transmission (http) • Encrypted transmission (https) • Use of Custom or Proprietary protocols
  • 12. Clear text Transmission • It’s 2011. Still Apps run on http • More possible MITM attacks because of WIFI – Firesheep • To analyze HTTP traffic – Enable manual proxy in iPhone (settings - > WIFI - > manual)
  • 13. SSL Communication • HTTPS is required for sensitive data transmission • In SSL communication, – Apps may fail to validate SSL cert • allowsAnyHTTPSCertificateForHost – Apps which are validating the cert will not allow MITM • similar to modern browsers like Google chrome, IE 8… – To capture the traffic, load your proxy (burp) CA Cert to iPhone – Same applicable to other protocols which works on Cert
  • 14. Custom Protocols • Identify the communication protocol – On SSH Terminal: > tcpdump -w traffic.pcap – Load the .pcap in wireshark and analyze • May not respect iPhone proxy settings • DNS Spoofing techniques to MITM • Once you capture the traffic it is a typical web application pentesting in which attacks are done on the application server -Authentication, Authorization, Session management, weak ciphers….
  • 15. Privacy Issues • Every iPhone has an unique device identifier called UDID • Apps may collect the device UDID • With UDID – Possible to observe the user browsing patterns – Feasible to locate user Geo location – More possible attacks are documented in “Eric Smith: iPhone- Applications-Privacy-Issues.pdf” • One such application is – Openfient : mobile social gaming network http://corte.si/posts/security/openfeint-udid-deanonymization/ • Observe the network traffic to find out UDID transmission
  • 16. Application Data Storage • 76 percent of mobile Apps store user data on phone • 10 percent Apps store passwords in clear text Source: viaforensics.com/appwatchdog • Apps store information on phone – For better performance – Offline access • Data storage locations • Plist files • Keychain • Logs • Screenshots • Home directory
  • 17. Application Directory Structure • Application run in a sandbox (seatbelt) with ‘mobile’ privileges • Each application gets a private area of the file system – App Home directory: /var/mobile/Applications/[GUID] SubDirectory Description Appname.app Contains the application code and static data Documents Data that may be shared with desktop through iTunes Library Application support files Library/Preferences/ App specific preferences Data that should persist across successive launches of the Library/Caches/ application but not needed to be backed up Temporary files that do not need to persist across successive tmp launches of the application
  • 18. Plist files • Property list files – often used to store user’s properties of an App – /var/mobile/Applications/[appid]/Documents/Preferences • Key value pairs are stored in binary format • Easily extracted and modified with property list editor, plutil • Look for usernames , passwords, cookies… • Apps may take Authentication/Authorization decisions – Ex: admin=1, timeout=10 • Do not store clear text data in plist files
  • 19. Keychain • SQLite database for sensitive data storage • Four tables: genp, inet, cert, keys • Located at: /var/Keychains/keychain-2.db • Keychain data is encrypted – Uses hardware encryption key – Uses user passcode for encryption • Depends on accessibility constant of keychain entry – Can not be moved to other device • Idea is, developers can leverage keychains to have the OS to store information securely – Not any more
  • 20. Keychain • Accessible to all the applications • Application can only access it’s key chain items – On a JailBroken device It can be bypassed • Keychain Dumper Tool – by github – Displays keychain entries of all the installed applications • Use data protection API while storing data in keychain • Use kSecAttrAccessibleWhenUnlocked accessibility constant – If phone is lost & user sets a passcode, it is difficult to retrieve protected contents in keychain – Keychain data is encrypted with User Passcode
  • 21. Error Logs • Apps may write sensitive data in logs – Debugging (NSLog calls) – Trouble shooting – Requests & Responses – /private/var/log/syslog • To view iPhone logs – Console App (from AppStore) – Sync to iTunes • Mac OS X : ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME> • Windows XP: C:Documents and Settings<USERNAME>Application DataApple computerLogsCrashReporter/<DEVICE_NAME>
  • 22. Screenshot • Home button shrinks your application with a nice effect • iOS takes screen shots of the application to create that effect • Sensitive data may get cached – App directory/Library/Caches/Snapshots • Solution – Remove sensitive data or change the screen before the applicationDidEnterBackground() function returns – Instead of hiding or removing sensitive data you can also prevent back- grounding altogether by setting the "Application does not run in background" property in the application's Info.plist file
  • 23. Screenshot Copied From SANS website
  • 24. Home directory • Apps can store data in application home directory • Custom encryption mechanism can be used to store files • Use Reverse engineering techniques to find encryption key • Write tools to break the custom encryption
  • 25. Reverse Engineering • Apps downloaded from AppStore are encrypted – Fairplay DRM (AES) • On a JailBroken device, we can decrypt Apps easily – Craculous : decrypts Apps on device – Installous : installs decrypted Apps on device • Self distributed Apps are not encrypted • Hex Rays decompiler & Run time debugger (gdb) • Look for Hard coded passwords and encryption keys • Buffer Overflows – iOS 4.3 introduced ASLR support • Apps must be compiled with PIE (position independent executable) for full support
  • 26. URL Scheme • Protocol Handlers - mailto:, tel: • Browser to App interaction • View Info.plist for supported schemes > plutil Facebook.app/Info.plist CFBundleURLName = "com.facebook"; CFBundleURLSchemes = ( fbauth, fb ); • Parameters are supplied to the application Mailto:securitylearn.wordpress@gmail.com twitter://post?message=visit%20maniacdev.com – Bad Input crash Apps
  • 27. URL Scheme • Decrypt the App to find parameters > strings Facebook.app/Facebook | grep 'fb:' fb://online#offline fb://birthdays/(initWithMonth:)/(year:) fb://userset fb://nearby fb://place/(initWithPageId:) – http://wiki.akosma.com/IPhone_URL_Schemes • Remote attacks – URL Scheme allows to edit or delete data without user permission Ex: Skype URL Handler Dial Arbitrary Number <iframe src="skype://14085555555?call"></iframe>
  • 28. Push Notifications • App vendors use this service to push notifications to the user's device even when the app is in a frozen state – Instant Messenger alerts the user when a new message is received even though the user is using another app • Device token unique to ios instance is required • Push notification data can be read by Apple – Do not send Confidential data in notifications • Do not allow push notifications to modify App data
  • 29. Major mobile Threats • Easy to lose phones – Device is protected with passcode – Sensitive files on the device are encrypted – What’s the threat? • Data encryption in mobile is only available after boot up – Boot Rom exploits • all files on the device can be copied with in 10 minutes – Passcode brute force • 4 digit passcode can be brute forced with in 20 minutes • Mobile App Risks – Veracode Top 10 – OWASP Top 10
  • 30. References • BlackHat 2011 - DaiZovi_iOS_Security • Fraunhofer iOS Device encryption security • GitHub – Keychain Dumper
  • 31. Thank You Email : Satishb3@securitylearn.net Blog: http://www.securitylearn.net