Компания Symantec сообщила об обнаружении трояна под Android, который использует технику «серверного полиморфизма» — она раньше наблюдалась во вредоносных программах под Windows. Данная техника означает, что при каждом скачивании генерируется уникальная версия файла — это помогает укрыться от антивирусного срабатывания при поиске по сигнатурам. Компания Symantec присвоила всем вариантам новой вредоносной программы название Android.Opfake. Программа распространяется с российских сайтов под видом различных популярных Android-программ (в частности, Opera Mini 6.5), а после заражения предлагает пользователю отправить SMS на различные платные номера.
Пока что вредоносная программа обнаружена только на российских сайтах, но она умеет отправлять платные SMS не только на российские номера, а также на номера операторов стран СНГ, стран Европы, а также Австралии, Израиля и Тайваня.
Программа видоизменяется автоматически по заданному алгоритму, кроме того, каждые несколько дней модификации в код вносятся вручную. По мнению исследователей, это свидетельствует о том, что авторы программы следят за работой своего детища.
Полиморфизм Android.Opfake осуществляется тремя способами: с помощью изменения данных, перепаковки файлов в пакете и внедрения мусорных файлов. Например, в одном из случаев при сравнении CRC файлов в двух пакетах исследователи обнаружили, что единственное значимое изменение произошло в файле res/raw/data.db
, все остальные изменившиеся файлы в META-INF содержат только сигнатуры всего пакета, так что они просто отражают факт изменения res/raw/data.db
.
CRC файла | Название файла | |
Installer.APK | SKACHAT.APK | |
9dc48f61 | 074c54b5 | META-INF/MANIFEST.MF |
b1377893 | 42ecb534 | META-INF/ALARM.SF |
248c37f7 | 65105b65 | META-INF/ALARM.RSA |
40659b25 | 40659b25 | AndroidManifest.xml |
bbd88c2d | bbd88c2d | resources.arsc |
7a3498c4 | 7a3498c4 | classes.dex |
6129f361 | 9e488e9e | res/raw/data.db |
27bc873d | 27bc873d | res/drawable-hdpi/logo.png |
27bc873d | 27bc873d | res/drawable-ldpi/logo.png |
27bc873d | 27bc873d | res/drawable-mdpi/logo.png |
fa11bed8 | fa11bed8 | res/drawable-hdpi/icon.png |
fa11bed8 | fa11bed8 | res/drawable-ldpi/icon.png |
fa11bed8 | fa11bed8 | res/drawable-mdpi/icon.png |
Анализ кода показал, что res/raw/data.db
содержит базу данных операторов сотовой связи со списком премиальных номеров и сообщений для отправки в том случае, если пользователь установит эту программу на свой телефон. Содержимое SMS-сообщений меняется при каждой загрузке, что приводит к генерации уникальных пакетов.
В другом случае полиморфизм OpFake достигался с помощью иной техники. В некоторых APK весь код и файлы с данными были одинаковыми, но MANIFEST.MF и сигнатуры отличались.
CRC | Название файла |
311fa59a | META-INF/MANIFEST.MF |
86f1655e | META-INF/CERT.SF |
ed814261 | META-INF/CERT.RSA |
02568138 | AndroidManifest.xml |
5539013f | classes.dex |
c9805df6 | res/drawable-hdpi/icon.png |
c9805df6 | res/drawable-mdpi/icon.png |
c9805df6 | res/drawable-ldpi/icon.png |
1d66a094 | res/layout/offert.xml |
b93210cd | res/layout/grant_access_to_content.xml |
169b2a86 | res/layout/main.xml |
30fe74be | res/raw/activation_schemes.cfg |
aca144d2 | res/drawable/progress_finished.xml |
3367b765 | res/xml/countries.xml |
f3087726 | resources.arsc |
88a24ad9 | 0.temp |
88a24ad9 | 1.temp |
88a24ad9 | 2.temp |
88a24ad9 | … |
Здесь полиморфизм достигается просто изменением порядка строк и файлов в пакете, в результате чего при генерации получаются новые манифест и сигнатуры.
В конце концов, третий способ полиморфизма — добавление мусорных файлов .temp. Удивительно, но все эти файлы .temp не выполняют никакой полезной функции, а только содержат некое таинственное изображение:
Расследование коллег из антивирусной компании F-Secure позволило идентифицировать индивидуума из файла .temp как некоего «свидетеля из Фрязино», который внедрён на многие фотографии методом фотомонтажа.