基于SVM的Android移动网络终端恶意代码的动静结合检测方法技术

技术编号:23343925 阅读:20 留言:0更新日期:2020-02-15 04:04
本发明专利技术公开了一种基于SVM的Android移动网络终端恶意代码的动静结合检测方法,构建包含恶意软件和非恶意软件的训练样本数据集;获取训练样本数据集中每个样本的静态特征与动态行为特征,构建每个软件样本的特征向量;对所有软件样本的特征向量增加恶意软件标记字段,训练支持向量机分类器;对恶意软件样本的特征向量增加恶意软件类别标记字段,训练随机森林分类器;提取待测软件的静态特征向量和动态特征向量,构建待测软件的特征向量;利用支持向量机分类器进行恶意软件检;若检测为恶意的软件,则进一步利用随机森林分类器判断其所属的恶意软件家族。本发明专利技术提高了软件恶意行为检测的准确性,同时具有恶意家族分类的能力。

Dynamic static combination detection method of malicious code in Android mobile network terminal based on SVM

【技术实现步骤摘要】
基于SVM的Android移动网络终端恶意代码的动静结合检测方法
本专利技术属于信息安全领域,具体涉及一种基于SVM的Android移动网络终端恶意代码的动静结合检测方法。
技术介绍
当前智能手机的应用已经涉及到人们生活的各个方面,而Android系统在智能手机中占有大量的份额,因此准确的检测Android恶意代码,对于保护Android用户隐私和财产安全具有重要的意义和应用价值。现有的Android恶意代码多标签检测的研究中,一般仅使用静态分析方法提取Android软件的特征,无法处理动态加载、运行时加解密等行为,恶意软件的检测精度和恶意家族的分类精度较低。
技术实现思路
本专利技术的目的在于提供一种基于SVM的Android移动网络终端恶意代码的动静结合检测方法。实现本专利技术目的的技术解决方案为:一种基于SVM的Android移动网络终端恶意代码的动静结合检测方法,包括以下步骤:步骤1、获取Android移动智能终端嵌入式恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建包含恶意软件和非恶意软件的训练样本数据集;步骤2、使用反编译工具处理Android软件样本,构建软件的静态特征向量;步骤3、创建Android虚拟设备,使用Android软件动态分析工具,构建软件的动态特征向量;步骤4、获取训练样本数据集中每个样本的静态特征与动态行为特征,构建每个软件样本的特征向量;步骤5、对所有软件样本的特征向量增加恶意软件标记字段,指明该样本是否为恶意软件,利用带恶意软件标记字段的特征向量训练支持向量机分类器;步骤6、对恶意软件样本的特征向量增加恶意软件类别标记字段,指明该样本所属的Android恶意软件家族,利用带恶意软件类别标记字段的特征向量训练随机森林分类器;步骤7、提取待测软件的静态特征向量和动态特征向量,构建待测软件的特征向量;步骤8、利用支持向量机分类器进行恶意软件检;若检测为恶意的软件,则进一步利用随机森林分类器判断其所属的恶意软件家族。本专利技术与现有技术相比,其显著优点为:1)使用动静结合的方法分析待测软件,能够更全面获取软件的行为特征,对动态加载、加密等行为进行检测,提高了恶意性判定的准确性;2)通过使用脚本构建adbshell命令,模拟Android恶意软件通常监听的系统事件,能够有效触发软件恶意负载,提高了动态分析的效率;3)使用支持向量机判定软件的恶意性,并将随机森林引入到Android恶意家族的分类中,提高了恶意性判定精度和恶意家族分类精度。附图说明图1为基于SVM的Android移动网络终端恶意代码的动静结合检测方法流程图。图2为构建的软件特征向量实例图。图3为待测软件恶意性检测和家族分类流程图。具体实施方式下面结合附图和具体实施例,进一步说明本专利技术方案。如图1所示,基于SVM的Android移动网络终端恶意代码的动静结合检测方法,包括以下步骤:步骤1、获取Android移动智能终端嵌入式恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建包含恶意软件和非恶意软件的训练样本数据集;步骤2、使用反编译工具处理Android软件样本,构建软件的静态特征向量Fstatic;使用APKParser处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表、声明的组件以及软件监控的系统事件,构建软件静态特征向量Fstatic,可将其表示为下列三元组:Fstatic=<Per,Cpt,Act>其中,Per为软件申请的所有权限的集合,Cpt为软件声明的所有组件集合,Act为软件监听的所有事件集合。步骤3、创建Android虚拟设备,使用Android软件动态分析工具,构建软件的动态特征向量Fdynamic;使用AndroidSDK工具创建Android虚拟设备,使用DroidBox作为Android软件动态分析工具,通过构建的MonkeyRunner脚本安装待检测的软件,模拟用户交互行为并仿真系统事件,收集监控到的软件动态行为,构建软件的动态特征;其中仿真系统事件使用adbshell命令实现,关注的系统事件为Android恶意软件通常监听的10种系统事件,包括:收到基于数据的短信、收到基于文本的短信、系统启动完成、有电话呼入、有电话呼出、手机电量低、时区发生改变、电话状态改变、信号强度改变和关机;构建的软件动态特征Fdynamic为:Fdynamic=<DCL,SS,RN,FRW,ON,CN,SN,DL-N,DL-F,DL-S,SSMS,PC,CU>其中,DCL为动态加载,SS为启动服务,RN为接收网络数据,FRW为文件读写,ON为开启网络连接,CN为关闭网络连接,SN为发送网络数据,DL-N为数据泄露(通过网络),DL-F为数据泄露(通过文件),DL-S为数据泄露(通过短信),SSMS为发送短信,PC为打电话,CU加密算法使用。步骤4、使用步骤2~3的方法,获取训练样本数据集中每个样本的静态特征Fstatic与动态行为特征Fdynamic,构建每个软件样本的特征向量F,将构建的特征向量存储到本地文件中;每个样本的特征向量F可以表示为:F=<F′static,F′dynamic>其中F′static和F′dynamic为对Fstatic和Fdynamic进一步处理的结果,具体的处理方法为,对Fstatic的权限列表Per,判断其是否存在常用的敏感权限,如果存在则将相应位标记为1,否则标记为0;对Fstatic的组件Cpt字段,统计服务组件和广播接收器组件的数量,以及各组件中包含有<intent-filter>字段的数量,构成长度为4的向量;对Fstatic的系统事件Act,判断其是否包含恶意软件通常监听的10种系统事件,如果包含则将相应位标记为1,否则标记为0;对Fdynamic中的各动态行为,使用自然语言处理中常用的词袋模型进行表示,从而构建动态行为的特征向量F′dynamic。步骤5、对所有软件样本的特征向量增加恶意软件标记字段,指明该样本是否为恶意软件,利用带恶意软件标记字段的特征向量训练支持向量机分类器;训练支持向量机分类器时,带恶意软件标记字段的训练样本特征向量集合可以表示为:T={(Fi,mi)}i=1,…l,l为训练样本的数量,其中Fi=<F′i,static,F′i,dynamic>为训练集中第i个样本的特征向量,由静态特征向量Fstatic和动态特征向量Fdynamic进一步处理得到;mi∈{-1,1}指明当前样本是否为恶意样本,值为-1时表示当前样本为非恶意样本,值为1时表示当前样本为恶意样本。根据支持向量机分类器分类间本文档来自技高网...

【技术保护点】
1.基于SVM的Android移动网络终端恶意代码的动静结合检测方法,其特征在于,包括以下步骤:/n步骤1、获取Android移动智能终端嵌入式恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建包含恶意软件和非恶意软件的训练样本数据集;/n步骤2、使用反编译工具处理Android软件样本,构建软件的静态特征向量;/n步骤3、创建Android虚拟设备,使用Android软件动态分析工具,构建软件的动态特征向量;/n步骤4、获取训练样本数据集中每个样本的静态特征与动态行为特征,构建每个软件样本的特征向量;/n步骤5、对所有软件样本的特征向量增加恶意软件标记字段,指明该样本是否为恶意软件,利用带恶意软件标记字段的特征向量训练支持向量机分类器;/n步骤6、对恶意软件样本的特征向量增加恶意软件类别标记字段,指明该样本所属的Android恶意软件家族,利用带恶意软件类别标记字段的特征向量训练随机森林分类器;/n步骤7、提取待测软件的静态特征向量和动态特征向量,构建待测软件的特征向量;/n步骤8、利用支持向量机分类器进行恶意软件检;若检测为恶意的软件,则进一步利用随机森林分类器判断其所属的恶意软件家族。/n...

【技术特征摘要】
1.基于SVM的Android移动网络终端恶意代码的动静结合检测方法,其特征在于,包括以下步骤:
步骤1、获取Android移动智能终端嵌入式恶意软件样本,并标记各样本所属的Android恶意软件家族,然后获取非恶意软件样本,从而构建包含恶意软件和非恶意软件的训练样本数据集;
步骤2、使用反编译工具处理Android软件样本,构建软件的静态特征向量;
步骤3、创建Android虚拟设备,使用Android软件动态分析工具,构建软件的动态特征向量;
步骤4、获取训练样本数据集中每个样本的静态特征与动态行为特征,构建每个软件样本的特征向量;
步骤5、对所有软件样本的特征向量增加恶意软件标记字段,指明该样本是否为恶意软件,利用带恶意软件标记字段的特征向量训练支持向量机分类器;
步骤6、对恶意软件样本的特征向量增加恶意软件类别标记字段,指明该样本所属的Android恶意软件家族,利用带恶意软件类别标记字段的特征向量训练随机森林分类器;
步骤7、提取待测软件的静态特征向量和动态特征向量,构建待测软件的特征向量;
步骤8、利用支持向量机分类器进行恶意软件检;若检测为恶意的软件,则进一步利用随机森林分类器判断其所属的恶意软件家族。


2.根据权利要求1所述的Android移动网络终端恶意代码的动静结合检测方法,其特征在于,步骤2中,使用APKParser处理Android软件样本,解析AndroidManifest.xml文件,根据xml中的标记字段,提取软件申请的权限列表、声明的组件以及软件监控的系统事件,构建软件静态特征向量Fstatic,将其表示为下列三元组:
Fstatic=<Per,Cpt,Act>
其中,Per为软件申请的所有权限的集合,Cpt为软件声明的所有组件集合,Act为软件监听的所有事件集合。


3.根据权利要求1所述的Android移动网络终端恶意代码的动静结合检测方法,其特征在于,步骤3中,使用AndroidSDK工具创建Android虚拟设备,使用DroidBox作为Android软件动态分析工具,通过构建的MonkeyRunner脚本安装待检测的软件,模拟用户交互行为并仿真系统事件,收集监控到的软件动态行为,构建软件的动态特征;
其中仿真系统事件使用adbshell命令实现,关注的系统事件为Android恶意软件通常监听的10种系统事件,包括:收到基于数据的短信、收到基于文本的短信、系统启动完成、有电话呼入、有电话呼出、手机电量低、时区发生改变、电话状态改变、信号强度改变和关机;
构建的软件动态特征Fdynamic为:
Fdynamic=<DCL,SS,RN,FRW,ON,CN,SN,DL-N,DL-F,DL-S,SSMS,PC,CU>
其中,DCL为动态加载,SS为启动服务,RN为接收网络数据,FRW为文件读写,ON为开启网络连接,CN为关闭网络连接,SN为发送网络数据,DL-N为数据泄露(通过网络),DL-F为数据泄露(通过文件),DL-S为数据泄露(通过短信),SSMS为发送短信,PC为打电话,CU加密算法使用。


4.根据权利要求1所述的Android移动网络终端恶意代码的动静结合检测方法,其特征在于,步骤4中,每个样本的特征向量F为:
F=〈F′static,F′dynamic>
其中F′static和F′dynamic为对Fstatic和Fdynamic进一步处理的结果,具体...

【专利技术属性】
技术研发人员:顾晶晶庄毅乔塨哲
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1