A troubling failure by many web application developers to properly secure how their apps connect to mobile backend-as-a-service systems like Facebook’s Parse and Amazon’s AWS could be leaving sensitive information on millions of Internet users vulnerable to compromise.
Researchers at Germany’s LOEWE Center for Advanced Security Research Darmstadt (CASED) recently issued an alert on the issue, claiming they had found a stunning 56 million sets of unprotected data in cloud databases like Parse and AWS. The exposed records included email addresses, passwords, health records, and other sensitive data belonging to hapless users of web applications that use these backend web databases, the researchers said.
At issue is the manner in which many web developers integrate support for BaaS in their applications, Eric Bodden, principal investigator in secure services at CASED said in a FAQ on the topic.
Cloud databases like Parse and AWS make it easy for web application developers to enable data storage and synchronization across multiple platforms like iOS, Android, Windows, and OS X. Backend-as-a-service technologies eliminate the need for application developers to set up their own servers for storing and synchronizing user data. Instead, with just a few lines of authenticating code, the developers can connect their apps to backend systems like Parse and AWS and enable the same capability for users. The weakest form of authentication uses a simple API-token or a number that is embedded into the app's code.
“With BaaS, app developers can simply connect to pre-configured servers using a few lines of program code,” Bodden noted. “This makes data storage and synchronization through the cloud very easy,” he said.
The problem lies in the cavalier manner in which many developers integrate this code into their software. Though cloud providers like Facebook and AWS have published extensive documentation on how to securely include support for BaaS systems in web applications, many developers ignore the information completely, Bodden said.
CASED researchers scanned about 750,000 applications from Google’s Play Store and Apple’s App Store, using internally developed tools.
“In virtually all apps the research team investigated, access to the data associated with the app is secured only by a secret key, which is directly embedded into the app,” Budden wrote. Anyone that knows how to extract the key can then use it to access all the data stored in the backend database that is associated with the application. This can expose anything that the users of the app store in the databases -- including names, address, photos, and other sensitive data.
The research report highlights the risks associated with Application Programming Interface (API)-based application authentication and permission settings, says Alex Held, chief of research for SecurityScorecard.
Because of the manner in which many application developers build in support for BaaS, it becomes trivially easy for an attacker to decompile an application, find the API that is being used to connect to the backend system, and build a rogue app using the same API.
If the developer has not taken the effort to properly secure access to the BaaS systems, the rogue application will have the same access to the database as the original application, he says. The Parse or AWS database will simply assume that the rogue application is the legitimate application based on the API that is being used to make the connection.
Ideally, if developers implement the proper access controls, the rogue application should not have access to database, Held said. Troublingly, it is not very difficult for a threat actor to decompile web apps using Parse or AWS as backend to see if they are vulnerable to the issue, Held added.
According to Bodden, though CASED researchers found thousands of applications that are vulnerable to the issue, there’s little that users can do in terms of mitigating risk. The fault primarily lies with the developers and not the providers of the backend systems, he wrote.
CASED has contacted Facebook, Amazon, Google, and Apple and provided them with a list of developers whose applications were found to be vulnerable, he said.
Meanwhile, developers themselves should follow the security documentation provided by BaaS providers and implement the proper access control lists for their apps, he said.