System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于移动终端安全,具体涉及一种基于密度聚类权重分配的app风险估测方法及系统。
技术介绍
1、随着android系统用户规模日益庞大,app的数量也不断增长,app成为了大多数人日常生活中必不可少的重要工具。数量众多的app在为用户提供丰富功能的同时,也需要访问用户设备上的各种敏感数据和资源,给用户隐私和设备安全带来了威胁。用户获取app最大的渠道就是应用市场,现有的android应用市场包括google play等,通常有大量开发者在其平台上传应用,导致了app的质量参差不齐,安全性难以保障。
2、现有的风险评估方法中用于评估的属性不够全面,评估方法过于简单,没有考虑app实际的功能需求,属性权重分配存在一定的主观性,不够准确,因此难以合理的评估app的风险。
技术实现思路
1、为了解决上述技术问题,本专利技术提出了一种基于密度聚类权重分配的app风险估测方法及系统,以合理评估app存在的风险,更好的维护移动终端的安全。
2、本专利技术方法的技术方案为一种基于密度聚类权重分配的app风险估测方法,具体包括以下步骤:
3、步骤1:反编译应用apk包得到源码及androidmanifest.xml配置文件,获取app的评估属性包括权限申请向量、api调用序列以及接收的intent对象;
4、步骤2:采用聚类分析方法计算对应app类别的中心向量,计算待评估app的权限申请向量与对应app类别的中心向量之间的差值做为权限申请向量属
5、步骤3:采用图相似度计算方法来计算api调用序列属性风险值;
6、步骤4:根据app接收intent对象后预计执行的操作将intent对象的风险等级分类并获取对应的风险值,计算intent属性风险值;
7、步骤5:计算数据集中每个app的归一化后权限申请向量属性风险值、归一化后api调用序列属性风险值、归一化后intent属性风险值,以构建数据集中每个app的风险分布向量,根据数据集中所有app的风险分布向量构成风险分布矩阵,计算待测app综合风险值;
8、作为优选,步骤2所述采用聚类分析方法计算对应app类别的中心向量,具体如下:
9、使用向量pl=[p1,p2,p3,…,pn]来描述app对n个敏感权限的申请情况,该向量称为权限申请向量,若app申请对应的权限,向量中对应维度的值为1,否则为0;
10、将市面上常见的app分为多个类别,提取不同类别app的权限申请向量进行聚类分析得到对应类别的中心向量;
11、所述中心向量的计算方法,具体如下:
12、计算同一类型所有app的权限申请向量pl与相同维度且每一维度的值都为1的标记向量r=[1,1,1,…,1]的余弦距离值distance(pl,r),r的维度为n;
13、对所有的distance(pl,r)值做统计分析,假设该值服从均值为μ,标准差为σ的正态分布,将distance(pl,r)值落在[μ-σ,μ+σ]区间中的应用称为中心应用;
14、对应类别应用通过前述余弦距离值统计分析、并结合在[μ-σ,μ+σ]区间进行中心应用判定得到k个中心应用,k个中心应用的权限申请向量集合为{p1,p2,p3,…,pk},则对应类别的中心向量为c=[c1,c2,c3,…,cn];
15、所述ci的计算公式为:
16、
17、其中,k为对应类别中心应用的数量,pji代表第j个中心应用的权限申请向量第i个维度值,ci为中心向量第i个维度值,j∈[1,k],i∈[1,n]。
18、步骤2所述计算待评估app的权限申请向量与其对应app类别的中心向量之间的差值做为权限申请向量属性风险值,计算方法如下:
19、
20、
21、其中,pi代表待评估app的权限申请向量的第i个维度值,ci代表待评估app所属类别的中心向量的第i个维度值,score1即为待评估app的权限申请向量与其所属类别的中心向量n个维度差值的和,进一步作为权限申请向量属性风险值;
22、作为优选,步骤3所述采用图相似度计算方法来计算api调用序列属性风险值,具体如下:
23、动态获取恶意app数据集中每一个app运行时产生的api调用序列并转化为api调用图;
24、构图方法为:根据android官方api描述将api调用序列中每一个函数替换成对应的类。替换后,原有的api调用序列转化为对应类调用序列,将对应类调用序列进行去重操作,相邻两个类若相同则删去一个,得到相邻不重复的类调用序列;
25、通过相邻不重复的类调用序列进行api对应类的调用图的构架,具体如下:
26、类调用序列中api对应类1首次调用api对应类2则在图中加上该调用边,再次出现则将该调用边的权重加1,权重代表了该api对应类调用在运行过程中出现的次数;
27、将待评估app的api调用序列转化后的得到的api调用序列转化后的得到的api对应类调用图与恶意app的api对应类调用图之间的相似度的最大值作为api调用序列属性风险值score2;
28、所述相似度的计算,具体如下:
29、将两个api对应类调用图转化为包含节点特征的向量,再使用皮尔逊系数来计算两个特征向量之间的相似度;
30、作为优选,步骤4所述根据app接收intent对象后预计执行的操作将intent对象的风险等级分类并获取对应的风险值,具体如下:
31、根据app接收intent对象后预计执行的操作将intent对象的风险等级分为m类,风险级别为1,2,3,…,m,对应的风险值为risk1,risk2,risk3,…,riskm;
32、根据app的androidmanifest.xml文件中定义的<intent-filter>标签中action字段统计app的intent接收情况,假设对应app接收了num1个风险级别为1的intent对象,num2个风险级别为2的intent对象,num3个风险级别为3的intent对象,…,numm个风险级别为m的intent对象;
33、步骤4所述计算intent属性风险值,具体如下:
34、
35、其中,score3表示intent属性风险值;
36、作为优选,步骤5所述计算归一化后权限申请向量属性风险值、归一化后api调用序列属性风险值、归一化后intent属性风险值,具体如下:
37、对于有x个app的数据集,计算每个app的三种属性风险值:score1、score2、score3,分别作为score1y、score2y、score3y,y∈{1,2,…,x},并进行标准化,得到的值称为rscore1y、rscore2y和rscore3y,标准本文档来自技高网...
【技术保护点】
1.一种基于密度聚类权重分配的APP风险估测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于密度聚类权重分配的APP风险估测方法,其特征在于:
3.根据权利要求2所述的基于密度聚类权重分配的APP风险估测方法,其特征在于:
4.根据权利要求3所述的基于密度聚类权重分配的APP风险估测方法,其特征在于,步骤3所述采用图相似度计算方法来计算API调用序列属性风险值,具体如下:
5.根据权利要求4所述的基于密度聚类权重分配的APP风险估测方法,其特征在于,
6.根据权利要求5所述的基于密度聚类权重分配的APP风险估测方法,其特征在于,
7.根据权利要求6所述的基于密度聚类权重分配的APP风险估测方法,其特征在于:
8.根据权利要求7所述的基于密度聚类权重分配的APP风险估测方法,其特征在于:
9.一种基于密度聚类权重分配的APP风险评估系统,其特征在于,包括:
【技术特征摘要】
1.一种基于密度聚类权重分配的app风险估测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于密度聚类权重分配的app风险估测方法,其特征在于:
3.根据权利要求2所述的基于密度聚类权重分配的app风险估测方法,其特征在于:
4.根据权利要求3所述的基于密度聚类权重分配的app风险估测方法,其特征在于,步骤3所述采用图相似度计算方法来计算api调用序列属性风险值,具体如下:
...
【专利技术属性】
技术研发人员:高宏昌,李俊娥,俞凯龙,刘林彬,黄桂容,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。