Here are the slides from my recent webinar. Sorry about the delay!
Tag Archives: ios
Having spoken at both at the SANS Mobile Device Security Summit as well as OWASP AppSec DC recently about testing mobile applications I’ve encountered that like the old saying goes “There are many ways to skin a cat”, there are also many ways to assess a mobile application. I’ve seen very detailed testing methodologies, not so detailed and everything in between. I’ve also heard other security professionals say that testing mobile applications are just like testing a web application. This is simply a wrong and inaccurate statement. Mobile applications are fairly complex and just assessing the application layer is only a small look into the overall security of a mobile application. While the OWASP Mobile Security Project will help define a complete mobile application testing methodology (which is in process), here are three areas that need to be tested in every mobile application.
1. The Mobile File System
How’s the application storing data and where is it being stored? You’d be surprised how much information is being stored in files, SQLite databases, system logs and more. If you’re lucky you will sometimes find private keys and hardcoded passwords. As a great example, the mobile Facebook application suffers from a file system vulnerability as I write this. The author likes to call this a “plist hijack attack”. Simply move the plist file to another mobile device and you are logged in as that user. As for tools to use when looking for file system vulnerabilities you should really check out the forensic approach that John Sawyer from InGuardians has developed. It’s my preferred method for seeing how the app writes to the file system and saves lots of time over creating a dd image.
2. The Application Layer
How’s the application communicating over HTTP? How are web services being used and how are they configured. Important things such as authorization and authentication need to be reviewed as well as session handling, business logic, input validation and crypto functions. Business logic needs to reviewed just like you would in a Web Application Assessment to find flaws in the way critical functions (like shopping cart checkout processes) were developed. Remember to never under estimate the criticality of Web Services! For reference and context, check out the presentation that Josh Abraham, Kevin Johnson and I gave at Black Hat USA last year.
Something else worth mentioning is that you can’t rely on traditional web proxies like Burp Suite to test the application layer on a mobile app. I’ve encountered applications that are configured to bypass device proxy settings! You need to use a tool like Mallory which is a fantastic TCP and UDP proxy. Mallory sees all traffic and allows you to manipulate and fuzz it. There are other ways to do this as well but regardless, you need to have a way to see all traffic the mobile app may generate.
The application layer is also where you need to look for issues specific to mobile applications like UDID usage in iOS. UDID is currently being used by many applications for unique device identification. However, the use of UDID is becoming an increasing concern from a privacy perspective. Not to mention, Apple is cracking down on UDID usage by now denying applications in the Apple App Store. Check out the presentation I did at OWASP AppSec DC this year about some of the privacy and security concerns regarding UDID.
3. The Transport Layer
How does the application communicate over TCP? How are custom protocols and third-party APIs used? Does the application use SSL? At OWASP AppSec DC we talked about the LinkedIn mobile application that was vulnerable to “sidejacking” or better known as HTTP session hijacking. This is where an attacker can pull out the session cookie in clear text and replay this so the attacker can login as the user. The popular “Firesheep” tool released in 2010 demonstrated this nicely. The good news is that the recent release of the LinkedIn app (version 5.0) fixes the sidejacking issue. Unfortunately though, using SSL for just the login process and defaulting back to HTTP is an issue many mobile and web applications still have.
Mobile Application testing is something that will evolve as mobile apps get more complex and the business drives more towards mobile solutions. If you’re deploying mobile apps for your business it’s more important than ever to have testing done on these three areas at a minimum. Lastly, keep up-to-date on the latest developments on Mobile security and testing methodologies by getting involved with the OWASP Mobile Security Project.
Share and Enjoy
Below are links over on SlideShare to the latest version of my ever evolving presentation “Attacking & Defending Apple iOS Devices in the Enterprise”. This is the version I presented at the SANS Mobile Device Security Summit a few weeks ago. I include information on iOS 5, the latest jailbreaks at the time (this has since changed with the release of iOS 5.1) and some information on the security of iCloud.
Just a reminder that I’ll be presenting Smart Bombs: Mobile Vulnerability and Exploitation with John Sawyer and Kevin Johnson at OWASP AppSec DC on April 5th in Washington DC. I’ll be focusing my research on iOS application testing and some of the vulnerabilities discovered in some of the top 25 iOS applications.
Share and Enjoy
I’ll be presenting “Attacking and Defending Apple iOS Devices in the Enterprise” Monday, March 12 @ 10am. I’ve got a bunch of new content about iOS 5, iCloud and the latest attacks on these devices. This is the inaugural event for SANS and I’m proud to be part of it! More information can be found here at the SANS website.
Share and Enjoy
Last week I spoke at the Central Ohio ISSA Conference about Attacking and Defending Apple IOS Devices. This talk was based on information gathered from several of the mobile pentests that I conducted at SecureState. I’ll be working on more research that will be going into an white paper that I will hopefully be releasing in the next few months. You can find my slides on SlideShare below and watch the video graciously recorded by Iron Geek.
UPDATE (5/27): I found a very nice script by Patrick Toomey which can dump the contents of the keychain on Jailbroken iOS devices. More details about how the script runs can be found in this blog post. Note that the type of information you get back depends if the passcode is enabled or not. You will get more keychain entries back if the passcode is not enabled. I had mentioned in my presentation that I hadn’t found a script to do this yet…well here it is. 🙂