Fraunhofer Institute researchers are working to speed up the scanning of mobile app code for security flaws, aiming to offer developers in a few milliseconds the kind of analysis that once required an all-night scan of code.
In fact, the researchers are showing not one but three tools to evaluate or enhance the security of mobile apps at the Cebit trade show in Hanover, Germany, this week, the other two intended to detect flaws in already-deployed apps.
[ Work smarter, not harder -- download the Developers' Survival Guide from InfoWorld for all the tips and trends programmers need to know. | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
Appicaptor is a service to help businesses identify apps that threaten security or that could breach corporate data-protection policies, while App-Ray, which performs similar functions, is available either as a hosted service or as a virtual machine IT departments can deploy on their own servers.
The CodeScan tool for developers, meanwhile, is still a prototype. The researchers are still adding to its ability to identify flaws in code through a combination of static and dynamic scanning.
"It's designed for Java, but since Android apps are basically written in Java, you can use it for Android as well," said Eric Bodden of the Fraunhofer Institute for Secure Information Technology.
Like other code-scanning tools on the market, it runs within the IDE (Integrated Development Environment), he said. However, existing tools are either too coarse-grained, analyzing only one method at a time with limited functionality, or too slow, uniformly scanning the entire code overnight on a powerful server, and so making instant feedback impossible.
With CodeScan, Bodden, said, "We aim to do that degree of analysis in a few milliseconds, as you save your code."
To do that, the researchers look for the most dangerous flaws in the riskiest code first, rather than analyzing all the code to the same depth.
"One mistake we find a lot is when people use symmetric cryptography, algorithms where you use the same key to encrypt and decrypt data," Bodden said. "The thing you should absolutely not do in that context is embed the key in your code," because that will give attackers all they need to intercept communications in both directions, he said. "We can find usages of those APIs very quickly and then perform a specific analysis looking for embedded encryption keys."
"Another big area we are looking into is privacy leaks, including sensitive data like passwords," Bodden said. While still working on an app, developers typically have it log data about its status as it executes. "That's OK in development, but you shouldn't ship such code because logs can be ready by many other apps," he said. By performing data flow analysis, CodeScan can see if password data is flowing to log files.
"Most errors are in the misuse of APIs or in the area of data flow," he said.
Not all the security and privacy threats posed by mobile apps are unintentional: Many of them incorporate third-party ad modules that track user behavior. "We did a test of the top 400 apps and found there's a huge zoo of trackers out there. All those companies can get information on you if you used the apps," said Jens Heider, head of Fraunhofer Institute's mobile security test lab.