Sunday, March 27, 2011

Researchers Find Ways to Bypass Google's Android Malware Scanner


The Android malware scanner called Bouncer, which Google uses to scrutinize all apps uploaded to Google Play, can be easily bypassed, a pair of security researchers said on Monday.
Mobile security researchers Jon Oberheide and Charlie Miller have devised several methods that could allow malicious apps to determine when they are being inspected by Google's scanner and hide their real purpose.
In February, Google revealed that it uses an in-house developed service called Bouncer to scan all apps that are made available for download or purchase on Google Play -- then known as the Android Market -- for signs of malware. The company explained that Bouncer executes every newly uploaded app inside an Android emulator and analyzes its behavior.
Antivirus programs have long used built-in emulators to safely observe how suspicious files behave when executed and most antivirus experts analyze malware samples in virtual machines. As a result, a lot of malware programs are now designed to suppress their malicious behavior if they detect the use of emulated environments.
Oberheide and Miller took a similar approach in their attempt to bypass Bouncer. "If you know your app is running in Bouncer, you just play dead," Oberheide said via email. "If you know your app is outside Bouncer on a real user's device, then you just pull down your root exploit from an external server."
The two researchers created an app that connects back to their server and allows them to issue basic Linux commands on the Android device where it runs. This is known as a connect-back shell and can be opened by apps that don't require special Android permissions.
The researchers created a fake Google Play developer account, which Oberheide says is pretty easy to do, and submitted the app. When it got executed by Bouncer inside its Android emulator for analysis, the app called back home and allowed the researchers to gather information about the environment.
Using the connect-back shell opened by the app, Oberheide and Miller were able to identify bits of information that are unique to the Bouncer system and can act like a fingerprint. Malicious apps can use this fingerprint to determine whether the system they run in is Google's scanner or a real device.
However, the connect-back shell is not the only method that can be used to fingerprint Bouncer, Oberheide said. The researchers plan to showcase several techniques they developed for this purpose on Friday, at the SummerCon conference in New York.
"We've been in touch with the Android security team and will be working with them to address some of the problems we've discovered," Oberheide said in a blog post  on Monday.
However, the researcher doesn't believe that all fingerprinting techniques will be easy to block, because Google needs to keep the ratio of false positive detections at a low level.
"If your app can fingerprint Bouncer using the same common operations that millions of apps use, then Google will be unable to flag it since it would be infeasible to also flag those millions of apps," Oberheide said via email.
Making Bouncer impossible to fingerprint by removing all signs that it uses an emulated environment would also be extremely difficult, Oberheide said. However, its current state can be improved, he said.