Researchers at Check Point Research analyzing Android apps have discovered serious cloud misconfigurations leading to the potential exposure of data belonging to more than 100 million users.
In a report published recently, the firm discusses how the misuse of real-time database, notification managers, and storage exposed over 100 million users’ personal data (email, passwords, names, etc.) and left corporate resources vulnerable to malicious actors.
By not following best practices when configuring and integrating third party cloud services into applications, millions of users’ private data was exposed. In some cases, this type of misuse only affects the users, however, the developers were also left vulnerable. The misconfiguration put users’ personal data and developer’s internal resources, such as access to update mechanisms and storage at risk.
Michael Isbitski, Technical Evangelist at Salt Security, a Palo Alto, Calif.-based provider of API security, explains, "Some of these issues uncovered in the Check Point research are similar to what we covered in the iPhone recorder incident. Mobile application developers often make use of cloud-hosted databases and data storage, such as AWS S3, to store content for mobile clients. Such cloud services provide essentially unlimited storage, that is accessible from anywhere, and that is perfect for the world of mobile connectivity. For the Android apps Check Point investigated, they uncovered data stored in cloud that did not require authentication and was accessible to anyone. The data included sensitive, personal information like email addresses, user IDs, passwords, chat logs, and more, depending on the use cases for the mobile app and what is necessary for the app to function."
"For some of the Android apps that Check Point examined," Isbitski says, "developers were embedding connection keys for backend cloud storage directly into the mobile application code. It’s a bad practice to hardcode and store static access keys into an app, which the app in turn uses to connect to an organization’s own backend APIs and 3rd party (e.g., cloud) APIs. Compiled code within mobile app binaries is much more readable than many developers realize. Decompilers and dissassemblers are plentiful, and such connection keys are easily harvested by attackers. Attackers then bypass the app entirely and connect directly to backend APIs to abuse the business logic of the app or scrape data."
Isbitski adds, "If you opt to use cloud storage as a developer, you need to ensure any key material necessary to connect to such storage is kept secure, and you must also leverage the cloud provider’s access control and encryption mechanisms to keep the data protected. Mobile app developers should make use of the Android Keystore and Keychain mechanisms that are backed by the hardware security module of the mobile device. Developers should also make use of the Android encryption mechanisms when storing other sensitive data client-side."
Ray Kelly, principal security engineer at WhiteHat Security, a San Jose, Calif.-based provider of application security, explains that developers tend to think that mobile backends are hidden from hackers and tend to overlook the security aspect of these services, their configuration and their content. Kelly continues, "Search engines, such as Google, do not index these APIs which gives a false sense of security when in fact these mobile endpoints can be just as vulnerable as any other website. This is considered “Security Through Obscurity” in the cybersecurity industry. It’s akin to hiding your house key under your doormat and thinking your house is safe. Ensuring that a mobile application is secure requires that the application’s binary, network layer, backend storage and APIs are all tested thoroughly for security vulnerabilities that can lead issues such as data leakage."
"As individuals and organizations increasingly leverage mobile and cloud applications to remain productive, they need to be able to identify vulnerabilities within both the mobile app itself and within the cloud application being accessed," says Stephen Banda, Senior Manager, Security Solutions at Lookout, a San Francisco, Calif.-based provider of mobile security solutions. "With competition among SaaS apps high, developers iterate rapidly to build and incorporate new software features into their mobile and cloud-native applications. To deploy code quickly, organizations rely on automated software delivery processes to upgrade functionality, apply security patches to keep cloud applications up-to-date. Moving at this speed, even with sound change management and security best practices in place, means every organization runs the risk of introducing misconfigurations into their cloud applications. Human factors, such as human error, cloud knowledge gaps, and lack of security awareness best practices, continue to be the dominating factor in introducing misconfigurations. These misconfigurations present vulnerabilities that cyber attackers can exploit, ultimately putting customer data at risk."
Dirk Schrader, Global Vice President, Security Research at New Net Technologies (NNT), a Naples, Fla.-based provider of cybersecurity and compliance software, adds. "Both large app stores, Google’s Play Store as well as Apple’s App Store, are basically a large malware distribution platform if the platform itself, and what is in it, are not managed well. That notion of ‘managed well’ includes apps where like in this case the central data repositories are in the cloud and misconfigured. Both giants have a responsibility here, as the users are made to believe that each app they download from these stores do meet certain quality criteria."