This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

OWASP Mobile Security Testing Guide

From OWASP
Revision as of 11:23, 26 December 2016 by Bernhard Mueller (talk | contribs) (Main)

Jump to: navigation, search
OWASP MSTG Header.jpg

Our Vision

Create a comprehensive methodology that covers the processes, techniques, and tools used during a mobile app security test, and define an exhaustive set of test cases that enables testers to deliver consistent and complete results.

At least, that was the initial vision. However, we soon discovered that we had to ask some deeper questions on what mobile app security is about: Without a reasonable definition a "secure" mobile app, there wasn't really anything to test against. We therefore went back to the drawing board and wrote the MASVS, a mobile security standard that defines the baseline security requirements.

Main Documents

Masvs-sample-mini.jpg Mobile AppSec Verification Standard (MASVS)

A standard for mobile app security. It is meant to be used by mobile software architects and developers seeking to develop secure mobile applications and as a basis for mobile app security testing methodologies. The MASVS lists requirements for both security controls and software protection mechanisms, and defines four verification levels that can be applied to achieve different grades of security and resiliency.

The MASVS is in a pre-release state. A (slightly outdated) PDF release is available. The most current set of requirements can be found in the master branch on GitHub.

Testing-guide-sample-mini.jpg Mobile Security Testing Guide (MSTG)

A comprehensive guide for iOS and Android mobile security testers that includes the following content:

  1. Mobile platform internals
  2. Testing in the secure development lifecycle
  3. Basic white-box and black-box security testing
  4. Mobile reverse engineering and tampering
  5. Assessing software protections
  6. Detailed white-box and black-box test cases that map to the requirements in the MASVS.

The MSTG is a work-in-progress. Currently, we hope to be "feature-complete" in Q1 2017. You can access the existing content in the GitHub Repo.

Checklist.jpg Mobile Security Testing Checklists

A basis of checklists will be made available in addition to the verification standard and testing guide.


Classifications

Owasp-breakers-small.png
Cc-button-y-sa-small.png
Project Type Files DOC.jpg

Project Leaders

Bernhard Mueller

Sven Schleier

Project Initiator

Milan Singh Thakur

Road Map

  • Q2 2017: Beta release
  • Q3 2017: Version 1.0
  • Q4 2017: Produce A Printable Book

Parent Project

OWASP_Mobile_Security_Project

Licensing

The guide is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

December 4th, 2016: Call for authors: The ultimate open-source mobile app reverse engineering guide

Reverse engineering is an art, and describing every available facet of it would fill a whole library. The sheer range techniques and possible specializations is mind-blowing: One can spend years working on a very specific, isolated sub-problem, such as automating malware analysis or developing novel de-obfuscation methods. For mobile app security testers, it can be challenging to filter through the vast amount of information and build a working methodology. Things become even more problematic when one is tasked to assess apps that are heavily obfuscated and have anti-tampering measures built in.

One of the main goals in the MSTG is to build the ultimate resource for mobile reverse engineers. This includes not only basic static and dynamic analysis, but also advanced de-obfuscation, scripting and automation. Obviously, writing all this content is a lot of work, both in terms of general content and OS-specific how-tos. We're therefore looking for talented authors that want to join the project early on. Topics include the following:

  • Basic Hybrid Static/Dynamic Analysis
  • Code Injection and Dynamic Instrumentation (Substrate, FRIDA)
  • Dynamic Binary Instrumentation (Valgrind, PIE)
  • Analysis Frameworks (Metasm / Miasm)
  • Symbolic Execution
  • DCA and DPA attacks on white-box crypto
  • Dynamic analysis frameworks (PANDA / DroidScope,...)
  • Anything else we might have missed

What is in for me?

All of this is unpaid, volunteer work. However, depending on your contribution, you will be named in the "lead authors" or "contributors" list, and you'll be able to point to the fact that you co-authored the guide. You'll also be contributing to the field, helping others who are just starting out, and in turn becoming a happier person yourself (reaping the full benefits of your altruism).

Where do I sign up?

First of all, have a look at the existing RE chapters outline:

You'll probably immediately have ideas on how you can contribute. If that's the case, read the author's guide first.

Then contact Bernhard Mueller - ideally directly on the OWASP Mobile Security Project Slack Channel, where you'll find all the other project members. You can sign up for an account here.

How can I participate in your project?

First of all, read the author's guide and decide in what for you would like to contribute. Then, contact the lead author responsible for the chapter you are interested in. You can find their name and GitHub handle in the project README. Please always check with the responsible person first, or you might end up working on a chapter that's already being done by someone else. In any case, we encourage you to join OWASP Mobile Security Project Slack Channel, where you'll find all the other project members. You can sign up for an account here.

The home of the OWASP Mobile Security Testing Guide is on GitHub. The MASVS is hosted in a separate repository.

Where do you guys need help the most?

There's a lot of areas where you can help out:

  • Writing original content, such as describing testing processes and writing test cases. We're all doing this in our spare time, which unfortunately means that things sometimes slow down to a crawl. If you're knowledgeable in some area and have time available, we'd be incredibly thankful to anyone who contributes, even if it's only one or two test cases.
  • Reviewing content and giving feedback. The proper channel for questions and feedback is the GitHub issues system of the respective repo, contacting us on OWASP Mobile Security Project Slack Channel is another possibility.
  • Developing tools. For example, we still don't have an automated way of generating checklists out of the GitHub repo.
  • Contributing to auxiliary projects: The obfuscation metrics project is an auxiliary project that deals with specific forms of control flow and data obfuscation. This project needs experts in advanced obfuscation / de-obfuscation. Please contact us if you have experience in this area.

If I am not a programmer can I participate in your project?

Yes, you can certainly participate in the project if you are not a programmer or technical. The project needs different skills and expertise and different times during its development. Currently, we are looking for researchers, writers, graphic designers, and a project administrator.

I contributed to the original Google Doc, but I'm not credited in the new version of the MSTG?

As we migrated some of the existing content, we did our best to backtrack the original authors and credit them appropriately. We also added a revision history that lists all the authors from old Google Docs. If you are not on that list but feel you should be, please contact Bernhard or Sven and they'll fix it. Or better yet, re-join the author's team and start contributing to the new guide.

Contributors

The Mobile Security Testing Guide was initiated by Milan Singh Thakur in 2015. The original document was hosted on Google Drive. Guide development was moved to GitHub in October 2016. Below is the full list of contributors for each revision.

MSTG in its current form

Lead Authors:

  • Stephen Corbiaux
  • Bernhard Mueller
  • Sven Schleier
  • Francesco Stillavato
  • Stefan Streichsbier
  • Abdessamad Temmar
  • Stephanie Vanroelen
  • Gerhard Wagner
  • Jeroen Willemsen

Contributors:

  • Davide Cioccia
  • Bao Le
  • Shiv Patel
  • Prathan Phongthiproek
  • Abhinav Sejpal
  • Anant Shrivastava
  • Pragati Singh
  • Milan Singh Thakur
  • Blessen Thomas
  • Dennis Titze
  • Bernard Wagner

MSTG "Beta 2" on Google Drive

Authors:

  • Mirza Ali
  • Stephen Corbiaux
  • Ryan Dewhurst
  • Mohammad Hamed Dadpour
  • David Fern
  • Bao Lee
  • Anto Joseph
  • Nutan Kumar Panda
  • Rahil Parikh
  • Julian Schütte
  • Abhinav Sejpal
  • Anant Shrivastava
  • Pragati Singh
  • Milan Singh Thakur
  • Stephanie Vanroelen
  • Gerhard Wagner

Reviewers:

  • Andrew Muller
  • Jonathan Carter
  • Stephanie Vanroelen
  • Milan Singh Thakur

MSTG "Beta 1" on Google Drive

Authors:

  • Mirza Ali
  • Mohammad Hamed Dadpour
  • David Fern
  • Rahil Parikh
  • Abhinav Sejpal
  • Pragati Singh
  • Milan Singh Thakur

Reviewers:

  • Andrew Muller
  • Jonathan Carter

Top Contributors:

  • Jim Manico
  • Yair Amit
  • Amin Lalji
  • OWASP Mobile Team