基于权限与敏感API的恶意程序检测方法

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:wanshanshan1989
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:由于Android系统开源的特性,基于Android系统的手机很容易成为攻击对象,给用户造成不必要的损失。为了解决这一问题,该文提出一种基于权限特征和敏感API的朴素贝叶斯分类检测方法。该方法克服了朴素贝叶斯分类算法中特征属性之间是假设相互独立的前提条件。通过提取Android应用程序配置文件的权限标签以及源代码中的敏感API组成混合特征集,然后应用信息增益和卡方检验组合算法,减少冗余数据,得到适合朴素贝叶斯分类算法的样本集。最后使用朴素贝叶斯分类算法进行分类。实验结果证明,该方法能较好地提高恶意程序检测率,降低误报率。
  关键词:权限特征;敏感API;恶意程序;朴素贝叶斯分类算法
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)33-0067-03
  Abstract: As the Android system open source features, the phone Based on Android system is easy to become an object of attack and causes unnecessary losses to the user. In order to solve this problem, a Naive Bayesian classification detection method Based on permission feature and sensitive API is presented by this paper. This method overcomes the precondition that the characteristic attributes are assumed to be independent of each other in the Naive Bayesian classification algorithm. By extracting the permission tag of the Android application configuration file and the sensitive API in the source code, the mixed feature set is composed, and then the information gain and the chi-square test combination algorithm are used to reduce the redundant data and get the sample set suitable for the naive Bayesian classification algorithm. Finally, the Naive Bayesian classification algorithm is used to classify. The experimental results show that this method can improve the detection rate of malware and reduce the false positive rate.
  Key words: permission feature; sensitive API; malware; Naive Bayesian classification algorithm
  1 背景
  Android是一款拥有庞大市场份额的智能移动操作系统,其安全性受到了研究者的广泛关注[1]。Android系统开源的特点,使得Android手机很容易成为攻击对象,给手机用户造成不必要的损失。目前,针对Android系统恶意应用程序检测的研究有很多。文献[2]中提出了基于权限分析的Android应用程序检测系统,使没有专业知识的普通用户都能够了解申请权限的作用。但从Android系统安全架构层上考虑,权限机制和涉及敏感数据和高危行为的应用接口同样重要。文献[3]提出一种静态检测方法,提取权限特征作为特征属性集,在采用朴素贝叶斯分类模型之前,使用卡方检验算法对数据样本集进行预处理。但其特征集较为单一,也没有考虑到特征属性间在现实中可能存在的较大关联性。文献[4]提出了一种基于敏感权限及API的静态综合检测法,但是该方法只对已知恶意应用有较好的检测效果。
  针对以上情景,本文提出的一種基于朴素贝叶斯分类算法的静态检测方法。通过提取由Android应用中配置文件的权限标签以及源代码里的敏感API组成混合特征集[5]。然后应用信息增益和卡方检验的组合算法,去除冗余数据,得到适合算法的样本集。最后使用此静态检测模型进行检测。实验结果证明,该方法较好地提高了恶意程序检测率并降低误报率。
  2 基于NBC模型的恶意程序检测方法
  2.1 特征集提取
  1) 权限特征提取
  Android系统提供的权限机制对于每个访问系统资源的应用程序都会进行相应的权限检测,程序是否能访问,一定程度上保证了用户的信息安全。以防用户信息被越权访问,造成信息泄露[6]。考虑到利用单个权限标签难以达到威胁目的,而一个恶意程序的恶意行为却需要多个权限的配合[7]。通过比较良性程序与恶意程序配置文件中权限标签发现,恶意程序的权限标签比良性程序的多很多,其申请的权限大多是获取用户信息的权限,或是可能威胁到用户信息安全的权限行为[8]。因此,对权限特征的提取是有必要的[9]。
  本文通过对应用程序分析,获取程序配置文件AndroidManifest.xml,提取出程序申请的权限标签。对每个应用程序的权限申请标签用一个153维的向量表示(Google为Android系统设立了153个权限),每个维度对应一个权限。利用工具逆向分析程序的配置文件,若该文件含有此权限标签则用1表示,否则用0表示。   2) 敏感API特征提取
  Android应用程序通过函数接口调用可以访问和获取手机中的一些敏感数据,或是做出一些敏感行为,本文称这些敏感数据及行为的API为敏感API。通过比较良性程序与恶意程序在敏感API的调用次数,可以发现恶意程序调用次数较之更多,因此可以以此作为识别应用程序性质的一个依据。故设定一些接口为敏感API。
  这里定义了15个敏感API,用一个15维向量表示,当应用源程序使用了该敏感API时,把相应的特征属性位置用1表示,否则用0表示。利用KMP字符串匹配算法将15个敏感API字符串与程序源代码进行匹配,判斷应用程序是否使用了敏感API,并记录,高效提取敏感API特征向量。
  2.2 数据预处理
  1) 信息增益
  利用信息增益算法(Information Gain)[10],提取出与类别属性相关度较大的特征属性。当特征集中某一个特征属性对应分类的信息增益值越大,那么该属性对分类的影响越大。反之,信息增益越小,对正确分类影响越小,但它的存在可能会降低分类器的性能,因此需要去除这些冗余数据[11]。计算特征属性T与分类的信息增益公式,其中[Si]是数据样本中每个相应类别,n是样本中的类别个数,那么有:
  [Gain(T)=I(S1,S2,...,Sn)-E(T)] (1)
  计算样本类别的信息熵,[P(Ci)]是该类别在样本中占有的比重:
  [I(S1,S2,...,Sn)=-i=1nP(Ci)log2P(Ci)] (2)
  计算特征属性T的熵:
  [E(T)=j=1kSj1 Sj2 ... SjnSI(Sj1 Sj2 ... Sjn)] (3)
  2) 卡方检验
  卡方检验(Chi-square test)是一种用途较广的假设检验方法。通过假设两个变量相关,计算两者之间的卡方值,查找卡方界值表得出其对应概率。如果概率较大,那么说明实际值与理论值差距很小,两个变量之间的相关性较大。否则,认为两者之间相互独立。本文利用四格卡方检验公式检测出两两特征属性间是否相互独立[12],去除掉特征属性之间关联性较大的两个特征属性中的一个,优化特征数据源。那么有:
  [χ2=(ad-bc)2·N(a b)(c d)(a c)(b d)] (4)
  其中a,b,c,d代表了两个构成所形成的四种比较情况,N表示总的频数,即a,b,c,d频数之和。通过把经过信息增益处理过的特征样本集作为输入数据,计算两两特征属性间的卡方值,分析两个特征属性相关与否。在根据卡方值查找界值表后得出两特征属性之间相关概率,当概率比0.95小时,那么这两个特征属性之间被认为是不相关的,否则这两个特征属性是相关的,则剔除其中的一个特征属性。
  2.3 基于朴素贝叶斯算法的恶意程序检测方法
  朴素贝叶斯算法是贝叶斯分类模型中最简单的[13],其主要思想基础是,对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率哪个最大,就认为此待分类项属于哪个类别。有类别集合[C={C1,C2,...,Cm}],一个[Ci]一个类别。通过对不确定分类的训练样本[X={a1,a2,...,an}](待分类项,每个a为[X]的一个特征属性)计算各个条件概率。已知在[X]条件下,每个类的最大概率值,作为最后被判别类别,依据贝叶斯定理[14-15],可以得出:
  [P(Ci|X)=P(X|Ci)P(Ci)P(X)] (5)
  由于[P(X)]是训练样本[X]的概率,其是先验概率,在训练样本[X]已知的情况下,对每个分类[Ci]的概率比较没有多大关系,可以考虑去除掉,那么有:
  [P(Ci|X)≈P(X|Ci)P(Ci)] (6)
  因为训练样本中各个特征属性是条件独立的,故有:
  [P(X|Ci)P(Ci)≈P(Ci)Πj=1nP(aj|Ci)] (7)
  3 实验分析
  3.1 数据收集
  本文共收集了600个样本数据,主要包括恶意程序和良性程序两类。其中500个良性程序来自各类Android应用程序市场,100个恶意程序采集自VirusShare.com[16]。
  3.2 评估策略
  为了测量检测方法的有效性,使用以下衡量策略:
  1) 检测率TPR即是被正确分类的恶意程序与恶意程序总数的比重。其中TP是恶意程序中被正确检测为恶意程序的数量,FN是恶意程序中被错误检测为良性程序的数量。
  [TPR=TPTP FN] (8)
  2) 误检率FPR即是良性程序被错误的检测为恶意程序的数量与样本中良性程序总数的比重。其中,FP是良性程序中被错误检测为恶意程序的数量,TN是良性程序中被正确检测为良性程序的数量。
  [FPR=FPFP TN] (9)
  3) 分类准确率Acc即是所有被正确分类样本数与全部样本总数的比值。
  [Acc=TP TNTP TN FP FN] (10)
  3.3 有效性验证
  对经过处理的数据样本,取出一部分用于分类检测模型建立的训练,剩余样本数据用于检测模型的有效性[17]。通过比较不同特征、不同预处理方式地数据源,分析比较检测结果。
  1) 不同特征集检测
  本文主要使用了权限特征集以及敏感API特征集,通过实验比较分别使用单一特征集与组合特征集对分类器性能影响。结果如下表所示:
  表2中可以看到,与单一特征集相比,权限与敏感API的混合特征集检测性能较好。恶意程序检测率较高,分类器准确率也比单一特征集的分类器准确率高。   2) 不同預处理方式检测
  通过上面不同特征集检测,组合特征对分类器性能提高较好,这里继续使用实验后的组合特征值进行数据预处理,剔除冗余数据。比较单一处理方式与组合处理方式下分类器效果。
  从实验数据中看,信息增益与卡方检验方法相结合的数据预处理方式较好的提高了朴素贝叶斯分类器检测性能。相比于单一处理方式,分类器性能提高相对较多。
  4 结束语
  本文所设计的基于权限和敏感API的恶意程序检测方法在实验中得到的较好的结果,组合特征集以及组合预处理算法,比之单一的特征集和单一预处理算法,相对提高了分类器性能。为了进一步提升分类器性能,也可以考虑在朴素贝叶斯分类算法上进行改进。
  参考文献:
  [1] ZHANG Y Q, WANG K, YANG H, et al. Survey of Android OS Security[J]. Journal of Computer Research and Development,2014,51(7):1385-1396.
  [2] ZHANG J X, YANG X H. A Detection System of Android Android Application Based on Permission Analysis[J]. Netinfo Security, 2014(7):30-34.
  [3] ZHANG S Q. Android Malware Detection Technology Based on Improved Bayesian Classification[J]. Radio communication technology, 2014, 40(6):73-76.
  [4] ZHU X L, WANG J F, DU Y, et al. Detecting Android malware Based on sensitive permissions and function-call graphs[J]. Journal of Sichuan University:Natural Science Edition, 2016, 53(3):526-533.
  [5] LU W Q, HE J M, ZENG X B, et al. Android Malware Static Detection Based on Hybrid Features[J]. Radio Communications Technology, 2014,40(6):64-68.
  [6] YAN M, PENG X G. Permission detection system Based on android security mechanism[J]. Computer Engineering and Design, 2013, 34(3):854-858.
  [7] ZHANG X M, LIU J, ZHUANG J X, et al. Research on Android malware detection Based on permission and behavior[J]. Chinese Journal of Network and Information Security, 2017, 3(3):1-7.
  [8] ZHOU Y, JIANG X. Dissecting Android malware: characterization and evolution[C]//Proceedings of the 2012 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2012: 95-109.
  [9] Felt A P, Chin E, Hanna S, et al. Android permissions demystified[C]//Proceedings of the 18th ACM Conference on Computer and Communications Security. New York: ACM, 2011:627-638.
  [10] XU Y P, WU C H, HOU M J, et al. Android Malware Detection Technology Based on Improved Naive Bayesian[J]. Journal of Beijing University of Posts and Telecommunications, 2016, 39(2):43-47.
  [11] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. A review on feature selection in mobile malware detection[J]. Digital Investigation, 2015, 13: 22-37.
  [12] ZHANG R, YANG J Y. Android malware detection Based on permission correlation[J]. Journal of Computer Applications, 2014, 34(5):1322-1325.
  [13] WANG X F, DU T. Improved Weighted Naive Bayes Classification Algorithm Based on Attribute Selection[J]. Computer system applications, 2015, 24(8):149-154.
  [14] 张立民, 刘峰, 张瑞峰. 一种构造系数的自相关函数特征提取算法[J]. 无线电通信技术, 2012, 38(5):56-59.
  [15] Mitchell T. Machine learning[M]. Beijing: China Machine Press, 2012: 112-136.
  [16] virusshare. com. Because sharing is caring[EB/OL]. [2013-10-21]. http://virusshare.com/support.
  [17] ZHOU X, LUO K. A weighted naive Bayes algorithm Based on the attribute order reduction[J]. Advanced Materials Research, 2013, 718: 2108-2112.
其他文献
微课是我国教育领域中的一种新型教学方式,完美契合了时代的发展,将现代技术融合到了教育中来,实现了教育的现代化。将微课的教育方式应用到中职计算机的教学中来能够为学生
针对低分辨率深度图像在超分辨率重建中出现边缘细节模糊和振铃效应问题,提出了结合同场景彩色高分辨率图像,利用深度图像置信度和非局部自相似滤波的超分辨率重建算法。在联合双边上采样滤波器的基础上,结合深度图像置信度,去噪平滑图像,在非局部自相似滤波中结合同场景彩色图像的特征结构信息进行约束,可以很好减轻振铃效应,重建出高分辨率图像。实验结果表明,本文方法在去噪平滑图像的同时更好地保护边缘细节,避免振铃效
摘要:针对计算机应用技术专业的《计算机电子技术》课程存在的教学内容多实际课时少、理论部分多实践部分少的问题,该文在分析我校本专业该课程教学模式和运行状况的基础上,提出了该课程的“教学做”一体化教学模式改革方案。即将教学内容整合成模块,以生活中和行业中的实际项目为模块,由简到难、深入浅出、循环渐进的引导学生,经2015级及2016级两级教学实践,取得了良好的效果,达到了加强和提升学生的动手能力,培养
随着科学技术的进步,使得计算机得到了广泛的应用,这就预示着信息时代的来临。计算的应用使人们的生活发生了翻天覆地的变化,让人们的工作更加的方便、快捷。作为计算机应用
家具产业是我国的传统产业,也是迅速发展的产业。随着我国加入WTO,家具进出口取消了关税壁垒,家具行业竞争日趋激烈,怎样才能使我国的家具产业更上一层楼呢?现在家具行业面临
目的探讨中药房中药质量管理中存在的问题及对策。方法对我院中药房中药质量管理中从中药收购、验收、加工、炮制、保存、门诊配方、中药制剂等全过程的质量管理程序中存在的
<正>一、配方。鲜龙眼肉15千克或干龙眼肉2千克,白砂糖7千克,鲜灵芝100克,蜂蜜350克,鲜姜80克,白矾、防腐剂各10克,茯苓、贝母、燕窝适量。二、工艺流程。选料—浸泡(以鲜品
医学院校&#39;大学计算机基础&#39;课程是不可或缺的通识课。在实际教学中,公共课专业针对性差、人数众多教学方法,给教师教学和学生学习带来了诸多问题。在分析医学高校公共