基于自组织映射的安卓恶意软件分析研究
2016-02-23张慧翔付俊平
杨 佳,张慧翔,罗 怡,付俊平
(西北工业大学 自动化学院,陕西 西安 710072)
基于自组织映射的安卓恶意软件分析研究
杨 佳,张慧翔,罗 怡,付俊平
(西北工业大学 自动化学院,陕西 西安 710072)
随着Android系统日益广泛的应用,其安全性也成为关注的焦点。由于Android系统的开放性,Android恶意软件也与日俱增。分析Android恶意软件,了解恶意行为,对恶意软件检测具有重要意义。文中首先总结了所收集的1 260个恶意样本中表现的恶意行为;然后提取这些恶意样本请求的权限信息与声明的Action信息作为训练的特征向量,采用自组织映射神经网络算法对Android恶意软件进行聚类分析;利用U-matrix算法的热色图分析不同恶意Android应用之间的联系;利用组件平面图分析了恶意软件与单一特征之间的关系,了解特征参数与恶意行为的相关性。最后总结归纳了不同恶意行为频繁使用的权限与Action特征。分析结果表明,文中所提方法能够有效了解恶意行为的敏感特征信息组合,可为进一步的恶意Android应用检测提供依据。
Android;恶意软件;自组织映射;神经网络;可视化
0 引 言
Android是目前最受欢迎的智能手机操作系统,据IDC全球季度智能手机报告显示,2014年第四季度Android占据76.6%的市场份额[1]。然而Android恶意软件也与日俱增,Sophos安全报告指出,到2014年收集了650 000个不同的Android恶意软件样本,每天有2 000新样本被发现[2]。恶意软件变种迅速,家族种类繁多,充分分析Android恶意软件的行为特征,对恶意软件检测具有重要意义。
David等[3]提出了基于自组织映射(Self-Organizing Map,SOM)算法来分析Android权限安全模型,采用可视化方法分析应用程序与权限之间的关系。Eric等[4]采用SOM算法分析Android应用程序权限和日志信息模型,充分了解应用的申请权限和动态行为信息。这些研究表明,采用SOM算法能有效地分析Android应用与权限之间的联系。但是,这些研究中分析的样本均为Android良性程序,未考虑恶意程序。恶意程序的权限行为特征有待进一步分析。
目前,Android恶意软件检测的很多工作[5-6]都是提取AndroidManifest文件中的权限特征来分析的。但仅考虑权限特征的恶意软件检测准确率只能达到80%左右[7-8]。只考虑权限特征,不能充分反映Android应用程序的特性。AndroidManifest文件中的Action标记信息也能反映出恶意软件的特点。Action代表Intent所需要完成的一个抽象的动作,Intent为Android应用的启动意图,Android应用将会根据Intent来启动指定的组件[9]。恶意软件在实现其恶意行为时,也需要声明相应的Action[10]。
基于上述考虑,文中提出采用SOM算法对Android恶意软件进行可视分析。通过提取恶意软件样本的权限和Action特征作为训练的输入向量,生成热色图来分析聚类结果,进一步采用组件平面来分析恶意软件与单一特征之间的关系。最后,归纳总结恶意行为与权限、Action特征之间的相关性。
1 基于SOM的分析方法
文中使用来源于Android恶意软件基因组的1 260个应用程序作为样本集,共49个恶意家族[11]。在49个家族中,恶意行为主要表现为恶意扣费、远程控制、隐私窃取、资费消耗、流氓软件等。
通过apktool工具可得到恶意软件的Androidmanifest.xml文件[12],分别提取文件中
SOM算法是一种无监督聚类算法,将高维空间的样本在保持拓扑结构不变的条件下投影到低维空间。无论输入样本空间是多少维,其模式都可以在SOM网输出层的某个区域得到响应。SOM网络经过训练以后,在高维空间输入相近的样本,其输出相应的位置也相近[13]。将输入向量通过SOM训练得出二维可视化结果,采用热色图来显示临近权值大小。另外,每个特征参数的组件平面图,可用于分析每一个竞争神经元和输入数据单个特征之间的关系。组件平面分析被认为是SOM的一种切片的可视化图[14]。
2 基于SOM的权限分析
(1)聚类结果分析。
图1为SOM网络临近权值距离的可视化图,通过热色图表示了神经元之间的临近关系,热色图的范围是根据灰色图的不同灰度值,从黑色到白色的256阶的灰度范围,其中小六边形代表神经元,之间灰色线连接邻近的神经元,神经元之间的区域表示连接的权值,越亮的区域表示权值越大,神经元之间的距离越小,反之亦然。
图1 权限的临近权值距离图
为了更好地分析结果,将家族类别标记于神经元上,标记SOM神经元采用胜者为王的规则。要注意的是,虽然有些恶意软件请求相似权限,只能意味着它有相似的功能特点,并不意味是同一家族的,所以会导致在基于恶意家族分类时的误分。有时候一个神经元的初始权值向量离输入向量太远,以至于它从未在竞争中获取胜利,因而也从未得到学习,将形成毫无用处的“死”神经元。图2是聚类的标记结果。
图2 聚类的标记结果
图1中有几处神经元之间的颜色较亮,其距离较近,分别为同一家族,但却在不同神经元中,意味着来自相同家族的恶意软件请求不同的权限,其行为也不相同。不同家族的恶意软件也可能被分在同一神经元中,例如图2中的右下角部分,这就意味着不同种类的软件有时也会请求相同的权限。图1中左上角的神经元之间的距离比较小,对应的是AnserverBot家族,最复杂的恶意家族之一,占总样本数的14.8%,包括重打包和自更新的恶意APK。
图2中右上角基本上是DroidKungFu家族,以及它的后期衍生版本。该家族数量比较多,占据总样本数的37.5%。DroidKungFu病毒的主体是一个Android原生程序,通常被捆绑到正常的软件中,用户只要安装这个软件就会感染病毒。该家族的恶意行为也从原先下载恶意广告软件到现在的篡改手机系统,连接远程的服务器接收控制指令等。
(2)组件平面分析。
该部分提供了个别维度的组件平面分析图,颜色越亮的区域代表较大的权重,联系越强,反之亦然。即亮颜色区域表示频繁使用,而暗颜色区域表示罕见使用。
恶意扣费类的恶意软件主要特征就是会在系统后台执行扣费操作,如自动发送短信或彩信、自动拨打电话或者自动联网消耗流量等方式,对用户造成经济损失。从图3中(a)可以看出,在数据集中90%以上申请INTERNET权限。例如DroidKunFu3中(94bf70ca8c44 4b7bec79efa0807a282fb8c61964.apk)开机自启动,并含有12条广告,常见有微云、有米广告等,该应用程序会大量消耗流量。如图3(g)、(h)所示,RECEIVE_SMS和SEND_SMS平面图比较相近,这意味着这些权限是成对出现的,且权限之间的关系也紧密,在数据集中就有45%恶意软件都有与短信相关的恶意功能。例如BgServ家族中(03f9fc8769422 f66c59922319bffad46d0ceea94.apk)主要恶意行为是发送短信内容“1234567”至10086;拦截包含“10086”的短信号码。如图3中(m)、(n)所示,CALL_PHONE允许应用程序在用户不介入的情况下拨打电话。恶意应用程序可借此在您的话费单上产生意外通话费。PROCESS_OUTGOING_CALLS拦截外拨电话,允许应用程序处理外拨电话或更改要拨打的号码。恶意应用程序可能会借此监视,自行转接甚至阻止外拨电话。
远程控制通常分为两种,通过发送短信或者通过网络来进行远程控制。基于网络控制的恶意软件通常会申请图3(a)的INTERNET权限,数据集中93%的恶意软件使用基于HTTP的网络流量来接收远程服务器的命令。例如DroidCoupon中(1c0a6b1c5d24cbba9 b11020231fffc0840dd7e10.apk),会在后台启动负载,同远程的C&C服务器(http://a.xxxxxxx-inc.net:9000)通信,然后从服务器接收指令,下载并安装附加的软件到设备上。基于短信控制的恶意软件,会成对申请图3(e)~(h)的权限。例如NickyBot(f8eac76f3c50be40 945cc562a53f5c661454cd.apk)同时申请READ_SMS,WRITE_SMS,RECEIVE_SMS和SEND_SMS权限,通过短信进行恶意操作。
隐私窃取类主要是窃取用户的敏感信息,并将这些信息发送给指定的接收者。获取用户地理位置会成对地申请图3中(i),(j)和(k),(l),恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。例如GoldDream家族中(2950164750c6e36322 f1dac810a7a4b4.apk),该应用就是快速耗电恶意软件,运行后在锁屏待机下,未注销GPS,手机无法进入休眠状态,导致手机电量快速流失。窃取隐私的恶意软件还可能读取手机状态,读取短信、联系人等行为。如图3(b),(e),(o)所示,恶意软件频繁申请READ_PHONE_STATE,READ_SMS,READ_CONTACTS的权限。
图3 申请权限组件平面分析图
流氓软件类主要是强行安装和难以卸载,即使用户拒绝安装,它也会在后台自动安装。流氓软件会通过联网后台下载恶意软件,申请如图3(a),(c),(d)所示的三个权限INTERNET,INSTALL_PACKAGES,DELETE_PACKAGES。例如JSMSHider家族的主要恶意行为就是样本运行后就会尝试获得root权限来安装恶意apk。
3 基于SOM的Action分析
(1)聚类结果分析。
如图4所示,大部分的神经元之间的距离都比较相近,声明的Action比较相近,除去偏上中间的位置填充着黑色阴影。图中右上角偏下区域填充着亮白色,根据结果可知,该区域对应的是DroidKungFu家族,在数据集中该家族有473个样本,该家族是重打包应用程序,在原有的APK中嵌入恶意病毒,主要声明了BOOT_COMPLETED相关的Action,可以自动启动服务,不需要与用户交互,用户察觉不到恶意服务在后台运行,收集窃取信息。图中左上角区域神经元的距离比较相近,属于AnserverBot家族,声明了10种不同的Action,大量的Action会加快应用程序的恶意行为。
图4 Action的临近权值距离图
(2)组件平面分析。
图5(a)、(b)所声明的Action在恶意软件中是频繁使用的。隐私窃取、恶意扣费类的恶意软件一般会声明这些Action。android.intent.action.MAIN是程序的入口,恶意软件通常会在激活其他恶意的服务。Zsone家族中 (00d6e661f90663eeffc10f64441b170 79ea6f819.apk)在程序入口中通过点击屏幕操作来调用发送短信的代码。android.intent.action.BOOT_COMPLETED是程序自启动服务,由图5(b)可以看出80%以上的恶意软件都声明了,Pjapps家族中(f051eeab57e42d569d298a d076c9fb47610e201e.apk)通过开机自启动来触发启动服务com.android.MainService,执行被植入的恶意软件。该服务是主要的恶意模块,访问指定的网站,发送短信。
图5 申请Action组件平面分析图
由图5(c)看出,恶意扣费、远程控制类恶意软件与短信有关的恶意行为都会声明android.provider.Telephony.SMS_RECEIVED,占据样本的60%以上的恶意家族。该Action主要是监控短信,拦截或响应传入的短信。HippoSMS家族中(619389e71656f3198ede0b 249c45455898d60483.apk)注册短信接收消息,发送短信内容“8”至1066156686,发送这些短信与订购SP服务,暗中扣费有关。拦截短信号码是“10”的短信,使SP返回的短信无法被用户查看。Zsone家族中(31c8bd21fff04f233e0f00e9c8007bb37 c567544.apk)注册该事件,拦截短信号码以10086或者10000开始的短信。
图5(d)~(f)广播消息通常成对被声明,分别是有应用程序被添加,有应用程序被删除和应用程序被替换。通过这三个广播消息可以监控到Android应用程序的安装和删除。通常流氓软件会在后台下载一些恶意程序,在Android中安装和卸载程序时通常会有系统广播,但是一些恶意木马等通过屏蔽广播等手段,使得用户不知道后台私自下载程序。图中右下角神经元填充着亮白色,家族jSMSHider全部注册这些事件,该病毒在用户手机安装后无图标,会私自下载具有恶意行为的应用,并尝试获得root权限进行安装,花费用户的流量。
最后,总结归类了恶意行为中相对应的频繁申请的权限及Action,如表1所示。
表1 恶意行为对应频繁申请权限及Action
4 结束语
文中采用SOM算法对Android恶意软件进行分析研究。通过提取恶意软件中的权限及Action特征,利用SOM热色图与组件平面图,分析了不同家族恶意软件的权限与Action使用情况。最后,总结归纳了各种恶意行为对应频繁申请权限及Action。根据这些特点,可为恶意软件检测提供参考,以提高检测的精度。这也是下一步要进行的工作。
[1] IDC. Smartphone OS market share,Q42014[R/OL].2014.http://www.idc.com/prodserv/smartphone-os-market-share.jsp.
[2]SvajcerV.Sophosmobilesecuritythreatreport[R/OL].2014.http://www.sophos.com/en-us/medialibrary/PDFs/other/sophos-mobilesecurity-threat-report.ashx.
[3]BarreraD,KayacikH.Amethodologyforempiricalanalysisofpermission-basedsecuritymodelsanditsapplicationtoandroid[C]//Proceedingsofthe17thACMconferenceoncomputerandcommunicationssecurity.[s.l.]:ACM,2010:73-84.
[4]FinickelE,LahmadiA.EmpiricalanalysisofAndroidlogsusingself-organizingmaps[C]//ProcofIEEEinternationalconferenceoncommunications.[s.l.]:IEEE,2014:1802-1807.
[5] 张 锐,杨吉云.基于权限相关性的Android恶意软件检测[J].计算机应用,2014,34(5):1322-1325.
[6] 张叶慧,彭新光,蔡志标.基于类别以及权限的Android恶意程序检测[J].计算机工程与设计,2014,35(5):1568-1571.
[7] 彭国军,李晶雯,孙润康,等.Android恶意软件检测研究与进展[J].武汉大学学报:理学版,2015,61(1):21-33.
[8] 杨 欢,张玉清,胡予濮,等.基于权限频繁模式挖掘算法的Android恶意应用检测方法[J].通信学报,2013,34(Z1):106-115.
[9] 胡文君,赵 双,陶 敬,等.一种针对Android平台恶意代码的检测方法及系统实现[J].西安交通大学学报,2013,47(10):37-43.
[10] 边 悦,戴 航,慕德俊.Android恶意软件特征研究[J].计算机技术与发展,2014,24(11):178-181.
[11]ZhouYajin,JiangXuxian.DissectingAndroidmalware:characterizationandevolution[C]//ProcofIEEEsymposiumonsecurityandprivacy.SanFrancisco,CA:IEEE,2012:95-109.
[12] 楼赟程,施 勇,薛 质.基于逆向工程的Android恶意行为检测方法[J].信息安全与通信保密,2015(4):83-87.
[13]KohonenT.Self-organizingmaps[M].3rded.[s.l.]:Springer,2001.
[14] 芮小平,张立强.基于SOM的多维信息可视化研究[J].应用基础与工程科学学报,2011,19(3):379-388.
Research on Empirical Analysis of Android Malware Based on SOM
YANG Jia,ZHANG Hui-xiang,LUO Yi,FU Jun-ping
(School of Automation,Northwestern Polytechnical University,Xi’an 710072,China)
With the increasingly extensive application of Android operation system,its security becomes the focus of attention.Due to the openness of Android OS,malicious applications grow rapidly.In order to detect malicious applications,the primary task is to analyze the malicious behaviors of Android malwares.In this paper,the malicious behaviors are summarized from 1260 collected samples firstly.Then,the Self-Organizing Map (SOM) algorithm is used to perform visual analysis for Android malwares.The requested permissions and declared actions in the manifest files of Android applications are retrieved as the features to train the classifier.The SOM clustering results are visualized by heat color map using U-matrix algorithm,and then the component plane analysis of SOM is used to understand the correlation between features and malicious behaviors.In the end,the malicious behaviors and their corresponding features are summarized.The result of experiments shows that the method is practical,and can identify the combination of sensitive characteristic from malicious behavior.These are helpful for Android malware detection.
Android;malware;self-organizing map;neural networks;visualization
2015-04-15
2015-07-22
时间:2016-01-04
国家自然科学基金资助项目(61303224);西北工业大学研究生创业种子基金(Z2015126)
杨 佳(1991-),女,硕士研究生,CCF会员,研究方向为网络与信息安全;张慧翔,硕士生导师,CCF会员,研究方向为网络与信息安全。
http://www.cnki.net/kcms/detail/61.1450.TP.20160104.1510.044.html
TP31
A
1673-629X(2016)01-0086-04
10.3969/j.issn.1673-629X.2016.01.018