Book Image

Mobile Application Penetration Testing

By : Vijay Kumar Velu
Book Image

Mobile Application Penetration Testing

By: Vijay Kumar Velu

Overview of this book

Mobile security has come a long way over the last few years. It has transitioned from "should it be done?" to "it must be done!"Alongside the growing number of devises and applications, there is also a growth in the volume of Personally identifiable information (PII), Financial Data, and much more. This data needs to be secured. This is why Pen-testing is so important to modern application developers. You need to know how to secure user data, and find vulnerabilities and loopholes in your application that might lead to security breaches. This book gives you the necessary skills to security test your mobile applications as a beginner, developer, or security practitioner. You'll start by discovering the internal components of an Android and an iOS application. Moving ahead, you'll understand the inter-process working of these applications. Then you'll set up a test environment for this application using various tools to identify the loopholes and vulnerabilities in the structure of the applications. Finally, after collecting all information about these security loop holes, we'll start securing our applications from these threats.
Table of Contents (15 chapters)
Mobile Application Penetration Testing
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Network level


Any data between the device and the server is over the network level. The following screen capture provides the high-level mind map for network-level protection:

Certificate pinning

Certificate pinning is process of associating a host with expected X509 certificate or public key; once exposed, this certificate will be pinned to a device. We also did the Tweaks on how to bypass these techniques in Chapter 7, Full Steam Ahead – Attacking iOS Applications in the section Beating the SSL certificate pinning. Certificate pinning is the only solution to prevent MitM attacks.

In iOS, cert pinning is done through NSURLConnectionDelegate. This delegate should implement the following:

connection:canAuthenticateAgainstProtectionSpace
connection:didReceiveAuthenticationChallenge

And within connection:didReceiveAuthenticationChallenge, the delegate should call secTrustEvaluate to perform the traditional checks.

In Android, this technique can be done by the custom X509TrustManager class, which...