The number of Android malware in the wild has been growing explosively since late 2011. To keep malicious apps off the official Android app store (now known as Google Play), Google introduced a security service with they codenamed Bouncer in February of this year. Bouncer quietly and automatically scans apps (both new and previously uploaded ones) and developer accounts in Google Play with its reputation engine and cloud infrastructure. According to Google, Bouncer was responsible for a 40% drop in the number of malicious apps in its app store. Researchers found Bouncer can be fingerprinted Recently, two security researchers reported that Bouncer can be fingerprinted. To prove their point, they submitted an Android app which had shell code included that allowed them to poke around Bouncer while the submitted app was being analyzed. This code also connected back - in effect, phoned home - to the researchers. The researchers were able to get some details of Bouncer runtime environment. Some interesting findings about Google Bouncer were revealed, for example:
- The type of simulator the Bouncer uses is QUME (software that can emulate hardware platforms).
- All virtualized phone instances in the Bouncer are associated with the same account and have exactly one contact and two photos on the simulated device.
- Bouncer only checks a submitted app for five minutes.
- Bouncer only does dynamic analysis. This means only applications misbehave when running in the Bouncer will get caught.
- Google’s IP range assigned to Bouncer can be revealed as the analyzed apps are allowed to access Internet while being tested.
What kinds of threats are hitting Android users?Now that we know that Bouncer can be easily fingerprinted, it’s not difficult to picture that malicious Android apps can actually take advantage of it and disguise themselves as legitimate apps when running in Bouncer to bypass Google’s security check and make their way to Google Play and eventually to user devices. The following are some possible attack scenarios:
- Delayed attack: The application can include malicious payloads in the submitted app but behave benign when it is running in Bouncer. Once it gets onto a user’s device, then starts to run malicious code.
- Update attack: No malicious code needs to be included in the initial installer. In this case, the app can have an even better chance to evade Bouncer’s detection. Once the application passes Bouncer’s check and gets installed on a real user’s device, then the application can either download additional malicious code to run or connect to its remote control and command (C&C) server to upload stolen data or receive further commands. Just this month, another two fake apps successfully avoid Bouncer using this technique and snuck into Google Play, staying there for two weeks. (We detect these apps as ANDROIDOS_TROJDOWNLOADER.A and ANDROIDOS_TROJSMS.A.)