基于混合特征的Android恶意代码检测方法与流程

文档序号:13760715阅读:来源:国知局
基于混合特征的Android恶意代码检测方法与流程

技术特征:

1.一种静态检测恶意Android代码的方法,其特征是:所述方法包括混合特征提取过程、特征建模和检测两部分。

2.根据权利要求1所述的一种静态检测恶意Android代码方法,其特征是:所述混合特征提取过程包括语法特征提取和语义特征提取;

所述语法特征提取包括提取程序声明的权限集合和所接受的Intent类型;本发明分别对已知恶意代码和已知正常代码提取它们声明的所有权限,并按每种权限的声明次数进行排序,分别生成已知恶意代码和已知正常代码的声明权限排序表,提取在两张表中排名显著不同的权限作为语法特征;本发明不仅从程序的Manifest.xml配置文件中提取声明的权限列表以及所接受的Intent类型,而且分析代码中所有监听系统事件的有关语句,使用常量传播分析获取方法调用语句中声明的Intent类型,综合两部分结果得到代码的语法特征;

所述语义特征提取包括污点传播路径集合的提取和污点传播路径集合的类抽象;本发明将污点传播路径定义为从一个参数为外部污点输入的Source方法调用起始,到一个输出数据的Sink方法调用结束,路径的中间为数据流传播节点;每对Source和Sink之间如果存在一条路径,本发明使用一对Source和Sink表示起点和终点相同的污点传播路径集合,并以程序中出现的所有的Source和Sink对作为程序的语义特征,能够准确的区分正常代码和恶意代码;本发明为降低提取污点传播路径集合的计算量,把属于同一类的不同Source和Sink方法进一步合并;如果两个不同的Source和Sink对,其中两个Source 属于同一类而且两个Sink也属于同一类,那么把这两对合并为Source所在类到Sink所在类的污点传播路径集合,将基于方法的污点传播路径集合抽象为基于类的污点传播路径集合。

3.根据权利要求1所述的一种静态检测恶意Android代码方法,其特征是:所述特征建模与检测包括特征规范化、特征聚类和相似度计算、特征检测;

所述特征规范化把语法和语义特征值组织为多维度特征向量,对语法特征赋值true或false来表示对应特征是否存在,将语义特征赋值为每一对类下存在的Source和Sink对的总数量,其中每对Source和Sink表示程序中至少存在一条从Source方法到Sink方法的传播路径;

所述特征聚类采用K均值算法进行聚类,首先需要指定K个已知不同类别的恶意代码的特征向量为初始簇心,然后在已知的恶意代码集合中随机选择一个作为第K+1个簇心,聚类过程在簇心收敛或达到预设的迭代次数后停止,获得的K+1个簇心的特征向量作为不同恶意程序类别的代表特征向量;

所述特征聚类同时统计各个簇中所有恶意代码到簇心距离的数量分布,并以加权平均数方式计算每一个簇对应的阈值,精确到小数点后一位;

所述相似度计算针对Numeric和Nominal数据类型做不同处理,Nominal类型表示某特征是否存在,该类型的两个特征值相等则距离为0否则为1,对于Numeric类型,先将其标准化后再计算距离值;标准化过程计算该特征在所有已知恶意代码集合中的最大值Max、最小值Min以及差值Max-Min,标准化后的特征值X’与原始特征值X的关系如下:

对于Numeric类型的特征值X和Y,两个特征向量在该维度的距离值为标准化值X’和Y’之差;

所述特征检测首先对提取的混合特征值计算规范化特征向量,然后分别计算该特征向量与与各簇的代表特征向量之间的距离,最后取所有距离的最小值与对应簇的阈值做比较;特征向量的距离值直接反映代码的相似度,本发明将距离最小即最相似的簇作为结果的预估计,并比较最小距离与对应阈值来验证预估计,若该距离小于阈值则将目标代码归为相应簇,否则该代码为正常代码。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1