Overview

If an exported activity does not define android:permission with a proper protection level and performs or grants access to sensitive functionality, another third-party app outside the intended trust boundary can start it with an Intent and reach that functionality without going through the app's intended flow. See MASTG-KNOW-0132 for details on activities, MASTG-KNOW-0017 for permissions and protection levels, and MASTG-KNOW-0020 for the IPC model of Android.

This test checks whether the app exposes sensitive functionality through exported and unprotected activities.

Steps

  1. Use MASTG-TECH-0013 to reverse engineer the app.
  2. Use MASTG-TECH-0117 to obtain the AndroidManifest.xml.
  3. Use MASTG-TECH-0160 to list the exported activities and their associated android:permission.
  4. Use MASTG-TECH-0014 to inspect the code of each exported activity.

Observation

The output should contain a list of exported activities and the relevant parts of their implementation.

Evaluation

The test case fails if any exported activity is not protected by an appropriate android:permission that restricts which apps can start it and exposes or performs sensitive functionality, for example by displaying sensitive data, performing a security-relevant action, or allowing a caller to bypass authentication.

Further Validation Required:

Inspect each exported activity using MASTG-TECH-0023 to determine whether it exposes sensitive functionality:

Then determine whether external access to the activity is appropriately restricted for the functionality it exposes and the app's intended trust boundary:

Saistītie uzdevumi