
Информация по анализу вредоносных программ для машинного обучения для приложений Android. ☢
DroidDetect - это инструмент Python для анализа приложений Android (APK) для потенциального поведения и конфигураций, связанных с вредоносным программным обеспечением. При предоставлении пути к приложению (файл APK) Droid Detective сделает прогноз (используя модель ML), если приложение является злонамеренным. Особенности и качества детектива дроида включают:
AndroidManifest.xml приложения. ?AndroidManifest.xml приложения. ?Все зависимости DroidDeTectect могут быть установлены вручную или через файл требований, с
pip install -r REQUIREMENTS.txtDroidDetect был протестирован как на Windows 10, так и на Ubuntu 18,0 LTS.
DroidDeTect можно запустить, предоставив файл Python APK в качестве параметра командной строки, например:
python DroidDetective.py myAndroidApp.apk
Если файл apk_malware.model не присутствует, то инструмент сначала будет обучать модель и потребует учебного набора APK в папке в корне проекта, называемого malware так и другой, который называется normal . После успешного запуска будет напечатан результат на CLI, если модель определила, что APK является злонамеренным или доброжелательным. Пример этого вывода можно увидеть ниже:
>> Analysed file 'com.android.camera2.apk', identified as not malware.
Дополнительный параметр может быть предоставлен DroidDetective.py в качестве файла JSON для сохранения результатов. Если этот файл JSON уже существует, результаты этого запуска будут добавлены в файл JSON.
python DroidDetective.py myAndroidApp.apk output.json
Примером этого вывода JSON является следующим образом:
{
"com.android.camera2" : false ,
}DroidDetect - это инструмент Python для анализа Android -приложений (APK) для потенциального поведения, связанного с вредоносными программами. Это работает путем обучения случайного классификатора леса в отношении информации, полученной как из известных вредоносных APK, так и стандартных APK, доступных в App App Store. Этот инструмент поступает предварительно обученным, однако модель может быть повторно обучена на новом наборе данных в любое время.
В настоящее время эта модель использует разрешения из файла APK AndroidManifest.xml в качестве набора функций. Это работает путем создания словаря каждого стандартного разрешения Android и установив функцию на 1 , если разрешение присутствует в APK. Аналогичным образом, функция добавляется для количества разрешений, используемых в манифесте, и для количества неопознанных разрешений, обнаруженных в манифесте.
Предварительно обученная модель была обучена приблизительно 14 семействам вредоносных программ (каждое с одним или несколькими файлами APK), расположенным в репозитории AshisDB, и приблизительно 100 нормальных приложений, расположенных в магазине Google Play.
Ниже обозначает статистику для этой модели ML:
Accuracy: 0.9310344827586207
Recall: 0.9166666666666666
Precision: 0.9166666666666666
F-Measure: 0.9166666666666666
В топ -10 самых взвешенных функций (т.е. разрешения на андроид), используемые этой моделью, для идентификации вредоносных программ можно увидеть ниже:
"android.permission.SYSTEM_ALERT_WINDOW": 0.019091367939223395,
"android.permission.ACCESS_NETWORK_STATE": 0.021001765263234648,
"android.permission.ACCESS_WIFI_STATE": 0.02198962579120518,
"android.permission.RECEIVE_BOOT_COMPLETED": 0.026398914436102188,
"android.permission.GET_TASKS": 0.03595458598076517,
"android.permission.WAKE_LOCK": 0.03908212881520419,
"android.permission.WRITE_SMS": 0.057041576632290585,
"android.permission.INTERNET": 0.08816028225034145,
"android.permission.WRITE_EXTERNAL_STORAGE": 0.09835914154294739,
"other_permission": 0.10189463965313218,
"num_of_permissions": 0.12392224814084198
GNU General Public License v3.0