OWASP Mobile Security Testing Guide (MSTG)
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).
📖 Read it on Gitbook⬇️ Download the latest PDF✅ Get the latest Mobile App Security Checklists⚡ Contribute!💥 Play with our Crackmes
The MSTG and the MASVS are being adopted by many companies, standards, and various organizations. Want to find out more? Check our users' document listing some of the adopters.
Connect with Us
- GitHub Discussions
- #project-mobile_omtg (Get Invitation)
- @OWASP_MSTG (Official Account)
- @bsd_daemon (Sven Schleier, Project Lead) @grepharder (Carlos Holguera, Project Lead)
How to Contribute
The MSTG is an open source effort and we welcome all kinds of contributions and feedback.
Help us improve & join our community:
Contribute with content:
💡 Propose ideas or suggest improvements (if it qualifies we'll promote it to an Issue)📄 Create a Pull Request for concrete fixes (e.g. grammar/typos) or content already approved by the core team.
Before you start contributing, please check our contribution guide which should get you started. If you have any doubts please contact us.
Contribution Credit / Acknowledgments
Contributors are added to the acknowledgments section based on their contributions logged by GitHub and/or by applying to a certain role and consistenly demonstrating their commitment. Acknowlegements are visible in the official owasp.org Project Page, in GitHub, GitBook and in the printed versions.
Contributors are categorized as follows:
- Project Leader / Author: Manage the development of the guide continuously and write a large amount of new content. Project Leadership cannot be achieved if any violations of the Code of Conduct occurred in the past. Be aware that you'll be expected to invest lots of time over several months.
- Reviewer: People that continuously monitor and review our Pull Requests or given useful feedback and suggesting changes.
- Most Helpful Discussions contributor: actively participate in our GitHub Discussions. Contributors with the most answers marked as "The Answer" will get recognized as "Most Helpful" in our official repos.
- 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.
Contact us (Sven Schleier (Slack: Sven) or Carlos Holguera (Slack: Carlos)) if you are planning to become an Author/Co-Author/Reviewer, are missing from the acknowledgements (note that we make updates frequently, but not in realtime).
MSTG Translations
The MSTG is a living document that changes and adapts to the most recent security recommendations every day. While we do want to reach the maximum audience possible, our past experience shows that maintaining translations has proven to be an extremely challenging task. Therefore, please understand that any PRs containing MSTG translations will be declined, but you're free to do them on your own forks.
🇯🇵 A translation of the MSTG into Japanese is available on Github: https://github.com/coky-t/owasp-mstg-ja. Thanks to @coky-t for pushing this forward!
That said, we strongly encourage further translations of the MASVS as it is much easier to maintain and you'll get a translated Mobile App Security Checklists mapping to the MSTG for free.
Other Formats
- Get the printed version via lulu.com
- Get the e-book on leanpub.com (please consider purchasing it to support our project or make a donation)
- Check our Document generation scripts
Table-of-Contents
Introduction
- Foreword
- Frontispiece
- Introduction to the Mobile Security Testing Guide
- Mobile App Taxonomy
- Mobile App Security Testing
General Testing Guide
- Mobile App Authentication Architectures
- Testing Network Communication
- Cryptography in Mobile Apps
- Testing Code Quality
- Tampering and Reverse Engineering
- Testing User Privacy Protection
Android Testing Guide
- Platform Overview
- Android Basic Security Testing
- Data Storage on Android
- Android Cryptographic APIs
- Local Authentication on Android
- Android Network APIs
- Android Platform APIs
- Code Quality and Build Settings for Android Apps
- Tampering and Reverse Engineering on Android
- Android Anti-Reversing Defenses
iOS Testing Guide
- Platform Overview
- iOS Basic Security Testing
- Data Storage on iOS
- iOS Cryptographic APIs
- Local Authentication on iOS
- iOS Network APIs
- iOS Platform APIs
- Code Quality and Build Settings for iOS Apps
- Tampering and Reverse Engineering on iOS
- iOS Anti-Reversing Defenses
Appendix
About Hybrid Apps
Please note that the MSTG focuses primarily on native apps. These are apps built with Java or Kotlin using the Android SDK for Android or built with Swift or Objective-C using the Apple SDKs for iOS. Apps using frameworks such as Nativescript, React-native, Xamarin, Cordova, etc. are not within the main focus of the MSTG. However, some essential controls, such as certificate pinning, have been explained already for some of these platforms.
If you are looking for more security recommendations on this field, feel free to take a look and contribute to the work-in-progress Google sheets based on the compliancy checklist 1.1.2: