8 Point Security Checklist for Android App Development

By
8 Point Security Checklist for Android App Development

By 2020, there will be more than 6 billion smartphone devices in circulation, says a report by IHS Markit. Alongside the growth in hardware, global consumer spending on mobile apps is set to increase. By 2020, gross revenue across all app stores is expected to exceed $100 billion globally, as forecasted by App Annie.

This trend will encourage Android app development; this being the operating system with a leading market share. And the trend will be boosted by an increase in spending for enterprise Android application development. However, app development is just the beginning of the app’s complete lifecycle.

Before the app is launched, there are many obstacles to overcome. The app needs to be thoroughly tested for various parameters like compatibility, performance, functionality and, most importantly, security.

Security is Critical for Android Application Development

Many businesses tend to neglect to test before the launch of an app. In fact, half of the companies have no budget set aside for mobile app security, according to a report by IBM. Not taking the right precautions to secure the mobile app build for customers means a treat for hackers, giving them easy access to the user, customer, and corporate data. They can easily jailbreak mobile devices and reverse engineer apps to tap into confidential data.

The risk of a data breach can be huge for an enterprise. A data breach can get a company’s name highlighted for all the wrong reasons, hampering their brand identity and creating a negative perception of their company. Loss of any form of personal and confidential information may also take a company into a long-drawn battle with lawsuits.

OWASP 2016 Security Project mentions the top 10 mobile risks or the most common security vulnerabilities of Android app development. These include insecure data storage, improper platform usage, communication, authorization and authentication, broken cryptography, poor client code quality, extraneous functionality and reverse engineering.

According to app security company Arxan’s fifth annual State of Application Security Report, analyzing 126 of the most popular mobile health and finance apps, a staggering 90% apps are lack protection and are vulnerable to at least two of these mobile risks, as published in a report by the Tech Republic.

Given the alarming rise in size and frequency of data breaches, businesses need to focus on security in their Android app development endeavors. So, here is a checklist of 8 factors to ensure optimum security in Android application development.

Top 8 Security Factors to Consider During Android App Development

1. Use the Android Application Sandbox

To provide protection to all apps, a layer of protection is added to Android, which restricts an app from being able to access the resources of another. This is known as the ‘Android Application Sandbox’ or ‘application containerization’, where an app cannot use the toys of another app and needs to play within its own sandbox. This practice isolates an app’s data and code execution from other apps. To achieve this, each app is given a unique user id (a UID) and apps are run as separate processes with their respective UIDs. This ensures that only the processes with the same UID can share resources and data among themselves.

2. Use an Encrypted File System

Use an Encrypted File System - Android App Development

Encryption is the most effective way to achieve data security. It keeps users safe and protects their details and personal information. Encrypting the program or the file system permissions should be done to ensure that a user cannot access data of another user even within the same app.

3. Robust Registration and Activation Process

Even after submitting the completed program, successfully registering and activating the Android application, there are a lot of steps that need to be taken care of between the time of the last build and the first download. Android app developers need to make sure the registration and activation processes are well made.

4. Minimize the Number of Permissions an App Requests

It is usual for Android apps to request permissions to access system features like camera and internet as well as sensitive user data like contacts and SMS. When an app requests permission, the user sees a system dialog, telling the user which permission group your app is trying to access. The aim of an app asking for permission is to protect the Android user’s privacy. However, depending on the feature, the system might grant certain permissions automatically. It is best to keep the number of permission app requests to a minimum during Android app development.

5. Avoid Storing Sensitive Information on External Storage

Avoid Storing Sensitive Information on External Storage - Android App Development

When data is secured in Android devices, their security can be assured, since no one can extract the data from the app. However, when the data is created and stored on an external device, there is a huge risk of data loss. External devices such as SD cards are globally writable and readable. Even if it is highly necessary for the app to retrieve files from an external device, they should be cryptographically verified and signed prior to the dynamic loading of the app.

6. Perform Strong Input Validations

Input validation, also known as data validation, is the practice of testing any input supplied by a user or application to prevent any improperly formed data from entering an information system. Strong input validation is necessary for the security of an application, regardless of its platform.

7. Be Cautious Using Network Transactions

The chances of data theft are higher when transactions are made through the network and the data is private to a user (typically related to money). The Android app development company needs to be diligent to follow practices like IP networking, telephone networking and handling user data to minimize the risk.

8. Secure the Native Code

When native code is used, the data that is received over the network, read from the files or received from an IPC is exposed to security issues like buffer overflows, off-by-one error and use after free. Developers are advised, in general, to use the Android SDK for application development, rather than the Android NDK.

Ensuring security needs to be a priority for Android app developers. They need to build security checks into their workflows and keep in touch with all the latest releases and the impact on security.