# A Multi-Tier Security Analysis of Official Car Management Apps for Android
## 5 Low-Level Static Analysis
### Manifest Analysis  
Based on coarse static analysis given in Section 4, we noted the use of several dangerous permissions from a privacy-invasive perspective. To deepen the analysis, we utilised MobSF to scrutinise the manifest file of each app, and possibly reveal any latent weaknesses. The focus here is on services, activities, and broadcast receivers. All of them, employ intents and intent-filters. Based on Android developer guide, all of the aforementioned components, but the intents, must be declared in the manifest file of an app [94]. Intents are basically message objects, which are used for either intra- or inter-app communication. They have three main usages, namely start an activity, initiate a service, and deliver a broadcast. There are two types of intents, namely explicit and implicit. The former is used to handle messages within the app, while the latter to transfer messages towards another capable app. On the other hand, an intent filter is an expression in an app's manifest file that determines the kind of intents the component would wish to obtain. In this respect, intent-filters are responsible for handling any implicit intent, e.g., broadcast receivers, and capturing system-oriented broadcast messages, where the specific broadcast message is included inside an intent. This means that for an app to receive such a broadcast message, it must declare in its manifest file a matching intent-filter. The service app component can perform operations without needing a user interface (UI), e.g., transferring files from one app to another without involving the user. There are three types of services; foreground, which is discernible to the user, background, which is not directly perceivable by the user, and bound, which is used to bound a specific service with an app. Lastly, activities is a key component of any Android app. An activity, comprises a single, specific thing the end-user can perform, and it usually involves a UI. For example, when a user opens an app, the main activity is typically executed. We observed that several of these three types of components did not declare a permission in the respective manifest file. That is, according to Android Developer security tips [66], when a component is declared in the manifest file is by default enabled to communicate with other apps. To curtail this functionality, the developer must declare among others a permission to this component. Next, any other app must possess the same permission for being able to communicate with this component. Note that this is a minimum security measure, meaning it is not enough to fully secure the component, but only reduce the magnitude of the issue. Therefore, the omission to at least provide the right permission to such a component is identified as a high severity weakness. Specifically, the results obtained per app are summarised in Table 7. The left part of the table splits the components of interest in two categories, namely intent-filter on and off. The first (on) means that the app can send and also receive intents which target that specific component. When the received intent contains a malicious content, it can potentially compromise that app, e.g., bypass authentication [95]. The second (off) means that the app can potentially only send any information that will be requested from another app. Meaning that it is possible for the app to unwillingly leak sensitive information to an attacker. From Table 7, it is inferred that in either of these two categories and across all the three components, a considerable number of apps, i.e., 19, 24, 22 and 18, 17, 15, respectively, neglect to declare the appropriate permissions. While some similarities in the numbers can be observed among apps that pertain to the same automotive group, they do not seem to apply as a rule. Exception to this are the Mitsubishi and Tata groups. Moreover, it was observed that the apps of the PSA and Tata groups have enabled a task affinity for a specific activity in which the intent-filter was disabled.