Хакеры из компании Fortinet продемонстрировали на конференции Black Hat Europe 2014, как можно прятать файлы Android APK внутрь изображений таким образом, чтобы запускать их на исполнение в операционной системе Android.
Подобный метод транспортировки APK позволяет избежать обнаружения со стороны антивирусных программ и, по словам авторов, даже обходит встроенную защиту Google Play. То есть можно распространять «заражённые» изображения через официальный каталог.
Авторы — специалист по безопасности Fortinet Аксель Апрвилль (Axelle Apvrille) и его коллега Анже Альбертини (Ange Albertini), который специализируется на реверс-инжиниринге. Они разработали Proof-of-Concept для доказательства, что метод действительно работает.
PoC использует питоновский скрипт под названием AngeCryption, который конвертирует файлы из одного формата в другой. Он превращает валидные файлы PNG в валидные программы, вычисляя необходимый ключ AES для такой конвертации. Разработчики выпустили скрипт несколько месяцев назад, а на конференции Black Hat Europe 2014 продемонстрировали одно из его практических применений.
Во время презентации хакеры показали разработанное ими приложение-обёртку, которое показывает картинку на экране Android-устройства, а потом может сконвертировать эту картинку в файл APK и установить его. В принципе, средства Android позволяют осуществить такую установку незаметно для пользователя, не спрашивая у него разрешения.
Для успешной работы эксплоита требуется добавить код в конец APK-файла, после маркера End of Central Directory (EOCD). Формально это не предусмотрено форматом, но в реальности можно добавить второй маркер и обмануть парсер Android. Компания Google уже уведомлена об уязвимости, но пока что вектор атаки актуален даже для последней версии Android 4.4.2 (на Android 5.0 ещё не проверяли).
Впрочем, даже после выхода патча высокая фрагментация рынка Android-устройств позволит эксплуатировать эту уязвимость на практике. Так что картинкам PNG доверять нельзя.