Месяц назад на хакерской конференции SummerCon известные исследователи Чарли Миллер и Джон Оберхайд рассказали о результатах своего исследования системы Android Bouncer, которая автоматически сканирует все .apk перед публикацией в каталоге Google Play. Анонс той презентации с предварительными выводами публиковался 5 июня, а недавно стали известны подробности: 21 июня авторы опубликовали целиком свою презентацию с SummerCon (pdf).
Суть исследования в том, что Миллер и Оберхайд зарегистрировали множество аккаунтов в Google Play, заливали туда вредоносные .apk и смотрели, каким образом Android Bouncer их проверяет. Выяснилось, что Bouncer не только сканирует файлы на известные сигнатуры, но и запускает приложения в виртуальной машине перед публикацией в Google Play, проверяя потенциально вредоносные функции.
Виртуальная машина Bouncer эмулирует окружение Android, работает на инфраструктуре Google и осуществляет динамический анализ приложения в течение пяти минут, в том числе соединяясь по внешним адресам. Исследователи считают, что потенциально вредоносное приложение может осуществлять проверку окружения и менять своё поведение, находясь внутри виртуальной машины. Для этого требуется подробнее изучить виртуальную машину Bouncer: как выяснилось, это эмулятор QEMU, для которого есть известные способы фингерпринтинга. Можно даже определить конкретную версию QEMU и осуществить эксплойт.
Эмулятор Bouncer выдаёт себя весьма красноречиво. Например, раньше он всегда возвращал один и тот же Android ID: 9774d56d682e549c, хотя в последнее время могут встречаться и другие.
Чарли Миллер и Джон Оберхайд в своей презентации всячески поизмывались над системой Android Bouncer, взломав её несколькими способами, хотя пару раз во время первых опытов Bouncer всё-таки умудрялся блокировать вредоносный код. Но это скорее исключение, чем правило — «просто поначалу мы делали совсем глупые вещи», говорит Оберхайд.