基于权限的Android恶意软件混合检测方法_2

文档序号:8543960阅读:来源:国知局
行为序列特征的完备性。 Amlroid应用中包含各种组件,通过组件可W触发一系列接口调用。为了尽可能多的收集到 可疑应用的行为特征,在模拟器中安装运行应用的时候,使用monkeyrunner将应用的所有 组件运行一遍。该测试工具可W向应用发送一系列事件流,获得应用在接收到各种事件的 时候的行为特征。
[0034] 应用程序运行时的行为信息在An化oid系统的各个层面都有一定的体现。考虑到 行为信息的易读性和可操作性,本发明主要通过获取化amework和native层的方法调用信 息,借助Amlroid系统本身的Log机制和化oi地ox可W获得应用程序在该两层的行为信 息,该些信息能比较准确的反映应用的行为特征。因为化oi地OX可W捕获native层的方 法调用,所W某些绕过化amework层的恶意行为也会被捕获到,有利于提高行为信息的完 备性。
[00巧]在获得了应用程序的运行时接口信息之后,使用shell命令可W直观的展示获取 到的行为信息或者将行为信息保存到一个文本文件中W供进一步分析。接下来,需要对获 取的接口信息进行过滤,保留与敏感权限对应的接口信息。为了确定权限与函数接口的对 应关系,匹配接口和权限信息,依据该种对应关系可W对应用程序运行过程中与安全有关 的接口调用信息进行统计。
[003引 S、应用向量化
[0037] 针对获得的接口调用信息构建一个应用程序的方法集合e:= {f。f2,fs......fi ,...f。}。其中,fi(1《i《n)表示该应用调用的第i个接口,n表示在收集到的日志中所有Dangerous和Signature权限对应的接口的总个数,每个应用程序可W用一个e来表示,引 入C表示由e组成的集合,表示可疑应用程序的集合。
[003引定义Wu是在应用eJ中的方法出现的次数。如果没有出现,则定义Wu=0。该样,ej就可W表示为向量形式;ej={wi,j, "2,j,W3,j,......,w。,j}。
[0039] 为了表示该些信息,引入向量空间模型(VectorSpaceModel(VSM)),该样可朗尋 该些应用做代数表示,向量中的每一个分量都是非负的。VSM中的坐标点(i,j)表示的是应 用Ej的方法fi的信息。
[0040] 为了得到每个应用的特征向量,需要对应用中的每个方法计算权重。本文采用 TF-IDF算法,在该算法中,对于应用eJ中的方法f1,权重wei曲t(i,j)的计算方法为;
[0041] wei曲t(i,j)= tfi,j? idfi公式巧-1)
[0042] 其中,tfu表示应用ej中的方法出现的频率,i壯i表示方法的逆文档频率。 特征向量算法描述如下:
[004引输入;待检测应用的向量表不ej和一组应用的向量表不的集合C;
[0044] 输出;待检测应用的特征向量。
[0045]开始;
[004引变量声明:
[0047]sum ; e冲各位数字之和;
[004引 numberOfApps;集合C包含的元素的总数;
[0049]count;计算C中包含某个方法的应用的总数,初值为0 ;
【主权项】
1. 一种基于权限的Android恶意软件混合检测方法,其特征在于,该方法包含以下步 骤: 步骤一、对Android应用程序进行反编译,得到应用程序申请权限; 步骤二、结合系统设定权限对应用程序申请权限进行权限检测;根据应用程序申请权 限情况的不同,所有待检测应用被分为善意应用集、恶意应用集和可疑应用集; 步骤三、动态获取针对可疑应用集中的应用程序行为进行动态检测,收集与敏感应用 有关的接口调用,给出向量空间表示,并进行应用程序向量化; 步骤四、经过安全性检测,获得符合安全性检测标准的"善意应用程序"的检测结果。
2. 如权利要求1所述的基于权限的Android恶意软件混合检测方法,其特征在于,所述 步骤二中权限检测的规则表示为: 若AppPer Π perSet13= AppPer,应用被判定为善意应用; 若AppPer Π perSet14# Φ,应用被判定为恶意应用; 若AppPer Π PerSeti^ Φ, 1彡i彡12,应用申请了第i类的敏感权限,可能存在属于 该类的恶意威胁。 其中,Apper = (Peri, per2,......, pern}表示应用申请的权限集合,Peri (1彡i彡η)代 表应用申请的权限;Andper = (PerSet1, perSet2,......,perSet14}表示 Android 所有权限 的集合,PerSeti (I < i < 12)表示各个类别中敏感权限信息的集合,PerSet13表示Normal 组权限信息的集合,PerSet14表示SignatureOrSystem组权限信息的集合。
3. 如权利要求1所述的基于权限的Android恶意软件混合检测方法,其特征在于,所述 步骤三具体包括以下处理: 在模拟器中安装运行应用程序,使用monkeyrunner将应用程序的所有组件运行一遍, 通过该测试工具向应用程序发送一系列事件流,获得应用程序在接收到各种事件的时候的 行为特征。 在获得了应用程序的运行时接口信息之后,使用shell命令展示获取到的行为信息或 者将行为信息保存到一个文本文件中以供进一步分析;接下来,对获取的接口信息进行过 滤,保留与敏感权限对应的接口信息;匹配接口和权限信息,依据这种对应关系对应用程序 运行过程中与安全有关的接口调用信息进行统计。
4. 如权利要求1所述的基于权限的Android恶意软件混合检测方法,其特征在于,所述 步骤三具体包括以下处理: 输入,待检测应用程序的向量表示ε』和一组应用程序的向量表示的集合C ; 开始: 变量声明: sum : ε冲各位数字之和; numberOfApps :集合C包含的元素的总数; count :计算C中包含某个方法的应用的总数,初值为0 ; sum = w1;J+w2;J+-+wn;J; numOfApps 一 I CI ; 对于ε」中的每一个方法;^,计算weight (i,j)如下:
对于C中的每一个向量表示ε j,计算方法fi的逆文档频率idf i,具体计算过程为:计 算集合C中向量的数量numberOfApps,同时统计A在集合C中每个向量中是否出现的次数 得到count,由向量总数numberOfApps除以包含的向量总数count,得到商再取对数; weight (i, j) = tfi;J · Idfi 最后得到的特征向量 输出待检测应用程序的特征向量?。
5.如权利要求1所述的基于权限的Android恶意软件混合检测方法,其特征在于,所 述步骤四中的安全检测通过算应用程序行为的特征向量跟善意、恶意两类应用的距离来实 现,具体包括以下算法: 输入待检测应用的向量S和对照组应用的特征向量集合Set = {δ, δ2,……,δω}; 预处理:将对照组的特征向量集合按照善意应用程序和恶意应用程序划分为:Setbm ={ 5 bi. 5b2.......,δ bj}和Setnial= { δ山δ尬,......,δ ;其中b表示善意应用程序, m表示恶意应用程序,j表示善意应用程序的数量,k表示恶意应用程序的数量; 变量声明:distType表示距离检测类型:1代表欧几里得距离,2代表余弦相似度; 情况一、计算欧几里得距离,其中:n表示该特征向量中元素的个数,i表示该特征向量 在集合中的位置,j表示善意应用程序的数量,k表示恶意应用程序的数量,DisT 〇Ben[i]表 示检测特征向量与集合中第i个善意特征向量的距离,DisToMal [i]表示检测特征向量与 集合中第i个恶意特征向量的距离: 对于 δ = (X1, X2,......,Xn)和 δ bi= (y " y2,......,yn) e Setben,计算:
MinLen[l] = minDist(DisToMal[],k);输出待检测应用程序分别到善意和恶意对照 组的三个距离的计算结果。
【专利摘要】本发明公开了一种基于权限的Android恶意软件混合检测方法,步骤一、对Android应用程序进行反编译,得到应用程序申请权限;步骤二、结合系统设定权限对应用程序申请权限进行权限检测;根据应用程序申请权限情况的不同,所有待检测应用被分为善意应用集、恶意应用集和可疑应用集;步骤三、动态获取针对可疑应用集中的应用程序行为进行动态检测,收集与敏感应用有关的接口调用,给出向量空间表示,并进行应用程序向量化;步骤四、经过安全性检测,获得符合安全性检测标准的“善意应用程序”的检测结果。与现有技术相比,本发明综合了欧氏距离和余弦相似性两种影响因素,得到的检测结果更加全面,准确性高。
【IPC分类】G06F21-56
【公开号】CN104866763
【申请号】CN201510282507
【发明人】李晓红, 赵仁, 焦浩峰, 胡静, 许光全
【申请人】天津大学
【公开日】2015年8月26日
【申请日】2015年5月28日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1