标题 | Android平台恶意软件检测系统设计与实现 |
范文 | 杜洪波++郭光++高峰++徐杰 摘 要:基于Android平台,通过提取待测软件特征值与已知恶意软件特征库,使用相似性检测算法计算出恶意软件相似度,从而实现对未知恶意软件的检测。详细给出了Android系统恶意软件的检测系统设计与实现,并进行了恶意软件检测结果测试。 关键词:Android;恶意软件;检测系统 DOIDOI:10.11907/rjdk.1511032 中图分类号:TP319 文献标识码:A 文章编号文章编号:1672-7800(2015)012-0104-03 0 引言 基于Android系统的智能手机已经成为中国智能手机市场的主导,但越来越多的恶意攻击者将利润目标转向Android系统。从首个Android 手机的恶意软件“Android 短信卧底”开始,Android 平台上的安全问题逐渐被关注。艾媒咨询(iiMedia Research)发布的2015Q1中国手机安全市场季度监测报告[1]中称,截至2015第一季度,中国手机安全应用用户规模达4.72亿,相较于2014第一季度,用户规模增长0.65亿。360在2015年1月份发布的2014年中国手机安全状况报告[2]中指出,2012年恶意程序样本只有12.4万;而到了2013年,恶意程序样本数量达到了67.1万;2014年,恶意程序样本数量竟然达到了326万,是2012年的26倍之多,如图1所示。 图1 2012-2014Android平台恶意软件数量 本文基于Android平台,通过提取待测软件特征值与已知恶意软件特征库,使用相似性检测算法计算出恶意软件相似度,从而实现对未知恶意软件的检测。文中详细给出了Android系统恶意软件的检测系统设计与实现,并进行恶意软件检测结果测试。 1 Android平台结构 Android是谷歌公司推出的完全免费和开放性的智能手机操作系统,是一种专门为移动电话、平板电脑等设计的操作系统。其内核精简、运行速率快并且成熟稳定。根据功能特点,其系统架构分为4层,从上到下分别是:应用程序、应用程序框架、中间件、Linux内核,如图2所示。 图2 Android系统整体构架 (1) Linux内核(Linux Kernel)。Android平台运行在Linux2.6上,相当于Linux内核部分手机软件层和硬件层之间的一个抽象层。Android内核提供显示驱动、摄像头驱动、存储驱动器、键盘驱动、Wi-Fi驱动、音频驱动和电源管理等功能。 (2) 中间件(Middleware)。中间件包括两部分:核心库(Libraries)和Android运行环境(Android Runtime)。其中,核心库包含了一些C/C++库,被系统中不同的组件使用,同时提供了最核心的功能管理。显示系统管理(Surface Manager)负责在手机屏幕上显示图像信息。媒体框架(Media Framework)负责控制多媒体文件,包括多种音频、视频和静态图片文件。SQLite数据库提供了一个轻量级的关系型数据库。WebKit为嵌入式Web浏览器引擎。此外,还有很多其它库,各自发挥作用,保证了Android中核心功能能够得到完美实现。基本运行环境由Dalvik Java虚拟机和基础的Java类库组成。 (3) 应用程序框架(Applicantion Framework)。Applicantion Framework提供与Android系统开发人员直接相关的程序开发人员的接口。Activity管理器(Activity Manager)的作用是处理应用程序各个Activity的生命周期并提供常用的导航回退功能。内容提供者(Content Provider)使得应用程序可以访问另一个应用程序的数据(如联系人数据库)或者共享它们自己的数据库。视图系统(View System)用于建立应用程序视图,如本地字符串、图片或布局文件等。信息管理器(Notification Manager)负责在状态栏中显示各个应用程序的提示信息。 (4) 应用程序(Application)。Android系统将一些核心的常用应用程序安装在系统中,包括联系人、浏览器、电话、Home视图等。这些应用程序和用户自己编写的应用程序是完全平行的,都是用Java语言编写的。并且用户还能够根据自己的需要更换系统自带的应用程序,或者增添自己的应用程序。 2 Android恶意软件检测系统设计与实现 2.1 系统整体构架 本系统分为用户端和服务器端。用户端监听待测程序,提取待测程序特征值,发送检测请求与待测程序信息到服务器端,最后接收服务器端反馈的监测信息,并按照用户要求处理检测出的恶意软件。服务器端接收用户端的检测请求并进行检测,然后将检测结果反馈到用户端。检测系统整体流程图如图3所示。 2.2 相似度检测算法 待测软件特征提取出来后,需对待测软件特征与已知恶意软件特征进行相似度比较。由于特征属性之间存在包含关系或者层次关系,将每个文件中的特征属性构造成树形结构,这种结构不仅能比较各结点的特征属性是否相似,也能比较结点与结点之间是否是相同的关系。本文采用有向边比较法进行相似度比较。 有向边比较法[3-4]:一棵树可以是有向图,并且是一个无回路的,那么通过有向边比较法判断树的相似性,即计算整棵树中两棵树具有相等的有向边所占的比例。如果Φ(s)=5000Ks(s+20)(s+1000)+5000K为一棵树,结点与结点之间存在父子关系,假设K=10,50,200,1000具有父子关系,则0 Sim(T1,T2)=|EG(T1)∩EG(T2)||EG(T1)∪EG(T2)|(1) 图3 检测系统整体流程 2.3 恶意软件判定 客户端监听到检测请求,首先提取待测软件的特征值,将这些信息和检测请求一起发送给服务器端。服务器端收到请求及检测信息后,首先将待测软件的特征值送入系统进行快速检测,若在已知恶意样本中已经存在该软件样本,则可由已知恶意软件样本的值快速判定;若已知样本中不存在与该待测软件相同的已知恶意软件样本,则将待测软件的特征信息依次与各个已知恶意软件样本进行相似性比较,得出相似值,再比较相似值和已知恶意软件样本的阈值,若达到已知恶意软件样本的阈值,则判定该待测软件是恶意软件,否则是正常应用程序。具体流程如图4所示。 图4 系统流程 (4) Android恶意软件检测系统App运行界面如下图5所示。 图5 Android恶意软件检测系统App运行界面 3 “绝色斗地主”恶意软件检测测试 为测试系统检测效果,将Android手机中安装“绝色斗地主”恶意软件,使用Android恶意软件检测系统和360手机卫士分别对其进行检测,检测结果对比如图6所示。 图6 “绝色斗地主”恶意软件检测 4 结语 Android系统恶意软件检测系统通过用户端与服务器端的相互协作完成待测软件检测。用户端主要负责监听待测程序并根据用户发出的指令向服务器端发送检测请求,向服务器端推送已提取的待测程序的特征信息,最后接收服务器端反馈的监测信息,处理检测出的恶意软件。服务器端负责接收用户端推送的检测请求以及待测程序信息,通过与已知恶意程序库进行匹配对比检测,最后将检测结果反馈到用户端。 对于感染恶意代码的程序,其特征值提取需要进一步优化。此外,针对未知恶意软件特征与已知恶意软件特征相似对比的算法还需进一步优化。当然,一种检测方法不会对所有恶意软件都有效,综合运用多种检测方法效果会更好。 参考文献参考文献: [1] 艾媒咨询(iiMedia Research).2015Q1中国手机安全市场季度监测报告[EB].http://www.iimedia.cn/14325541340742n924.pdf. [2] 360.2014年中国手机安全状况报告[EB].http://www.csdn.net/article/a/2015-01-26/300715. [3] 崔岩,张淑丽.基于有向边和属性的相似度模型设计[J].微处理机,2014,35(5):48-55. [4] KHATIB.Real-time obstacle avoidance for manipulators and mobile robots[J].Inter.J.Robo Tics Research,1986,5(1):90-98. (责任编辑:陈福时) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。