当前位置: 首页 > 专利查询>暨南大学专利>正文

一种可验证的安卓恶意软件检测系统及方法技术方案

技术编号:17780189 阅读:45 留言:0更新日期:2018-04-22 08:56
本发明专利技术公开了一种可验证的安卓恶意软件检测系统及方法,该系统包括安卓应用源数据初始化过滤模块、可疑代码报警器模块和恶意代码验证模块,安卓应用源数据初始化过滤模块首先对安卓应用源数据初始化过滤和特征生成;可疑代码报警器模块发现可疑的恶意代码通过警报器标记;恶意代码验证模块用验证器验证安卓恶意软件及其恶意代码。本发明专利技术实现自动地检测由病毒检测服务平台的门户网站提交的数据流是否含有恶意代码,以及由系统提供的API接口提交的文件里是否含有恶意代码,并实现识别技术给予验证,该发明专利技术可发现安卓恶意应用开发者提交的安卓恶意代码,并通过有效的验证技术提高恶意代码检测的准确率。

【技术实现步骤摘要】
一种可验证的安卓恶意软件检测系统及方法
本专利技术涉及安卓恶意代码检测
,具体涉及一种可验证的安卓恶意软件检测系统及方法。
技术介绍
Android恶意代码随着Android应用市场的日益壮大呈井喷式发展的势头。由于Android系统底层技术平台的开放性,允许第三方应用便捷开发,容易被不法分子通过对原生移动应用的文件名、UI界面等高度模仿后,植入恶意代码,篡改安卓应用程序App,并再次重新打包发布到移动应用市场。一旦用户安装了这些应用App,很有可能造成隐私泄露、恶意扣费、远程控制、购物欺诈等危害。恶意软件的病毒检测服务平台是一个用户随时随地提交Android程序数据流,并且得到扫描检测结果的平台。随着越来越多的用户使用病毒检测服务平台提交程序数据进行全方位的扫描检测,在提交的海量样本中,既有非恶意软件开发者的正常提交,也有专业的恶意代码开发者为了测试恶意软件规避能力的提交,极有可能利用病毒检测服务平台作为恶意软件传播之前的测试通道。恶意软件开发者提交的恶意软件,并非法修改平台返回的报告,或者故意屏蔽恶意代码的检测结果。若能在恶意软件得到传播之前,识别可疑的恶意应用提交者并发现新的恶意代码开发模型,作为新型恶意代码的变种被报警,将能大大减少恶意代码传播的危害。
技术实现思路
本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种可验证的安卓恶意软件检测系统及方法。根据公开的实施例,本专利技术的第一方面公开了一种可验证的安卓恶意软件检测系统,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP功能函数分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果。进一步地,所述的恶意代码验证模块包括安装包分析器、静态分析器、动态分析器、验证器,其中,所述的安装包分析器、所述的静态分析器、所述的动态分析器分别同步提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成验证文件,将所有验证文件和中间分析结果收集并解析后提交到验证器中,以根据多个验证文件进行对可疑提交者的决策。根据公开的实施例,本专利技术的第二专利技术公开了一种可验证的安卓恶意软件检测方法,所述的检测方法包括下列步骤:S1、源数据初始化过滤器模块对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息,其中结构信息包括样本SampleID、时间戳、国家,生成用户UserID,来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间戳给予排序;S2、可疑代码警报模块以源数据初始化过滤模块输入的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常,发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量,训练分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征;S3、在可疑代码警报模块将提交数据流标记为可疑后,恶意代码验证模块分析来自可疑用户UserID的所有样本文件,部署安装包分析器、静态分析器、动态分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析;S4、解析多个验证属性,对可疑代码验证属性进行计算,生成各种验证文件,收集验证文件和中间分析结果,最终提交到验证器中,以根据多个验证文件进行决策,依据样本相似性对可疑代码分组,并形成最终验证的结果。进一步地,所述的步骤S4包括:S401、设安装包分析结果集合P={P1,P2,P3,P4},且V(Pm)∈{0,1},为所述的安装包分析器及其验证属性设定规则:安卓应用安装包分析器包括4个验收属性,验证属性P1:安卓应用安装包APK中的所有文件的时间戳与提交的时间戳之间的方差,当安卓应用不被病毒检测平台测试通过,开发人员需要时间去修改和分发新的应用,即属性P1值V(P1)=0,如果所有文件的时间戳与提交的时间戳小于一阈值,那么属性P1的值V(P1)=1;验证属性P2:提交的样本应用时间戳之间的方差,当用户ID提交的样本应用具有许多相同的时间戳时,即恶意应用开发者很有可能同时生产不同版本的安卓应用,则验证属性V(P2)=1,否则属性V(P2)=0;验证属性P3:安装包APK中的所有文件的时间戳方差,当安卓安装包APK中的所有文件时间戳完全相同时,则验证属性V(P3)=1,否则属性V(P3)=0;验证属性P4:安卓应用使用的签名证书分析比较,如果提交的数据流中一组安卓应用使用相同的签名证书,则验证属性V(P4)=1,如果不同的签名证书,则属性V(P4)=0;四个验证属性中,只要存在一个验证属性值为1,那么该安装包分析器就判断提交的数据流存在可疑的恶意代码;S402、设静态分析结果集合Q={Q1,Q2},且V(Qn)∈{0,1},为所述的静态分析器及其验证属性设定规则:静态分析器应用两个验证办法并生成验证属性,首先用视图图形同构方法来计算安卓应用UI结构的相似性,生成验证属性Q1,如果提交的应用样本数据流之间的图形相似度系数大于或等于设定的阈值ξ,即可判断提交数据流的一组应用具有类似的UI结构,则验证属性V(Q1)=1,否则属性V(Q1)=0,然后使用静态分析工具分析控制流图生成验证属性Q2,如果提交流中的一组安卓应用拥有类似的控制流,相似度系数大于或等于阈值ξ,则验证属性V(Q2)=1,反之,若安卓应用的程序控制流比较结果低于阈值ξ,则验证属性V(Q2)=0;S403、设动态分析结果集合R={R0},V(Ro)∈{0,1},为所述的动态分析器及其验证属性设定规则:基于动态分析工具分析各种可疑的安卓API,借助系统调用和代码加载行为等动态特征,以此计算安卓应用样本之间的动态行为相似性,生成验证属性Ro,如果提交的数据流的一对安卓应用样本具有动态行为相似性,相似性大于或等于阈值ξ,则验证属性V(Ro)=1,应用样本之间的动态行为相似度低于阈值ξ,则验证属性V(Ro)=0,若动态分析器的两个验证属性中,只要存在一个验证属性值为1,那么该动态分析器就判断提交的数据流存在可疑的恶意代码;S404、在提交的数据流生成所有验证属性后,基于它们做出验证结果,验证结果M由以下公式计算:M::=P×Q×R={(Pm,Qn,Ro)|Pm∈P∧Qn∈Q∧Ro∈R}每个提交的数据流都经过三种不同分析器给予本文档来自技高网...
一种可验证的安卓恶意软件检测系统及方法

【技术保护点】
一种可验证的安卓恶意软件检测系统,其特征在于,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP函数功能分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果。

【技术特征摘要】
1.一种可验证的安卓恶意软件检测系统,其特征在于,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP函数功能分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果。2.根据权利要求1所述的一种可验证的安卓恶意软件检测系统,其特征在于,所述的恶意代码验证模块包括安装包分析器、静态分析器、动态分析器、验证器,其中,所述的安装包分析器、所述的静态分析器、所述的动态分析器分别同步提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成验证文件,将所有验证文件和中间分析结果收集并解析后提交到验证器中,以根据多个验证文件进行对可疑提交者的决策。3.一种可验证的安卓恶意软件检测方法,其特征在于,所述的检测方法包括下列步骤:S1、源数据初始化过滤器模块对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息,其中结构信息包括样本SampleID、时间戳、国家,生成用户UserID,来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间戳给予排序;S2、可疑代码警报模块以源数据初始化过滤模块输入的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常,发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量,训练分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征;S3、在可疑代码警报模块将提交数据流标记为可疑后,恶意代码验证模块分析来自可疑用户UserID的所有样本文件,部署安装包分析器、静态分析器、动态分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析;S4、解析多个验证属性,对可疑代码验证属性进行计算,生成各种验证文件,收集验证文件和中间分析结果,最终提交到验证器中,以根据多个验证文件进行决策,依据样本相似性对可疑代码分组,并形成最终验证的结果。4.根据权利要求3所述的一种可验证的安卓恶意软件检测方法,其特征在于,所述的步骤S4包括:S401、设安装包分析结果集合P={P1,P2,P3,P4},且V(Pm)∈{0,1},为所述的安装包分析器及其验证属性设定规则:安卓应用安装包分析器包括4个验收属性,验证属性P1:安卓应用安装包APK中的所有文件的时间戳与提交的时间戳之间的方差,当安卓应用不被病毒检测平台测试通过,开发人员需要时间去修改和分发新的应用,即属性P1值V(P1)=0,如果所有文件的时间戳与提交的时间戳小于一阈值,那么属性P1的值V(P1)=1;验证属性P2:提交的样本应用时间戳之间的方差,当用户ID提交的样本应用具有许多相同的时间戳时,即恶意应用开发者很有可能同时生产不...

【专利技术属性】
技术研发人员:官全龙罗伟其崔林张凌燕张焕明吴祖剑
申请(专利权)人:暨南大学
类型:发明
国别省市:广东,44

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

1