AppVuln


Android Apps: Attack Surface Overview

Overview

So, you’re looking to do a security assessment of a client’s Android application. Let’s talk about some attack surfaces and common security issues that should be on your mind. There are two use-cases for this info:

Here, we’re going to be thinking about a user-facing app that a organization or individual will be distributing for their business. That means we won’t be covering OS-level issues, fraud techniques, or malware. We shouldn’t treat this list as exhaustive but it should give you decent coverage on average. As usual, vulnerabilities and their severities will depend on the context of the app you’re testing.

App Configuration

Most of an app’s general configuration settings will be found in the manifest.

Exported App Components (“IPC”)

Review the manifest for exported app components (android:exported="true" or declaring intent-filters) with weak or null permissions. Trace the logic of these components to see if user inputs can be leveraged to control any sensitive functionality.

Webviews

Data Storage

Network Traffic

Build and Release Process

Misc

Antipatterns

There are a few common hardening suggestions that provide questionable value in practice, and can cause more problems than they solve. If a user’s device is rooted, things like certificate pinning, root detection, and screenshot prevention can be fairly trivially bypassed. As the device needs to be able to understand the app to run it, code obfuscation can also generally be bypassed by motivated users, and usually simply delays analysis. These features can also be brittle and break your app in unexpected ways without robust planning, and ongoing support.

In general, engineering time is often better spent elsewhere, and these protections shouldn’t be recommended outside of specific contexts or relied on as security mechanisms.

#Appsec #Android