Динамічний аналіз послідовностей API-викликів ОС Android
Методи та шляхи поширення шкідливого програмного забезпечення в операційній системі Android. Новий метод динамічного аналізу додатків, який дозволить покращити існуючу систему безпеки. Аналіз послідовностей API-викликів за допомогою інструментарію Frida.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 26.08.2020 |
Размер файла | 3,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Динамічний аналіз послідовностей API-викликів ОС Android
Володимир Казимир
Актуальність теми дослідження. На сьогодні набуло значного поширення використання користувачами мобільних пристроїв та додатків з метою зберігання приватної та конфіденційної інформації. Поряд з цим, існують методи та шляхи поширення шкідливого програмного забезпечення (ПЗ) в операційній системі (ОС) Android. Для ефективної боротьби з ними постає необхідність розробки нових покращених підходів до виявлення шкідливого ПЗ в OС Android. У статті розглянуто новий метод динамічного аналізу додатків, який дозволить покращити існуючу систему безпеки.
Постановка проблеми. У галузі забезпечення ефективної та безпечної роботи мобільних пристроїв функціональна та інформаційна безпека розглядаються як дві фундаментальні складові, що взаємодоповнюють одна одну. Одним із найефективніших способів отримання зловмисником доступу до конфіденційної інформації є використання ОС Android. Одним із засобів підвищення надійності роботи є розробка моделей безперервного динамічного захисту.
Аналіз останніх досліджень і публікацій. Розглянуто останні публікації у відкритому доступі, включаючи дані Google Malware Project, PScout Android Permissions Mappings та Axplorer Permissions Mappings та роботу Android Malware Detection Using Permission Analysis.
Виділення недосліджених частин загальної проблеми. Розробка та математичне обґрунтування моделей безперервного аналізу API-викликів в ОС Android.
Постановка завдання. Запропонувати базову модель захисту ОС Android, що ґрунтується на аналізі послідовностей API-викликів.
Виклад основного матеріалу. У статті наведено метод отримання та аналіз послідовностей API-викликів OС Android за допомогою інструментарію Frida. Також наведено найбільш репрезентативні результати тестування запропонованого методу.
Висновки відповідно до статті. Запропоновано метод динамічного аналізу шкідливого ПЗ з використанням інструментарію для реверс-інжинірингу Android та IOS додатків - Frida. Запропонований метод динамічного аналізу API-викликів можна використовувати для покращення існуючих систем аналізу APK, а метод дослідження вірусних послідовностей можна поширити для всіх характерних вірусних груп.
Ключові слова: безпека; безпека Android; API-виклики; зловмисне ПЗ; динамічний аналіз; дозволи; Frida. виклик програмний безпека
Актуальність теми дослідження. Використання користувачами мобільних пристроїв та додатків з метою зберігання приватної та конфіденційної інформації на сьогодні набуло значного поширення. Поряд з цим існують методи та шляхи поширення шкідливого програмного забезпечення в ОС Android.
Завдяки зростаючій популярності Android за останні кілька років зловмисне програмне забезпечення, спрямоване на платформу, значно зросло. Згідно з останнім звітом McAfee [8], щороку з'являється близько 2,5 млн нових зразків шкідливих програм Android, таким чином збільшуючи загальну кількість зразків шкідливих програм до 12 млн.
Зловмисне програмне забезпечення для Android можна знайти в різних додатках, таких як ігрові програми, банківські програми, додатки соціальних медіа, освітні програми та додаткові програми. Програми, заражені зловмисним програмним забезпеченням, можуть мати доступ до конфіденційної інформації, надсилати текстові повідомлення до VIP номерів без погодження з користувачем або навіть встановлювати руткіт на пристрій, що дозволяє завантажувати та виконувати будь-який код, який розробник зловмисного програмного забезпечення хоче розгорнути, тощо.
Для ефективної боротьби зі зловмисним програмним забезпеченням постає необхідність розробки нових покращених підходів до виявлення шкідливого ПЗ в ОС Android. У статті розглянуто новий метод динамічного аналізу додатків на предмет виявлення шкідливого програмного забезпечення, який дозволить покращити існуючу систему безпеки.
Постановка проблеми. Проблеми статичного аналізу програмного забезпечення ОС Android пов'язані з недосконалістю багатьох факторів виявлення зловмисного ПЗ. Ключовою проблемою статичного аналізу дозволів основаного на стандартному методі
LSI, який було запропоновано в роботі Android Malware Detection Using Permission Analysis [6], є неможливість виявлення небезпечних частин коду apk.
Аналіз останніх джерел і публікацій. У роботі Android Malware Detection Using Permission Analysis [6], що ґрунтується на стандартному методі LSI, використовується статичний аналіз ПЗ. Замість статичного аналізу пропонується зробити динамічний аналіз послідовностей викликів. Динамічний аналіз роботи мобільних додатків обов'язково включає у себе блок забезпечення функціональної безпеки, що здійснює моніторинг потенційно небезпечних послідовностей та ідентифікує відповідні події, які можуть призвести до втрати даних, доступу до конфіденційних даних сторонніх осіб або блокування сторонніми особами належного доступу. На базовому етапі отримання послідовностей API-викликів «Android Permission» [7], є визначення API-викликів, що застосовує програму на основі мапінгів та подальше отримання послідовностей API- викликів на основі інструментарію Frida [3].
Виділення недосліджених частин загальної проблеми. Розробка та математичне обґрунтування моделей безперервного аналізу API-викликів в ОС Android.
Постановка завдання. Мета статті полягає в описі нового методу динамічного аналізу послідовностей API-викликів ОС Android.
Виклад основного матеріалу.
Метод динамічного аналізу. Станом на 2019 рік, Google Android є лідером мобільних операційних систем, займаючи майже 80 % ринку. Понад 65 млрд завантажень було зроблено з офіційного магазину ігор Google [5], а нині існує понад 1 млрд пристроїв Android у всьому світі. За даними Statista [4], до 2021 року по всьому світу буде доставлено близько 1,5 млрд пристроїв Android.
Ця стаття має продовжити дослідження, розпочате в роботі [6]. Схема статичного пошуку API-викликів наведена на рис. 1.
Рис. 1. Схема статичного пошуку API-викликів
Замість наявного підходу пропонується зробити динамічний аналіз послідовностей викликів, які використовують Android Permissions. Алгоритм динамічного аналізу послідовностей API-викликів має стати підсистемою мережевого ресурсу, що розповсюджує додатки для мобільних пристроїв на основі ОС «Android».
Базова схема роботи аналізатора програмного додатка складається з таких пунктів:
статичний пошук API-викликів;
динамічне отримання послідовності за допомогою інструментарія Frida;
побудова графу поведінки;
глибинний аналіз субграфів;
стиснення графу;
отримання результатів ймовірності зловмисного ПЗ.
Для визначення API-викликів, що може застосовувати додаток, запропоновано зробити пошук на основі PScout Android Permissions Mappings та Axplorer Permissions Mappings.
Наприклад, для android.permission.READ_CONTACTS існує 57 API-викликів, серед яких найбільш поширеними є:
android.net.Uri addToMyContactsGroup(android.content.ContentResolver,long);
android.net.Uri getContactUri(int);
android.net.Uri getUriToQuery();
android.database.Cursor loadAllSimContacts(int);
android.widget.QuickContactBadge:
void assignContactFromEmail(java.lang.String,boolean,android.os.Bundle).
Схема запропонованого методу динамічного отримання послідовностей API- викликів наведена на рис. 2.
Рис. 2. Схема динамічного отримання послідовностей API-викликів
Для отримання послідовності API-викликів створено динамічний аналізатор на основі інструментарію Frida - Dynamic Instrumentation Toolkit for Developers, Reverse-engineers, and Security researchers, який дозволяє перехоплювати API-виклики та робити ін'єкції власного коду в працюючу APK. Отримана за допомогою динамічного аналізатора послідовність API-викликів, що включає передачу конфіденційних даних, наведена на рис. 3.
Рис. 3. Послідовності API-викликів, що включає передачу конфіденційних даних
Програмний код однієї з отриманих послідовностей включає у себе такі кроки, що базуються на основі типових API-викликів:
отримання номера телефона користувача «getLinelNumber ()»;
отримання ім'я постачальника послуг «getSimOperatorName ()»;
кодування даних у формат «String» (String, byte []));
передача даних через мережевий канал«network (write(byte[])».
Фіксуючи API-виклики з вірусних APK проєкту Android Malware Genome project [7], була сформована база данних вірусних послідовностей API-викликів. Наведені характерні для permissions API-виклики взято з досліджень Android Permissions Mappings [9] та [2].
Дослідження вірусних послідовностей. Запропонована математична модель визначення ймовірності вірусної послідовності API-викликів базується на розділенні досліджуваного інтервалу часу на і інтервалів (де і Є [1; /]), при цьому час, за який отримується послідовність визначається через змінну % Є [t0; tA]. У такому разі ймовірність виникнення вірусної послідовності з небезпечних додатків може бути визначена через рівняння:
де nt - кількість вірусних послідовностей API-викликів, а N - повна кількість зафіксованих послідовностей API-викликів. Ці послідовності отримані з 246 APK проєкту Android Malware Genome Project [7]
Отримання вірусної послідовності в різні інтервали часу t - незалежні події, ймовірність отримання за кожен квант p -- 0,67.
Розрахуємо залежність знаходження ймовірності вірусної послідовності від її довжини. Для розподілу ймовірності отримання вірусної послідовності до першого точного збігу будемо використовувати геометричний закон розподілу.
де p = P (A) - ймовірність появи події А (вірусної послідовності API-викликів) у кожному випробуванні, q = 1 - p, X=k - кількість випробувань до появи події А в серії незалежних повторних випробувань.
Графік ймовірністі отримання вірусної послідовності API-викликів залежно від її довжини наведений на рис. 4.
Рис. 4. Ймовірність отримання вірусної послідовності API-викликів
залежно від її довжини
Нехай випадкова величина Х - довжина самої послідовності. Визначимо числові характеристики даного розподілу: математичне сподівання М(Х), дисперсії D(X) та ереднього квадратичного відхилення c(X) :
Для прикладу можна знайти ймовірність отримання певних API викликів троян характерних вірусів для таких послідовностей:
com.android.providers.contacts.ContactsProvider2;
android.telephony.TelephonyManager.listen;
getAllCellInfo;
getCellLocation;
sendDataMessage.
Результати експериментів із зафіксованою статистикою частоти викликів однієї з послідовностей, характерної для троян-вірусів, розрахованою за формулою (1), наведено на рис. 5.
Рис. 5. Статистика частоти викликів однієї з послідовностей, характерної для троян-вірусів
Висновки відповідно до статті
Дана стаття є продовженням статті дослідження безпеки ОС Android [6]. Запропоновано метод динамічного аналізу шкідливого ПЗ з використанням інструментарію для реверс-інжинірингу Android та IOS додатків - Frida [3]. Запропонований метод динамічного аналізу API-викликів можна використовувати для покращення існуючих систем аналізу APK, а метод дослідження вірусних послідовностей можна поширити для всіх характерних вірусних груп.
Список використаних джерел
AndroidMalwareGenome Project. URL: http://www.malgenomeproject.org.
Axplorer Android Permission Mappings. A static analysis tool to study Android's application framework's internals. URL: https://github.com/reddr/axplorer.
Frida Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. URL: https://www.frida.re.
Global smartphone shipments by OS 2016-2021 statistic. URL: https://www.statista.com/ statistics/309448/global-smartphone-shipments-forecast-operating-system.
Google Play: number of downloads statistic. URL: https://www.statista.com/statistics/281106/ number-of-android-app-downloads-from-google-play.
Hossain Shahriar, Mahbubul Islam, Victor Clincy. Android malware detection using permission analysis. SoutheastCon 2017. Charlotte, North Carolina, USA 30 March - 2 April 2017. 2017. P. 60-66. DOI: 10.1109/SECON.2017.7925347.
Размещено на Allbest.ru
Подобные документы
Ескізний проект програмного забезпечення для 3D-навігації для мобільних пристроїв під управління ОС Android. Розробка прототипу інтерфейсу. Технічний проект програмного забезпечення. Створення діаграми класів, аналізу, розгортання та кооперацій.
курсовая работа [880,5 K], добавлен 09.01.2014Первое устройство, работающее под управлением Android. Приложения под операционную систему Android. Формат установочных пакетов. Разработка приложений на языке Java. Шаблоны основных пакетов и компонентов Android. Сборка приложений, основанная на Gradle.
курсовая работа [492,0 K], добавлен 08.02.2016Проблема розробки інтелектуального агента. Вибір і обґрунтування аналогу. Реалізація програмної системи збору та аналізу статистичних даних про контакти користувача. Створення файлів, встановлення додатків Android (APK) з файлів скриптів на мові Python.
дипломная работа [2,7 M], добавлен 05.10.2012Архитектура операционной системы Android. Инструменты Android-разработчика. Установка Java Development Kit, Eclipse IDE, Android SDK. Настройка Android Development Tools. Разработка программы для работы с документами и для осуществления оперативной связи.
курсовая работа [2,0 M], добавлен 19.10.2014Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Характеристика работы операционной системы Android, используемой для мобильных телефонов. Создание Android проекта в среда разработки Eclipse. Общая структура и функции файла манифест. Компоненты Android приложения. Способы осуществления разметки.
курсовая работа [1,0 M], добавлен 15.11.2012Разработка открытой мобильной платформы Android. Первое устройство, работающее под управлением Android. Магазин приложений "Google Play". Полноценные программы навигации, редакторы офисных документов и синхронизационные утилиты. Рост вирусной активности.
презентация [58,8 K], добавлен 29.10.2014Google Android как программный стек для мобильных устройств, который включает операционную систему, программное обеспечение промежуточного слоя и пользовательские приложения. Структура платформы и ее основные элементы: ядро, программы, каркас приложений.
реферат [600,4 K], добавлен 08.01.2015Общая характеристика системы Android, обзор его аналогов. Необходимые компоненты для начала работы в Android. Настройка конфигураций Ubuntu. Написание script-ов, упрощающих генерацию Linux. Отладка и тестирование программы на плате i.MX53 фирмы freescale.
курсовая работа [1,1 M], добавлен 12.10.2012Описание основных математических методов обработки эмпирических данных. Регрессионный метод и анализ ковариаций Ancova. Организация операционной системы, среды программирования на Android. Программная реализация метода 1МНК в среде С++ под Android.
дипломная работа [4,2 M], добавлен 23.03.2017