Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 28 апреля 2015 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Князев Д.М., Грибанов И.А. ИССЛЕДОВАНИЕ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МОБИЛЬНОЙ ОС ANDROID // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXI междунар. студ. науч.-практ. конф. № 4(30). URL: https://sibac.info/archive/technic/4(30).pdf (дата обращения: 22.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ИССЛЕДОВАНИЕ  ВРЕДОНОСНОГО  ПРОГРАММНОГО  ОБЕСПЕЧЕНИЯ  ДЛЯ  МОБИЛЬНОЙ  ОС  ANDROID

Князев  Денис  Михайлович

Грибанов  Иван  Алексеевич

студенты  3  курса,  факультет  информатики,  СГАУ  им.  академика  С.П.  Королева,  РФ,  г.  Самара

E  -mail: 

E  -mail: 

Климентьев  Константин  Евгеньевич

научный  руководитель,  доцент,  канд.  техн.  наук,  кафедра  информационных  систем  и  технологий,  СГАУ  им.  академика  С.П.  Королева,  РФ,  г.  Самара

 

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

Тем  не  менее,  история  показывает,  что  мобильные  устройства  также  подвержены  такого  рода  угрозам.

Рассмотрим  исследование  вредоносного  кода  на  примере  приложения  iCalendar  для  мобильной  операционной  системы  Android.  Это  приложение,  полученное  в  формате  APK,  было  найдено  на  одном  из  сайтов,  распространяющих  «варезное»  ПО. 

Формат  Android  Package  (APK)  представляет  собой  незашифрованный  архив,  содержащий  в  себе  метаинформацию  о  приложении,  байт  код,  а  также  медиаресурсы  (иконки,  строки,  xml  разметки).  Для  получения  доступа  к  этим  файлам  воспользуемся  утилитой  apktools,  распространяемой  бесплатно,  запустив  ее  с  параметром  -d.  После  исполнения  программы,  получим  следующую  директорию,  показанную  на  рисунке  1.

 

Рисунок  1.  Директория  с  распакованным  APK

 

В  первую  очередь  нас  интересует  файл  AndroidManifest.xml.  В  нем  содержится  вся  необходимая  для  системы  служебная  информация.  К  ней  относятся  список  Activity  (экранов  приложения),  сервисов  и  широковещательных  каналов.  Но  в  прежде  всего  нас  интересуют  разрешения  (permission),  которые  необходимо  прописать  в  AndroidManifest,  чтобы  использовать  те  или  иные  возможности  операционной  системы  [2].  Открыв  AndroidManifest,  мы  увидим  следующие  строки:

<uses-permission  android:name="android.permission.INTERNET"/>

<uses-permission  android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permission  android:name="android.permission.RESTART_PACKAGES"/>

<uses-permission  android:name="android.permission.RECEIVE_SMS"/>

<uses-permission  android:name="android.permission.SEND_SMS"/>

<uses-permission  android:name="android.permission.SET_WALLPAPER"/>

Если  объяснить  необходимость  доступа  к  календарю  и  интернету  еще  представляется  возможным,  то  чтение  и  отправка  SMS-сообщений  совершенно  не  входят  в  обязанности  приложения-календаря.  Таким  образом,  взглянув  на  содержимое  файла  AndroidManifest,  мы  достаточно  точно  представляем,  что  нужно  искать  в  коде.

Теперь  перейдем  непосредственно  к  коду.  Как  правило,  приложения  для  Android  создаются  с  использованием  языка  Java,  код  которого  компилируется  в  dex-файлы.  Такие  файлы  легко  поддаются  декомпиляции.  Получить  исходный  код  приложения  можно  в  два  этапа.  Сперва  воспользуемся  утилитой  dex2jar,  передав  ей  в  качестве  параметра  путь  до  APK  файла.  После  ее  применения  получаем  файл  вида  <apk_name>_dex2jar.jar.  Файл  JAR  (Java  ARchive)  —  это  архив,  в  котором  содержится  часть  программы  на  языке  JAVA.  Второй  этап  декомпиляции  —  вытащить  исходный  код  из  фала  jar.  В  этом  поможет  утилита  Java  Decompiler,  которая  после  завершения  работы  выдаст  директорию  с  исходным  кодом  проекта.  Директория  будет  иметь  вид,  представленный  на  рисунке  2.

 

Рисунок  2.  Директория  с  исходным  кодом  после  декомпиляции

 

По  названию  файлов  (а  именно  a.java,  aa.java  и  т.  д.)  мы  можем  предположить,  что  исходный  код  был  обфусцирован  [3].  Такой  обфускатор,  предоставляемый  вместе  с  Android  SDK,  меняет  имена  файлов,  классов  и  методов,  чтобы  усложнить  понимание  работы  программы  при  ее  исследовании.  Поскольку  разработка  для  системы  Android  является  Framework-ориентированной,  имена  классов  и  методов  системных  библиотек  не  будут  меняться  при  обфускации.  Эта  особенность  позволяет  нам  искать  код,  который  имеет  интересующую  нас  функциональность. 

Учитывая  строки,  которые  мы  видели  в  файле  AndroidManifest,  воспользуемся  поиском  по  именам  методов  и  классов.  Будем  искать  классы,  связанные  с  SMS,  а  именно  класс  SMSManager,  описанный  в  документации  к  Android  SDK.  Результаты,  полученные  после  поиска  по  ключевому  слову  “sms”,  показаны  на  рисунке  3.

 

Рисунок  3.  Результаты  поиска  по  слову  “sms”

 

Посмотрим  содержимое  файла  iCalendar.java.  Мы  увидим,  что  он  унаследован  от  класса  Activity.  Это  объясняет,  почему  имя  класса  осталось  неизменным  после  обфускации.  Все  классы-activity  прописываются  в  файле  AndroidManifest,  а  значит  обфускатор  не  может  изменить  их  имена,  не  вызвав  ошибки  компиляции. 

Вернемся  к  анализу  кода.  Автор  приложения  никак  не  маскирует  вредоносный  код.  В  данном  случае  мы  видим  использование  функции  sendTextMessage(),  принимающую  в  качестве  параметров,  кроме  всего  прочего,  номер  получателя  и  текст  сообщения  [1].

 

Рисунок  4.  Фрагмент  вредоносного  кода

 

Анализируя  фрагмент,  представленный  на  рисунке  4,  можно  смело  утверждать,  что  за  отправку  SMS  сообщения  на  указанный  в  параметрах  метода  номер  телефона  со  счета  абонента  будет  списана  неприлично  большая  сумма.  Отсюда  вытекает  способ  монетизации,  используемый  автором  приложения.  Ничего  не  подозревающий  пользователь  скачивает  приложение-календарь,  которое  без  его  ведома  отправляет  SMS,  принося  деньги  в  карман  разработчика. 

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

 

Список  литературы:

1.Официальный  сайт  «Android».  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://developer.android.com/reference/android/telephony/gsm/SmsManager.html  (дата  обращения  20.04.15).

2.Официальный  сайт  «Android».  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://developer.android.com/guide/topics/security/permissions.html  (дата  обращения  20.04.15).

3.Официальный  сайт  «Android».  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://developer.android.com/tools/help/proguard.html  (дата  обращения  20.04.15). 

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.