基于权限的朴素贝叶斯Android恶意软件检测研究
作者:蔡泽廷 姜梅
来源:《电脑知识与技术》2013年第14期
作者:蔡泽廷 姜梅
来源:《电脑知识与技术》2013年第14期
摘要:在今天开源的android手机越来越流行的同时,也有越来越多的木马、广告、隐私偷窥、扣费等恶意软件的出现困扰着用户。该文首先介绍了Android系统的构成,分析了android系统的安全机制和存在的安全隐患,并就关键的权限机制的相关研究进行了综述。文章提出利用机器学习中的朴素贝叶斯分类算法,对程序的权限进行建模分类检测,并进行了模拟实验。
关键词:Android;恶意软件;权限;机器学习;检测;贝叶斯
中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2013)14-3288-04
1 概述
1.1 Android系统
Android一词的本义指“机器人”,也是一款基于Linux内核的开源手机操作系统,该系统由精简的Linux内核作底层管理、各种开源的功能库作中间件、基于Dalvik虚拟机的Java应用程序框架和一组基本的应用软件组成,是首个为移动终端打造的真正开放和完整的系统平台[1]。
Android系统自2007年首次发布以来,以其开源免费的优势,至今,经过多次系统升级,已经成为全球最流行的手机,占有率已超60%。 与此同时, 据网秦2012年第一季度的《全球手机安全报告》[2]指出“2012年第一季度查杀到的Android手机恶意软件3523款,直接感染手机412万部”,并且仍有上升趋势。所以,在Android移动设备迅速普及的今天,开展Android安全性研究势在必行,检测Android恶意软件研究具有重要意义。
Android系统采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,提供核心系统服务,比如安全,内存管理,进程管理,网络协议栈和驱动模块;中间层包括各种开源函数库Library和虚拟机Virtual Machine。第三层是各种应用基本框架,主要是由各种组件管理器级成,提供Android程序开发的基础功能,使组件重用变得简单,加快了程序开发的速度 。最上面一层是常用的必要的应用程序,包括
通话程序,短信程序等,应用软件可由第三方开发。每个Android应用都运行在它自己的进程里,并依附在一个单独的Dalvik虚拟机实例上[3],一个设备可以高效地运行多个Dalvik虚拟机。
1.2 Android的安全机制
Android安全机制的一个重要的设计出发点就是:应用程序在默认的情况下不可以执行任何对其他应用程序、系统或者用户带来负面影响的操作。除了Linux在系统内核级来做保障,在外围用户空间android也设计了独特的安全机制来保障程序的安全性[4]。
1)Android系统充分利用了Linux系统的安全特点,一个程序分配一个用户ID,每个程序运行在自己的沙箱环境,之间不能相互影响。
每个程序在安装时,系统会为它分配一个属于自己的Linux用户ID,为它创建一个“沙箱”环境,防止其它程序影响。用户ID在程序安装到手机中时被分配,并且在这个设备中保持它的永久性。另外如果该程序创建任何文件都会被赋予程序的用户标识,并且正常情况下不能被其它进程访问。
2)另外,Android系统设计了另一个安全特性,即权限控制[5-6]。每个程序要想使用系统的资源,必须在在程序的声明文件中明确的声明,在安装时向用户提示。如果有敏感权限用户可拒绝安装。
一个程序在安装时,需要声明自己需要的权限给用户提示, 包括如访问联系人、访问网络、访问电、收发送信息、读写存储卡,调用Android其他组件等 。如果有恶意权限会被细心的用户发现, 并且程序在实际运行期间,不可能有超出安装时声明的权限。 权限是Android为保障安全而设计的安全标识,同时也是程序实现某些操作的前提。
存在的问题是,用户选择安装了某个程序,就不得不接受该程序的所有权限,而一般的普通用户却不熟悉,这些权限可能给自己带来的危害。另外,用户往往更关心程序带来的功能,而忽视了程序所具有权限带来的潜在威胁。在安装了这样的恶意程序后,在运行过程中便可访问用户的隐私数据或执行非法的动作,而用户不会知晓,从中给用户带来威胁。
1.3 相关研究
文献[7]使用自动测试工具,测试了1310个关键Android API,创建了较为完整的Android
权限集合(permission map),包括了contendProviders, DisallowedBroadcasts, recevingBroadcasts, sendingBroadcast, startin-gActivities, startingServices 几乎所有种类的权限。
文献[8]分析了2011年10月前1260个良性程序的权限使用情况,同时与他们收集的恶意程序库中恶意程序所申请的权限的情况,进行了对比发现:访问网络、读手机状态、访问网络状态、写SD卡等权限在恶意程序和良性程序中都广泛使用,但恶意程序倾向于使用(:)短信有关的权限(62.7%)、开机自启动权限(54.6%)、更改WIFI状态的权限(31.6%),而良性程序很少使用这些程序。另外,恶意程序比良性程序倾向于请求更多的权限,在他们收集的样本中,恶意程序平均需要11个,而良性程度需要4个。在前20名的权限中,恶意程序平均需要9个,而良性程序平均仅需要3个。
由上,可以推断出,恶意程序与良性程序在需要的请求的权限集合与组合上,有比较明显的不同。
2 朴素贝叶斯算法与恶意软件检测模型
根据前文所述及相关研究,笔者认为可以运用机器学习方法以权限组合为特征对Android恶意软件进行检测。在机器学习方法中,朴素贝叶斯方法(Naive Bayes,NB),是一种性能较好的分类方法,常用在文本分类上[9],研究对比后发现其模型特征上与Android 程序的权限上有一定相似性。
2.1 android属于什么软件算法描述
NB利用贝叶斯公式的特性,将先验概率转换成后验概率,并为了简化问题处理,采取了“朴素的假设”。它分类新实例的方法是在给定描述实例 时,通过计算概率得到最可能的分类目标值。
2.1.2 算法描述
2.2 建模
3 模拟实验
1) 样本取得:从Google官方的Android市场下载200个程序(官方审核相对比较严格,
假设全为良性程序)。包括了游戏娱乐类、工具类、系统管理类等程序。 恶意样本,来自笔者的收集, 取200个,包括了一些主流恶意的程序,如:DroidKungFu ,AnverseBot,BaseBridge, RootExpoit 等。
2) 权限提取:基于开源项目androgurad[13],编写了一个自动读取一个目录下所有程序权限并统计每个权限数量的工具, 会将统计信息写出保存到文件。
3)用python语言实现了NB算法,按前文中的计算方式,计算相应的概率项。
4)先随机选取参与训练的良性程序和恶意程序各50个进行分类实验,再选择未参与训练的新样本进行检测,进行五轮实验。实验结果如下:
实验结果分析,由以上模拟实验可以看出,训练样本的分类效果相对较好,对新样本具有一定的检测能力,但不是特别理想。原因是样本数量偏少,检测方式单一,另外如果能按软件的分类如游戏娱乐、工具、系统管理等来进行检测效果会更好,因为不同类型的软件所需要的权限集合与组合也有不同。
4 总结
本文介绍了Android系统的架构,分析了Android系统的安全机机制。针对Android特有的安全机制,提出一种利用机器学习算法检测恶意软件的方法,并进行了模拟实验和分析,效果较好。今后,笔者将继续对Android系统的恶意软件检测进行研究,具体涉及如增加样本数量的训练;将检测模型移植到Android平台上;研究恶意的软件的除权限外的其他静态特征;研究恶意软件的运行时特征,hook Android的敏感API,建立恶意软件的行为模式;寻合适的机器学习算法,使模型具有更好的学习并检测新样本的能力。
参考文献
[1] 百度百科[EB/OL].http://baike.baidu/view/1241829.htm.
[2] 网秦公司. 2012年第一季度全球Android手机安全报告[EB/OL]. http://cn.nq/neirong/2012Q1.pdf
[3] 周毅敏,陈榕. Dalvik虚拟机进程模型分析[J].计算机技术与发展, 2010,20(2):83-86.
[4] SHABTAI A, FLEDEL Y, KANONOV U,et al.Google Android: A state-of-the-ar
t review of security mechanisms[DB/OL]. CoRR abs/0912.5101, 2009.
[5] 宋杰,党李成,郭振朝,赵萌. Android OS 手机平台的安全机制分析和应用研究[J].计算机技术与发展,2010,20(6):152-155.
[6] 廖明华,郑力明. Android 安全机制分析与解决方案初探[J].科学技术与工程,2011,11(26):6350-6355.
[7] ADRIENNE PORTER FELT, ERIKA CHIN,et al. Android permissions demystified[EB/OL].University of California, Berkeley. http:///.
[8] YAJIN ZHOU, XUXIAN JIANG. Dissecting Android malware: characterization and evolution. North Carolina State University. Security and Privacy (SP)[J].2012 IEEE Symposium on Date of Conference,2012: 95-109.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论