Как популярная операционная система, Android имеет 2 миллиарда активных устройств в месяц по всему миру. Пользователи Android склонны настраивать системы и приложения - то, что Android предлагает в качестве основного фактора дифференциации от Apple. Например, пользователи могут захотеть заменить стандартную тему Twitter, смоделировать местоположение устройства при игре в игру Pokemon Go или одновременно управлять несколькими учетными записями WhatsApp. Тем не менее, многие приложения применяют методы запутывания / упаковки, чтобы предотвратить их изменение / переупаковку. Потребность в настройке приложений лежит в основе растущей популярности виртуализации приложений в Android. В частности, инфраструктура виртуализации (приложение Android) реализует виртуальную среду выполнения, и поверх нее могут выполняться другие приложения. Затем платформа предоставляет возможность для инструментов и модификации виртуализированных приложений. Parallel Space, одна из самых популярных платформ виртуализации, утверждает, что более 100 миллионов пользователей по всему миру используют приложение. Кроме того, учитывая только Google Play, десятки платформ виртуализации доступны для общественности, и их уже скачали более 84 миллионов пользователей. Методы виртуализации приложений могут быть использованы для запуска нескольких атак.
Уязвимости фреймворков для виртуализации
Сначала мы исследуем механизмы безопасности, встроенные в эти структуры. В частности, виртуализация приложений может рассматриваться как новый уровень инфраструктуры песочницы, где приложения, работающие сверху, должны быть изолированы друг от друга, например, одно приложение не может украсть данные из другого. Однако виртуализация приложений по своей сути меняет предположение об оригинальном механизме песочницы Android. То есть, с точки зрения операционной системы Android, он не может идентифицировать различные виртуализированные приложения, выполняемые в одной и той же инфраструктуре виртуализации. Ответственность за дальнейшую изоляцию приложений, работающих поверх, лежит на платформе виртуализации приложений. Мы анализируем 32 популярных фреймворка, которые мы собрали в Google Play, относительно их механизмов изоляции приложений и обеспечения безопасности контроля доступа. Мы удивлены, обнаружив, что содержимое любого приложения может быть легко украдено / взломано другим. Мы дополнительно изучим эти инфраструктуры, выяснив, остаются ли соображения безопасности Android принудительными. В частности, мы изучаем принудительную изоляцию в разрешениях AOSP, сторонних разрешениях, внутреннем хранилище, защищенном внешнем хранилище, частных компонентах приложений, системных службах, командах оболочки и сокетах. К сожалению, результаты нашего эксперимента показывают, что почти все механизмы контроля доступа нарушены во всех средах виртуализации. Хотя некоторые фреймворки пытаются исправить ошибочные предположения о песочнице, мы обнаруживаем, что злоумышленники могут обойти большинство из них.
Анализируя отзывы пользователей о платформах виртуализации в Google Play, мы обнаружили, что пользователи в основном используют эти платформы для настройки социальных приложений (около 56,7%), таких как Facebook, Twitter и WhatsApp, а также игр (около 16,6%). Таким образом, большая часть конфиденциальности пользователей (управляемая социальными приложениями) потенциально подвержена вредоносным программам, которые работают поверх той же платформы виртуализации. Как пользователи могут запускать и использовать приложения Android в средах виртуализации. Мы заметили, что почти все эти платформы поддерживают установку приложений из небезопасных источников. Например, пользователи могут устанавливать apk-файлы с глобально доступных SD-карт, которые могут быть легко изменены любым приложением на том же устройстве. Кроме того, некоторые коммерческие приложения для виртуализации предоставляют рынкам встроенных приложений небезопасные каналы передачи, такие как Http. Кроме того, обычное использование сред виртуализации для игр заключается в использовании ботов, а игровые боты недоступны на рынках приложений. Таким образом, для установки ботов пользователи загружают и устанавливают приложения из неофициальных и незащищенных источников (например, сторонних игровых форумов). Мы изучаем известное сообщество игровых ботов, которое использует платформы виртуализации. Интересно, что мы обнаруживаем, что в инструментальных игровых приложениях среда ботов использует слабую изоляцию между виртуализированными приложениями. Мы также обнаружили, что разработчики могут легко распространять вредоносных игровых ботов, предназначенных для сред виртуализации.
Другой важный вопрос заключается в том, можно ли злоупотреблять самой структурой виртуализации приложений для достижения непреднамеренной функциональности. Например, виртуализация приложений используется разработчиками в качестве альтернативного подхода к переупаковке существующих приложений Android. Переупаковка приложений была обычным способом создания и распространения вредоносного ПО - создание вредоносной версии Angry Birds с бэкдором. В качестве защиты было предложено большое количество методов обнаружения (в основном основанных на сходстве) для обнаружения переупаковки приложений. Однако при использовании виртуализации приложений существующие методы становятся недостаточными. Одна из причин заключается в том, что исходное приложение теперь обернуто средой виртуализации, которая шифрует исходное приложение и дешифрует его во время выполнения и невидима для традиционных инструментов статического анализа. В частности, путем автоматического анализа 250 145 приложений с четырех рынков приложений, включая Google Play, YingYongBao, Xiaomi и Qihoo, было обнаружено 164 вредоносных программы с уязвимостью нулевого дня и 29 подозрительными приложениями. Кроме того, после загрузки этих приложений в VirusTotal и выяснилось, что хотя некоторые приложения помечены как PUP (потенциально нежелательная программа), немногие из них явно помечены как вредоносные программы. Это показывает, что существующие антивирусные механизмы не могут отличить вредоносное ПО от инфраструктур виртуализации приложений.
Уязвимости фреймворков для виртуализации
Сначала мы исследуем механизмы безопасности, встроенные в эти структуры. В частности, виртуализация приложений может рассматриваться как новый уровень инфраструктуры песочницы, где приложения, работающие сверху, должны быть изолированы друг от друга, например, одно приложение не может украсть данные из другого. Однако виртуализация приложений по своей сути меняет предположение об оригинальном механизме песочницы Android. То есть, с точки зрения операционной системы Android, он не может идентифицировать различные виртуализированные приложения, выполняемые в одной и той же инфраструктуре виртуализации. Ответственность за дальнейшую изоляцию приложений, работающих поверх, лежит на платформе виртуализации приложений. Мы анализируем 32 популярных фреймворка, которые мы собрали в Google Play, относительно их механизмов изоляции приложений и обеспечения безопасности контроля доступа. Мы удивлены, обнаружив, что содержимое любого приложения может быть легко украдено / взломано другим. Мы дополнительно изучим эти инфраструктуры, выяснив, остаются ли соображения безопасности Android принудительными. В частности, мы изучаем принудительную изоляцию в разрешениях AOSP, сторонних разрешениях, внутреннем хранилище, защищенном внешнем хранилище, частных компонентах приложений, системных службах, командах оболочки и сокетах. К сожалению, результаты нашего эксперимента показывают, что почти все механизмы контроля доступа нарушены во всех средах виртуализации. Хотя некоторые фреймворки пытаются исправить ошибочные предположения о песочнице, мы обнаруживаем, что злоумышленники могут обойти большинство из них.
Анализируя отзывы пользователей о платформах виртуализации в Google Play, мы обнаружили, что пользователи в основном используют эти платформы для настройки социальных приложений (около 56,7%), таких как Facebook, Twitter и WhatsApp, а также игр (около 16,6%). Таким образом, большая часть конфиденциальности пользователей (управляемая социальными приложениями) потенциально подвержена вредоносным программам, которые работают поверх той же платформы виртуализации. Как пользователи могут запускать и использовать приложения Android в средах виртуализации. Мы заметили, что почти все эти платформы поддерживают установку приложений из небезопасных источников. Например, пользователи могут устанавливать apk-файлы с глобально доступных SD-карт, которые могут быть легко изменены любым приложением на том же устройстве. Кроме того, некоторые коммерческие приложения для виртуализации предоставляют рынкам встроенных приложений небезопасные каналы передачи, такие как Http. Кроме того, обычное использование сред виртуализации для игр заключается в использовании ботов, а игровые боты недоступны на рынках приложений. Таким образом, для установки ботов пользователи загружают и устанавливают приложения из неофициальных и незащищенных источников (например, сторонних игровых форумов). Мы изучаем известное сообщество игровых ботов, которое использует платформы виртуализации. Интересно, что мы обнаруживаем, что в инструментальных игровых приложениях среда ботов использует слабую изоляцию между виртуализированными приложениями. Мы также обнаружили, что разработчики могут легко распространять вредоносных игровых ботов, предназначенных для сред виртуализации.
Другой важный вопрос заключается в том, можно ли злоупотреблять самой структурой виртуализации приложений для достижения непреднамеренной функциональности. Например, виртуализация приложений используется разработчиками в качестве альтернативного подхода к переупаковке существующих приложений Android. Переупаковка приложений была обычным способом создания и распространения вредоносного ПО - создание вредоносной версии Angry Birds с бэкдором. В качестве защиты было предложено большое количество методов обнаружения (в основном основанных на сходстве) для обнаружения переупаковки приложений. Однако при использовании виртуализации приложений существующие методы становятся недостаточными. Одна из причин заключается в том, что исходное приложение теперь обернуто средой виртуализации, которая шифрует исходное приложение и дешифрует его во время выполнения и невидима для традиционных инструментов статического анализа. В частности, путем автоматического анализа 250 145 приложений с четырех рынков приложений, включая Google Play, YingYongBao, Xiaomi и Qihoo, было обнаружено 164 вредоносных программы с уязвимостью нулевого дня и 29 подозрительными приложениями. Кроме того, после загрузки этих приложений в VirusTotal и выяснилось, что хотя некоторые приложения помечены как PUP (потенциально нежелательная программа), немногие из них явно помечены как вредоносные программы. Это показывает, что существующие антивирусные механизмы не могут отличить вредоносное ПО от инфраструктур виртуализации приложений.