Новости
12.04.2024
Поздравляем с Днём космонавтики!
08.03.2024
Поздравляем с Международным Женским Днем!
23.02.2024
Поздравляем с Днем Защитника Отечества!
Оплата онлайн
При оплате онлайн будет
удержана комиссия 3,5-5,5%








Способ оплаты:

С банковской карты (3,5%)
Сбербанк онлайн (3,5%)
Со счета в Яндекс.Деньгах (5,5%)
Наличными через терминал (3,5%)

СТАТИЧЕСКИЙ АНАЛИЗ ВРЕДОНОСНЫХ ПРИЛОЖЕНИЙ ПОД МОБИЛЬНЫЕ ПЛАТФОРМЫ

Авторы:
Город:
Санкт-Петербург
ВУЗ:
Дата:
23 февраля 2016г.

В 2010 году специалистами различных компаний, занимающихся информационной безопасностью были обнаружены первые образцы вирусов для операционной системы Android [1-3]. C этого момента количество угроз для данной платформы продолжает расти. По данным LookoutSecurityMobile, за 2011 год у пользователей Android-телефонов было украдено около миллиона долларов США[4].

По состоянию на январь 2013 года 99% всех мобильных угроз нацелены на операционную систему Android [5]. Относительно низкая цена Аndroid устройств, а так же большое количество приложений для данной платформы сделали ее одной из самых популярных в мире. На сегодняшний день активировано более 900 миллиона устройств под управлением операционной системы Android[6]. Такая популярность и более открытая политика распространения приложений по сравнению с конкурентами, вызвала большой интерес у мошенников. В результате задача по защите мобильных устройств своих пользователей становится важной перед разработчиками антивирусных продуктов.

Защита такого большого числа пользователей невозможна без автоматизации процесса анализа приложений. Современные антивирусные продукты используют различные методы обнаружения. Наиболее распространѐнным является сигнатурный анализ. Данный метод позволяет довольно быстро (порядка 10^-1 cек/файл) анализировать большое количество приложений, так как оценивает лишь определенный набор байт в файле - сигнатуру, однако имеет один существенный недостаток – данный метод бесполезен при анализе новых вредоносных приложений, сигнатуры которых еще не внесены  в базу. В статье будет рассмотрен один из способов, позволяющий повысить качество и скорость своевременного обнаружения новых образцов вредоносных приложений.

Вредоносные приложения, разработанные под мобильные платформы, подразделяются на несколько классов, характеризующих их поведение. Согласно статистике ведущих антивирусных компаний, наиболее распространѐнными среди хакеров являются программы семейства «SmsSend», отправляющие СМС сообщения на платные номера. Исследованию угроз такого типа посвящена данная статья.

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

Операционная система Android разработана таким образом, что все приложения запускаются в виртуальной машине Dalvik, несколько отличающейся от распространенной JVM «Hotspot». Наиболее важным для анализа отличием Dalvik от JVM является особый формат инструкций. Виртуальная машина Dalvik является регистровой машиной, в отличие от JVM Hotspot, которая является стековой. Это отличие позволяет быстрее выполнять инструкции на процессоре, таким образом, экономно расходовать заряд аккумулятора. Более детально отличие показано на Рисунке 1 и Рисунке 2:



Вторым немаловажным отличием в формате исполняемых файлов, рассматриваемых машин является то, что в отличие от JVM Hotspot, в Dalvik все исходные коды собираются в один бинарный файл. Данный файл упаковывается в apk архив и имеет расширение dex.

Существенное отличие в формате исполняемых файлов не позволило использовать готовые инструменты, разработанные для декомпиляции бинарных файлов JVM «Hotspot». В связи с  этим был реализован декомпилятор, позволяющий произвести разбор бинарного файла, определить какие инструкции принадлежат определенным методам, и в последствии построить по ним модель для анализа. Алгоритм работы декомпилятора в данной статье описан не будет, так как занимает большой объем. Важно лишь то, что алгоритм способен разобрать бинарный формат, описанный на сайте разработчиков под операционную систему Android[7]. В данной статье приведѐн только алгоритм, определяющий наличие подозрительного когда для вредоносных приложений семейства SmsSend.



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

Наиболее распространенными являются алгоритмы, в которых код непосредственной отправки сообщения помещается в метод, вызываемый при старте приложения, и являющимся «точкой входа» в программу. Для анализа такого поведения был предложен следующий алгоритм:

1.     Разобрать бинарный файл. Данный шаг включает в себя декомпиляцию classes.dex файла, разбиения массива инструкций на блоки, соответствующие методам приложения.

2.     Последовательно обработать все ассемблерный инструкции каждого метода в поисках инструкций вызова других методов.

3.     Построить на основе обработки ориентированный граф, вершины которого являются методами классов приложения, а ориентированные ребра показывают порядок вызова этих методов. Данный граф является графом передачи управления. Пример такого графа представлен на Рисунке 3. При этом серым, красным и зеленым выделены методы, являющиеся частью Android SDK. Алгоритм ищет именно системные методы, т.к. они будут присутствовать в коде вредоносного приложения независимо от алгоритма программы (OnCreate - точка входа в программу, sendTextMessage - системный вызов для отправки смс-сообщения).



1.     Найти в полученном графе методы, вызываемые при старте приложения. Примером может послужить метод onCreate[8].

2.     Найти в полученном графе метод, отвечающий за отправку смс-сообщений. (sendTextMessage).

3.     Проверить наличие пути между методами из пунктов 4 и 5. Если такой путь есть, то считать приложение вредоносным. При этом абсолютно не важно как злоумышленник называл методы при разработке вредоносной программы (на Рисунке 3, в примером ―пользовательского‖ метода является вершина sendSms), таким образом, данный алгоритм способен обнаруживать вредоносные приложения путем оценки алгоритма работы, а не конкретной реализации, что в свою очередь повышает качество анализа.

 Полученный алгоритм был протестирован на вирусной коллекции, предоставленной компанией VirusTotal. Всего было проанализировано 2000 файлов. Половина из которых были представителями семейства SmsSend, другая половина не являлись вредоносными приложениями, но могли содержать код отправки смс сообщений. При анализе на «чистых» файлах процент обнаружения составил 1,5%, а при анализе среди вредоносных приложений – 65%.

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



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

1.     Электронная статья «Security Alert: First Android SMS Trojan Found in the Wild». – Режим доступа: https://blog.lookout.com/blog/2010/08/10/security-alert-first-android-sms-trojan-found-in-the-wild/

2.     Электронная статья на официальном сайте компании «Лаборатория Касперского» 2010 г. «Обнаружен первый в мире SMS-троянец для Android-смартфонов». – Режим доступа: http://www.kaspersky.ru/news?id=207733291

3.     Электронная статья на официальном сайте компании «Доктор Веб» 2010 г. «Андроид с вирусом!». – Режим доступа:  https://blogs.drweb.com/node/697

4.     Электронная статья «The top security threats to mobile users in 2012? Malware, sneaky ads and data thieves». – Режим   доступа:   http://thenextweb.com/apps/2011/12/14/lookout-reports-mobile-threats-for-2012/

5.     Электронная статья на официальном сайте компании «Лаборатория Касперского» 2010 г.«99% of all mobile threats target Android devices. – Режим доступа: http://www.kaspersky.com/about/news/virus/2013/99_of_all_mobile_threats_target_android_devices

6.     Электронная     статья     «Активировано     900     миллионов     Android-устройств».     –     Режим      доступа: http://chezasite.com/android/aktivirovano-900-millionov-andr-60199.html

7.     Официальная страница проекта «Android». – Режим доступа: https://source.android.com/devices/tech/dalvik/index.html

8.     Официальная страница документации разработчиков приложений для ОС Android.– Режим доступа: http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)