关于DroidDetective
DroidDetective是一款功能强大的Python工具,该工具可以帮助广大研究人员分析Android应用程序(APK)中潜在的与恶意软件相关的行为或配置。我们只需要给DroidDetective提供一个应用程序APK文件路径,DroidDetective将会使用其机器学习模型来对目标应用程序进行分析和判断。
功能介绍
1、分析目标应用程序的AndroidManifest.xml文件中包含了那些权限(支持约330种权限);
2、分析目标应用程序的AndroidManifest.xml文件中使用的标准和专用权限数量;
3、使用了RandomForest机器学习分类器,可以通过14种恶意软件家族和上百款Google Play应用商店App中训练出上述数据;
机器学习模型
DroidDetective通过训练RandomForest机器学习分类器来分析Android应用程序(APK)的潜在恶意软件相关行为。这个分类器的训练数据来源于Android应用商店上已知的恶意软件APK和标准APK。该工具是经过预先训练的,但是,可以随时在新的数据集上重新训练模型。
此模型当前使用来自目标APK的AndroidManifest.xml文件中的数据作为功能集,并且能够创建标准的Android权限字典,如果APK中存在某个权限,则将该功能设置为1。
预先训练的模型利用了ashisdb提供的14个恶意软件家族以及上百款Google Play应用商店App来进行训练。
下面给出的是DroidDetective机器学习模型的统计信息:
Accuracy: 0.9310344827586207 Recall: 0.9166666666666666 Precision: 0.9166666666666666 F-Measure: 0.9166666666666666
该模型可以用于识别恶意软件的前十大热门权限,具体如下所示:
"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
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/user1342/DroidDetective.git
工具安装
由于该工具基于Python语言开发,因此我们首先需要在本地设备上安装并配置好Python环境。接下来,可以使用requirements.txt文件来安装该工具所需的依赖组件:
pip install -r REQUIREMENTS.txt
注意,DroidDetective已在Windows 10和Ubuntu 18.0 LTS系统上进行过测试。
工具使用
在下列命令中,我们将一个待分析的目标APK文件以命令行参数的形式提供给了DroidDetective的Python脚本,并执行分析:
python DroidDetective.py myAndroidApp.apk
如果apk_malware.model文件不存在的话,该工具则首先需要训练模型,此时需要在项目的malware目录和normal目录中提供训练集APK。
分析完成之后,工具将会把分析结果打印到命令行窗口中,并告知广大研究人员目标APK文件是否具有恶意性。
下面给出的是一份分析结果示例:
>> Analysed file 'com.android.camera2.apk', identified as not malware.
当然了,我们也可以通过命令行参数的形式让DroidDetective将分析结果存储到一个JSON文件中,如果目标JSON文件已存在的话,工具则会将分析结果追加到文件内容结尾处:
python DroidDetective.py myAndroidApp.apk output.json
下面给出的是JSON文件输出样例:
{ "com.android.camera2": false, }
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可证协议。
项目地址
DroidDetective:【GitHub传送门】
参考资料
本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM
cesfe 22天前0
好的,谢谢昶之琴 24天前0
这个安装地址失效了,我在网上找了一个:https://xiazai.zol.com.cn/detail/35/344340.shtml 如果还是不行的话就需要您自己去网上找找了cesfe 25天前0
帆软部署 ,访问的地址访问不到昶之琴 2年前0
我以为只要提交就行了好想告诉你 2年前0
花巨资看一下