基于类别SVM的Android系统恶意软件检测研究

来源 :科技风 | 被引量 : 0次 | 上传用户:laoyet
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:Android系统以开放开源为特色赢得了众多的客户的青睐。用户数量突飞猛进。但Android系统的开放性也带来了众多的麻烦。Android系统恶意软件呈现线性般的增长。本文对Android系统恶意软件检测提出了基于类别的svm的检测研究。将Android系统应用程序(app)的类别关联在一起,根据特定类别中特定特征表现与大部分良性app特征是否异常来预测该app为恶意app,恶意app在特定类别中的特征表现异常、罕见或者特征较多等特点进步断定为该app为恶意app。本文对250个app样本首先关联分类,然后对权限特征进行训练分类器,采用SVM机械学习算法建立分类模型。最后对训练数据进行实验,对实验结果进行信息检索学评估,得出基于类别的svm的检测方案比普通的svm检测方案高的结论。
  关键词:Android SVM 恶意软件;Android安全
  Android系统基于linux内核,该系统与2007年11月5日有谷歌公司正式发布。字发布以来受到广大用户和厂商的青睐,因其开放性、自由性等特征使其得到快速的发展。经过几年的发展,Android系统已经从单纯的智能手机领域进入了教育、医疗、军事、汽车、家居等行业。
  开放性、自由性等特点也给负面带来了很多的影响。从第一例Android系统恶意软件出现,到现在大面积的恶意app的出现,对Android系统的各行各业带来众多影响。恶意app吸费扣费、恶意推广、隐私贩卖为目的的利益产业链。目前恶意app变种迅速、家族种类繁多,安全公司每天面临着大量待测可疑的样本,分析检测工作量巨大。特征提取效率低下、导致静态检测的杀毒软件效率低下。目前Android系统的“内忧外患”恶化了Android安全形势。
  面对目前Android系统的安全形势,本文做了一下工作:
  一是,采集app数据集,并按关联类别分类;
  二是,对所采集的数据进行反编译,提取权限特征进行训练分类器,采用SVM机器学习算法建立分类模型。
  三是,对分类模型进行信息检索学评估。并提出基于类别SVM的Android系统恶意软件检测方法。
  1 Android系统介绍
  1.1 Android系统架构
  Android的系统构架和其他的操作系统一样,采用了分层的构架,层次非常清晰。
  Android分为4层,从高到低依次为应用程序层(Application)、应用程序框架层(Application Framework)、系統运行库层(Libraries 和 Android Runtime)和linux内核层(Linux Kernel)。
  应用程序层:包括图1中的各项功能。所有的应用程序都是使用Java语言编写。通过调用应用程序框架层所提供的API来完成。应用程序框架层:该层为开发人员提供了可以完全访问核心程序所使用的API框架。系统运行库层:包括程序库和Android运行时库。前者主要为c/c++库。后者又分为核心库和Dalvik虚拟机两部分,核心库提供Java语言核心库的大多数功能,Dalvik虚拟机执行.dex文件。内核层:Android依赖于linux2.6版内核提供的核心服务。
  1.2 Android安全特点
  Android的安全一保护用户的数据和移动设备硬件、系统和软件为目标。Android系统安全的主要基础主要是下面几点:依赖linux内核,应用沙箱机制,应用签名机制和应用程序定义和用户授予权限机制等。Linux内核通常被认可用于較高的安全敏感环境中。
  由于开放环境,linux安全方面一直被安全专家、修补bug的开发者、寻找容易被利用点的攻击者们巩固提升。同时提供了从内核中去除不必要的和不安全部分的能力。沙箱机制特点是用唯一的UID隔离应用程序的进程和数据与其他的应用程序。在内核中,当应用程序安装时,Android系统分配每个应用程序不同的用户ID。换句话说,每个应用程序在整个生命周期中拥有一个唯一的UID。同一个应用程序可能在其他设备上有一个不同的UID,重要的是两个不同的应用程序不能分配相同的UID。因为每个应用程序都有自己的UID,所以它们不能在同一进程中运行,而是需要在其UID下单独运行。这样能隔离正在运行的进程,以使应用程序彼此安全。
  此外,任何应用程序的数据存储在其UID下,其他应用程序无法访问。应用程序的签名机制,要求任何应用程序的.apk文件必须由开发人员的证书签署,以识别应用程序的作者。这样可以实现如果他们由相同的证书签名,那么应用程序可以共享一个UID。它还允许系统授予或拒绝签名级权限;如果系统使用声明权限与其他应用程序的相同证书签名,系统将向该申请权限的应用程序授予签名级权限。
  最后,Android采用的权限模型保护手机的资源和功能,使其只能通过授予相应权限的应用访问。默认情况下,应用程序没有处理手机硬件,软件,功能和数据的权限。应用程序的开发人员需要声明应用程序功能所需的权限。在安装时,用户需要授予请求的权限,否则系统会终止安装。
  1.3 Android恶意软件
  1.4 Android恶意软件检测技术
  目前有很多的恶意软件检测技术用于商业和研究方面的恶意代码检测软件。大部分的商业恶意软件扫描工具依赖于静态或者动态的技术去检测恶意代码。静态分析扫面源代码或者二进制代码去对比已知的恶意特征码。当恶意软件制作者使用代码混淆制作恶意软件时,使用静态分析恶意代码往往变得力不从心。相对静态检测技术,动态检测技术在恶意代码受控环境下分析并追踪恶意软件。动态检测技术也被叫做基于行为的检测技术。以前的大多数Android设备上的恶意软件检测技术都采用某种动态的检测技术。
  来自Zhou和Jiang的研究概述商业的扫面工具在Android设备检测恶意软件性能并不是很好,他们测试了四种商业扫描工具(AVG,Lookout,Norton,Trend Micro),将这四种工具用具检测来自49个恶意软件家族的1260个恶意应用程序。最好的移动恶意软件扫描工具只识别出了收集的恶意应用程序的79.6%,最差的还不到20.2%。在上述的工作中,Google自己的恶意软件检测服务只检测出1260恶意应用的15.32%   2 基于类别SVM检测技术
  2.1 检测技术框架
  整个方案的步骤大致为:收集Apps样本,反编译app样本,提取特征集,用特征选择算法选择最佳的特征子集,建立分类模型。如图1所示。
  2.2 数据收集
  该研究中我们对所有类别app建立样本。首先对120个恶意app和50个良性app进行特征模型训练,然后对社交app收集数据,良性app为50个,恶意app为30个。并命名“所有组”、“社交组”。
  2.3 反编译数据
  App中有个文件叫做“apk”,在特定的特征组app反编译时,该文件被反编译成相应的源码文件。这个过程被一个叫做santoku的反编译工具自动完成,因为特定为移动安全制定的linux系统机制,.apk文件将转化为源码中的AndroidMainfest.xml文件形式和.java文件。我们采用apktool工具进行反编译。
  2.4 特征提取
  在该部分我们选取app中的权限为特征进行过滤提取。并提取其中排名前10的权限。权限是非常重要和常用的特征用于在Android系统中检测恶意代码。我们这里也会相应的考虑其他的静态权限。在该领域许多研究通过建立权限模型,将相应的权限授予app验证其能否使app可以有恶意行为。
  在我们的研究中,将app请求的权限与我们上文提到的类别app训练成的分类模型中一组共同的权限相关联。显然地,特定类别的功能需要一组权限,然而如果app出现需求的异常或者超级权限相对于良性app,则表明该app有恶意意图。
  2.5 分类模型
  支持向量机(SVM)也称作支持向量网络(SVN),是一种有监督的机器学习模型,它可以对数据进行分类分析、检测和模式识别以及回归分析。SVM是一种非概率的线性分类器,它将数据分配到一个或者多个类别中。它也可以使用Kernel Trick有效的用在非线性分类问题中。Kernel Trick是一类支持向量机算法,它可以简易和经济的方式的将输入特征映射到较高维的输出空间中。
  SVM将训练数据视为一个空间的点,该空间的点基于它们的类别以群组形式聚集,这些群组被称作超平面的清晰的间隙相隔离。在训练阶段,SVM从训练数据中建立起模式模型,这些数据在分类阶段是用在一个空间。
  在分类阶段,新的输入点被映射到训练空间中,并按照它们落在间隙的哪一侧来分类。如图4所示,直线分离了两个类别,新的数据如果在直线以上则映射到类的空间中,否则映射其他类空间。
  3 实验与结论
  在该部分我们主要对上节的方案进行实验,比对实验结果进行讨论,最后得出结论。我的研究目标是通过提高从训练分类器的特征选择质量进而提高分类模型的性能。每个类别有各自的功能,良性app在特定类别中有共同的一组特征,而恶意app的特征异常、罕见、或者比特定类别中的app更多的特征。為檢测到恶意代码,我们将app的特征与特定功能类别中app特征相关联。为达到这种目标,我们准备2组数据(“所有app”、“社交app”)包含良性和恶意二进制向量。在训练阶段,我们用支持向量机(SVM)建立2个分类模型,使用权限特征训练分类器。实验重复15次,每一轮实验中三组数据集顺序随机打乱,70%的数据用于训练,其余数据用于测试。
  测试环境采用pc机,OS采用win7,数据挖掘工具采用weka。实验结果采用求平均数的方法。最后得出结论,基于SVM的“所有app”精确度为0.901,基于类别SVM的“社交app”组精确度为0.958。基于SVM的“所有app”组的召回率为0.930,基于类别SVM的“社交app”组的召回率为0.971。综合评价,基于类别的Android系统恶意软件检测技术精确度高于普通的SVM检测技术。
  参考文献:
  [1] 罗瑜.支持向量机在机器学习中的应用研究.西南交通大学博士学位论文,2007,7.
  [2] 彭国军,李晶雯,等.Android恶意软件检测研究与进展.武汉大学学报(理学版),2015年2月,第61卷 第1期.
  [3] 龚炳江,唐宇敬.Android平台下软件安全漏洞挖掘方法研究.计算机应用于软件,2014年1月,第31卷 第1期.
  [4] Huda Ali Alatwi Android malware Detection Using Category-Based Machine Learing Classifiers Rochester Institute of Technology RIT Scholar Works,June 2016.
  [5] 李骏骁.基于监督型机器学习分类方法的Android恶意软件检测技术研究.南京大学研究生毕业论文,2014,5.
  作者简介:
  管飞诗(1986-),山东德州夏津人,硕士研究生,研究方向:网络模型及网络环境下应用技术研究。
  徐夫田(1965-),山东临沂人,博士,研究员,硕士生研究生导师,研究方向:电子政务、数据库。
其他文献
目的:观察中西医结合治疗伪膜性肠炎的疗效。方法:60例伪膜性肠炎患者随机分为对照组及治疗组,对照组采用万古霉素0.25g/次,一日4次口服,同时根据腹泻程度补足液体,保持水电解质平衡,
旋流-静态微泡浮选柱在分选某些硫化矿时存在起泡剂起泡能力不足,进而导致浮选精矿回收率较低的问题。通过对730系列起泡剂在浮选柱应用中的气含率研究以及结合云南大红山铜矿
从采矿技术向工艺连续化和运输方式多样高效方向发展、无扰动矿山采矿技术的发展、矿山的数字化、智能化与无人化采矿技术发展方面介绍了国内外矿山采矿技术发展趋势,按露天矿
按小学语文教学大纲规定,教师既要考查学生的语文基础知识,又要考查学生听说读写的能力。前者和写作能力可以通过笔试的方法进行考查,而后者中听说读的能力可以通过口试的方
课堂问答,包括教师提出问题,学生思考、回答,教师总结评价等过程。在此过程中,学生会出现不同的心理倾向和心理反映。在教学时,教师除结合知识内容的特点,遵循课堂提问的基本
毕业复习是教学过程中的重要组成部分,是对初中三年里所学的知识加以整理,弥补知识缺陷,沟通知识间的内在联系,从而加深对基础知识的理解,提高灵活运用知识的能力,为以后的学
一、性道德教育的意义性道德是道德总体的一部分,是社会道德在两性关系上的行为规范和准则。如男女两性平等,尊重异性并自尊自爱;其中尤其对女性的尊重与关照,已是全世界现代
摘 要:在城镇化建设不断推进的过程中,大量的拱桥得到了建设,以满足人们对城市景观的观赏要求。但是,如果拱桥结构无法得到合理的设计,就容易出现结构失稳问题,继而将给人们的生命财产安全带来威胁。基于这种认识,本文对拱桥结构稳定分析问题展开了研究,从而为关注这一话题的人们提供参考。  关键词:拱桥结构;稳定;屈曲  在景观区,很多人行拱桥得到了建设。为追求美观和新颖,很多拱桥的设计都使用新奇的结构形式和
性质功效:补阴散结剂。滋补肝肾,理气活血,化痰散结。
构思的巧与拙,可以导致文章的好与坏。为了训练学生能构思巧妙,笔者上了一节关于“构思”的讨论课。课堂结构共分五步进行。一、理解题目。为了认识“构思巧妙”的重要意义,