В докладе компании McAfee о состоянии потенциальных угроз в первой четверти этого года указывалось наличие 6 млн выявленных уникальных образцов вредоносного программного обеспечения.
В докладе компании McAfee о состоянии потенциальных угроз в первой четверти этого года указывалось наличие 6 млн выявленных уникальных образцов вредоносного программного обеспечения. В этом смысле 1 квартал 2011 года оказался самым результативным по числу выявленных вредоносных программ в сравнении с аналогичными периодами всех прошлых лет. В отчете McAfee было отмечено, что устройства Android все чаще превращаются в разносчиков вредоносных программных средств. По мнению специалистов Android в первом квартале этого года стал вторым по популярности среди злоумышленников мобильным объектом для вторжения после Symbian.
В этой статье мы собираемся провести Вас через различные этапы анализа программного обеспечения, тем самым позволив Вам понять, в чем же конкретно заключаются уязвимости платформы Android и каким образом злоумышленники ими пользуются. Прежде всего, мы начнем с обсуждения истории разработки Android, а затем перейдем к основам функционирования пакетов конфигурации платформы. Параллельно мы будем в деталях анализировать все встречающиеся вредоносные программы, ориентированные именно на Android.
Рис. 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
В документе приведен пример ущерба, наносимого вредоносным программным обеспечением ничего не подозревающим пользователям. Если человек не догадывается о его существовании, то таким программам становится доступно выполнение практически любых несанкционированных действия в фоновом режиме. Работа вредоносных программ может повлечь за собой финансовые потери для пользователя путем списания средств с его балансов, а также кражи паролей. Помимо этого они могут стать причиной повреждения самого телефона. Как видите, очень важно своевременно применять адекватные меры предосторожности для предотвращения проникновения приложений такого рода в Ваш телефон. Лучше один раз перестраховаться, чем потом десять раз пожалеть.