27.09.2011

Описание вредоносных программных средств для Android

image

В докладе компании McAfee о состоянии потенциальных угроз в первой четверти этого года указывалось наличие 6 млн выявленных уникальных образцов вредоносного программного обеспечения.

Автор: Динеш Шетти (Dinesh Shetty)
консультант по информационной безопасности
dinesh.shetty@live.com

В докладе компании McAfee о состоянии потенциальных угроз в первой четверти этого года указывалось наличие 6 млн выявленных уникальных образцов вредоносного программного обеспечения. В этом смысле 1 квартал 2011 года оказался самым результативным по числу выявленных вредоносных программ в сравнении с аналогичными периодами всех прошлых лет. В отчете McAfee было отмечено, что устройства Android все чаще превращаются в разносчиков вредоносных программных средств. По мнению специалистов Android в первом квартале этого года стал вторым по популярности среди злоумышленников мобильным объектом для вторжения после Symbian.

В этой статье мы собираемся провести Вас через различные этапы анализа программного обеспечения, тем самым позволив Вам понять, в чем же конкретно заключаются уязвимости платформы Android и каким образом злоумышленники ими пользуются. Прежде всего, мы начнем с обсуждения истории разработки Android, а затем перейдем к основам функционирования пакетов конфигурации платформы. Параллельно мы будем в деталях анализировать все встречающиеся вредоносные программы, ориентированные именно на Android.

Введение в платформу Android

Android представляет собой операционную систему для сотовых телефонов, коммуникаторов, планшетных компьютеров и других устройств, основанную на базе ядра Linux. Приложения для Android разработчики пишут в основном на языке Java, предусматривая управление устройством с помощью разработанной компанией Google, Java библиотеки. Android компилятор Java компилирует набор файлов разработчика в файлы классов, а затем класс файлы преобразуются в файлы dex. Эти файлы имеют байт-код специально применяющийся для распознавания виртуальной машины Dalvik – представляющей собой среду исполнения байт-кодов Java-приложения (JVM), работающей на специальном приложении для Android. XML-файлы преобразуются в двоичный формат, оптимизированный для создания небольших файлов. Файлы .dex, двоичные файлы XML и другие ресурсы, необходимые для запуска приложений, упаковываются в файл пакета Android. Эти файлы имеют расширение .apk, но являются стандартными ZIP файлами. Как только пакет apk сформирован, на него наносится цифровая подпись разработчика, и он загружается на Android Market через веб-сайт Google, откуда пользователь можете скачать эти apk-файлы и установить их на свое Android устройство. В настоящее время существует более 2 миллионов доступных для загрузки приложений в центральном хранилище для Android приложений, и помимо этого не стоит забывать, что Google Android приложения могут быть загружены и с других сторонних сайтов.

Требования

  • Инструмент для распаковки файлов формата apk – Winzip
  • Инструмент для преобразования файлов .dex в файлы .jar :.. Dex2jar
  • Графическая утилита для декомпиляции Java: JD-GUI
  • Образцы вредоносных программ, ориентированных на Android для анализа

Подробные шаги

Шаг I:
Для инициирования процедуры анализа вредоносного программного обеспечения, сначала необходимо загрузить вредоносные образец, ориентированный на платформу Android. В этом случае, мы будем загружать iCalendar.apk, ставший одним из 11 подозрительных приложений удаленных из Android Market, поскольку в нем было обнаружено содержание вредоносных программ в Gadget Media. Проверка запроса на VirusTotal показала уровень обнаружения 46,5%, что продемонстрировано на рисунке ниже.

Рис. 1

Шаг II:

Извлечение iCalendar.apk файла с помощью Winzip, после чего можно просмотреть содержимое файла .apk

Рис. 2. .dex и. XML-файлы, обсуждавшиеся ранее в этой статье приведены на рис. 2.

Шаг III:

Следующим шагом будет выполнение кода с использованием инструмента "dex2jar". Комплект инструментов dex2jar преобразует исполняемые в Dalvik .dex файлы в Java .class файлы. "Classes.dex" - файл из нашего приложения попадает в каталог dex2jar " и преобразовывается с помощью следующей команды: dex2jar.bat classes.dex.

Рис. 3 Создание "classes.dex.dex2jar.jar" файлов в одном каталоге.

Рис. 4

Шаг IV:

Мы использовали JD-GUI для просмотра .class файлов. Открываем файл "Classes.dex.dex2jar.jar", с использованием JD-GUI.

Рис. 5: Показан полный исходный код приложений для Android.

Шаг V:
После получения исходного кода приложения, можно выполнить анализ фактического источника и провести проверку на наличие неполадок. Было отмечено, что файл с именем класса "SmsReceiver.class" выглядит несколько странно, ведь это календарь приложения, и SmsReceiver в данном случае не требуется. При дальнейшем осмотре исходного кода "SmsReceiver.class", было установлено, что он содержит три номера 1066185829, 1066133 и 106601412004, выглядящие довольно подозрительными. В частности, ситуация похожа на попытку блокирования сообщений, отправляющихся с указанных номеров на устройство Android, когда данное приложение было установлено и запущено.

Рис. 6

После поиска этих чисел через Google, было установлено, что это номера SMS сервиса , принадлежащего компании China Mobile (рис. 7).

Рис. 7

Мы пытались проанализировать, почему приложение пытается заблокировать отчеты о доставке из вышеупомянутых номеров в последующих действиях.

Шаг VI:
 После окончания аналиаз файла "SmsReceiver.class", переходим к анализу кода следующего файла .class, т.е. "iCalendar.class". Первый из них выглядит самым подозрительным. В частности, нами было замечено, что в функции showImg() присутствовала некая функция sendSms().

Рис. 8

Итак, мы инициировали проверку файла "sendSms()", чтобы увидеть особенности в выполнении команд. Как показано на рисунке ниже, мы видим, что когда функция sendSms() активирована, на номер 1066185829 автоматически отправляется SMS с текстом 921X1.

Рис. 9

Шаг VII:
В конце функции sendSms(), мы заметили наличие команды сохранения функции. Таким образом, мы искали функцию сохранения () внутри кода и нашли ее непосредственную взаимосвязь с функцией sendSms().

Рис. 10

После проведения соответствующего анализа и выяснения различных аспектов работы функции save(), было установлено, что строка "Y" проходит всякий раз при выполнении функции save(). Кроме того, был сделан вывод, что функция sendSms() может быть вызвана только лишь один раз, но не больше, поскольку существует цикл "if” установленный для функции sendSms().

Шаг VIII:
Объединив результаты всего проведенного анализа, можно получить четкое представление о полном функционировании различного рода вредоносных программ.

Приложение отправляет SMS на премиум номер 1066185829 с текстом 921X1. Параллельно блокируются любые входящие отчеты о доставке сообщений на этот номер, и в результате жертва не получит никакого сигнала о существовании такой SMS, отправленного приложением в фоновом режиме. Кроме того, SMS посылается лишь только один раз, и жертва фактически никак не может заподозрить, чем же на самом деле было вызвано списывание средств со счета.

Рис. 11: Полные выводы о вредоносных программах цикла iCalendar.apk

Заключение:

Вредоносная программа с root доступом к телефону не просто имеет возможность осуществлять чтение любых данных, хранящихся на нем, но и способна передать их в абсолютно любое место. Данная информация может включать в себя контактную информацию, документы и даже пароли для счетов. При наличии root доступа существует возможность установить и другие компоненты, недоступные для просмотра в пользовательском интерфейсе телефона, вследствие чего их нельзя легко удалить. Основные способы защиты приложений от  вредоносных программ для платформы Android приведены ниже:
  • Загрузка приложения только из надежных источников;
  • Проверка соответствующих рейтингов и обзоров, до загрузки приложения;
  • Внимательная оценка разрешений конкретных приложений;
  • Установка ОС Android обновлений, по мере их готовности;
  • Установка программ для защиты мобильных приложений.

В  документе приведен пример ущерба, наносимого вредоносным программным обеспечением ничего не подозревающим пользователям. Если человек не догадывается о его существовании, то таким программам становится доступно выполнение практически любых несанкционированных действия в фоновом режиме. Работа вредоносных программ может повлечь за собой финансовые потери для пользователя путем списания средств с его балансов, а также кражи паролей. Помимо этого они могут стать причиной повреждения самого телефона. Как видите, очень важно своевременно применять адекватные меры предосторожности для предотвращения проникновения приложений такого рода в Ваш телефон. Лучше один раз перестраховаться, чем потом десять раз пожалеть.

или введите имя

CAPTCHA
Doloto
26-12-2011 14:20:53
Пункты: 3)Установка ОС Android обновлений, по мере их готовности; 4)Установка программ для защиты мобильных приложений. Считаю полной ерундой. По ряду причин: Как повлияют обновления на софт который человек сам поставил и запустил с root правами? Обновления могут содержать фиксы дыр в системе, но таковых пока не нарыли. Чем поможет антивирус если программа собирает данные и отправляет их по почете, это же не левый процесс, запущенный непонятно каким скриптом из непонятной папки, а вполне легально установленное пользователем приложение, я не говорю о требованиях к системным ресурсам (давайте сделаем из мобильника калькулятор).
0 |