[发明专利]一种可验证的安卓恶意软件检测系统及方法有效
申请号: | 201711263967.9 | 申请日: | 2017-12-05 |
公开(公告)号: | CN107944270B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 官全龙;罗伟其;崔林;张凌燕;张焕明;吴祖剑 | 申请(专利权)人: | 暨南大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 44245 广州市华学知识产权代理有限公司 | 代理人: | 陈燕娴 |
地址: | 510632 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 验证 恶意 软件 检测 系统 方法 | ||
1.一种可验证的安卓恶意软件检测系统,其特征在于,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;
其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;
所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;
所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP函数功能分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果;
所述的恶意代码验证模块包括安装包分析器、静态分析器、动态分析器、验证器,其中,所述的安装包分析器、所述的静态分析器、所述的动态分析器分别同步提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成验证文件,将所有验证文件和中间分析结果收集并解析后提交到验证器中,以根据多个验证文件进行对可疑提交者的决策;
所述系统进行安卓恶意软件检测方法包括:
S1、源数据初始化过滤器模块对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息,其中结构信息包括样本SampleID、时间戳、国家,生成用户UserID,来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间戳给予排序;
S2、可疑代码警报模块以源数据初始化过滤器模块输出的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常,发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量,训练分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征;
S3、在可疑代码警报模块将提交数据流标记为可疑后,恶意代码验证模块分析来自可疑用户UserID的所有样本文件,部署安装包分析器、静态分析器、动态分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析;
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}
每个提交的数据流都经过三种不同分析器给予验证,在验证属性之间的计算关系使用或,即:V(P)=V(P1)∨V(P2)∨V(P3)∨V(P4),V(Q)=V(Q1)∨V(Q2),V(R)=V(Ro),因此只要分析器内的任何一个规则被验证,提交的样本数据流将被暂定为可疑的恶意代码,而安装包分析器,静态分析器,动态分析器三种不同分析器之间是与关系,也就是说三种分析器同时确认样本应用存在恶意代码后,用户UserID被确认为安卓恶意应用开发者,其提交的数据流完整确认存在恶意代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于暨南大学,未经暨南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711263967.9/1.html,转载请声明来源钻瓜专利网。