This is the official GitHub Repository of the OWASP Mobile Security Testing Guide (MSTG). The MSTG is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the controls listed in the OWASP Mobile Application Verification Standard (MASVS). You can also read the MSTG on Gitbook or download it as an e-book.
- Header
- Foreword
- Frontispiece
- Introduction to the Mobile Security Testing Guide
- Mobile App Taxonomy
- Mobile App Security Testing
- Tampering and Reverse Engineering
- Testing Code Quality
- Testing Cryptography for Mobile Apps
- Testing Authentication with the Backend
- Testing Network Communication
- Platform Overview
- Setting up a Testing Environment for Android Apps
- Testing Data Storage
- Testing Cryptography
- Testing Local Authentication
- Testing Network Communication
- Testing Platform Interaction
- Testing Code Quality and Build Settings
- Tampering and Reverse Engineering on Android
- Testing Anti-Reversing Defenses
- Platform Overview
- Setting up a Testing Environment for iOS Apps
- Testing Data Storage
- Testing Cryptography
- Testing Local Authentication
- Testing Network Communication
- Testing Platform Interaction
- Testing Code Quality and Build Settings
- Tampering and Reverse Engineering on iOS
- Testing Anti-Reversing Defenses
The MSTG is not complete yet. You can however get intermediate builds in multiple formats.
-
Get the e-book. The book is available for free, but you can choose to purchase it at a price of your choosing if you wish to support our project. All funds raised through sales of the e-book go directly into the project budget and will be used to fund production of the final release.
-
Read it on Gitbook. The book is automatically synchronized with the main repo. You can use the gitbook command line tool to generate PDF, epub, and other e-book formats. Please note that we have disabled the ebook export features on gitbook.com for the time being - they will be enabled once the project reaches beta status.
-
Clone the repository and run the document generator (requires pandoc). This produces docx and html files in the "Generated" subdirectory.
$ git clone https://github.com/OWASP/owasp-mstg/
$ cd owasp-mstg/Tools/
$ ./generate_document.sh
You can also use the document index to navigate the master branch of the MSTG.
We are searching for additional authors, reviewers and editors. The best way to get started is to browse the existing content. Also, check the project dashboard for a list of open tasks.
Drop a us line on the Slack channel before you start working on a topic. This helps us to keep track of what everyone is doing and prevent conflicts. You can create a Slack account here:
Before you start contributing, please read our brief style guide which contains a few basic writing rules.
If there's something you really want to see in the guide, or you want to suggest an improvement, create an issue issue or ping us on Slack.
Contributors are added to the acknowledgements table based on their contributions logged by GitHub. The list of names is sorted by the number of lines added. Authors are categorized as follows:
- Project Leader / Author: Manage development of the guide continuously and write a large amount of content.
- Co-Author: Consistently contribute quality content, at least 2,000 additions logged.
- Top Contributor: Consistently contribute quality content, at least 500 additions logged.
- Contributor: Any form of contribution, at least 50 additions logged.
- Mini-contributor: Everything below 50 additions, e.g. committing a single word or sentence.
- Reviewer: People that haven't submitted their own pull requests, but have created issues or given useful feedback in other ways.
Please ping us or create a pull request if you are missing from the table or in the wrong column (note that we update the table frequently, but not in realtime).
If you are willing to write a large portion of the guide and help consistently drive the project forward, you can join as an author. Be aware that you'll be expected to invest lots of time over several months. Contact Bernhard Mueller (Slack: bernhardm) for more information.