APP下载

基于半监督学习的Android恶意软件检测方法

2018-01-09陈志刚王青国

电脑知识与技术 2017年34期

陈志刚+王青国

摘要:Android操作系统作为当前最为流行的智能手机应用平台,但受到各种恶意软件的攻击。目前已有研究基于抽取的恶意软件特征来构建机器学习分类器完成恶意软件检测,但实际应用中我们通常仅能获取少量的标记数据和大量的无标记数据,因此如何有效地利用少量的标记数据集和大量的无标记数据成为当前研究一个挑战。为此,该文提出了一种基于半监督学习的恶意软件检测方法。首先,我们选取了一些特征表征隐藏在Android恶意软件中的恶意代码;然后,我们基于少量的标记数据和大量的无标记数据构建半监督分类模型,通过类EM迭代算法优化朴素贝叶斯分类器;最后,通过公开数据集VirusShare验证算法的有效性。

关键词:混合类型恶意软件攻击;半监督检测器;EM迭代;恶意软件检测;VirusShare

中图分类号:TP206+.3 文献标识码:A 文章编号:1009-3044(2017)34-0265-04

Abstract: Android, one of most popular open source mobile operating systems, is confronted with lots of malicious threats. Although many studies have been presented to malware detection, which do not agree with the fact that, in practice, we are often given only a few labeled but a majority of unlabeled data. How to effectively utilize a small number of labeled data sets and a large number of unlabeled data has become a challenge problem for android malware detection. In this paper, we propose a semi-supervised learning-based method to detect the android malware (SSAMD for short). Firstly, we select some features combination of permissions and resources. Secondly, a semi-supervised learning system is employed for the categorization of both labeled and unlabeled data. Extensive experiments on VirusShare datasets demonstrate the effective of our presented algorithm.

Key words: hybrid malware detection; semi-supervised detectors; EM iterative; malware detection; VirusShare

1 概述

Android操作系統是最常用的智能手机平台,随着该系统的不断发展以及Android生态系统也在不断增长,目前在市场上发布的应用软件达数百万个,因此需要快速有效地机制对恶意软件进行分析和检测[1]。通常这些恶意软件是通过重新包装流行的合法的具有相似恶意代码的应用程序,攻击者通过注入其恶意代码在良性应用程序上,通过第三方平台传播这些恶意软件,对用户隐私信息构成了巨大威胁。由于Android系统的开发门槛较低和Android系统源码的开源性,Android系统的漏洞很容易受到病毒、特洛伊木马和蠕虫等各种恶意软件威胁的影响[2]。此外,Enck等人[3]发现Android的内置安全功能在很大程度上是不够的,甚至是非恶意的程序可以(无意)公开机密信息。据MetaIntell 机构2014研究报告报道,在Top-500个Android应用程序中大概有460个应用在下载到Android设备时存在安全或隐私风险[4]。以目前被认为最值得信赖的安全的Google Play商城为例,已有很多研究指出目前有大量的恶意软件已经绕过Google Play商城的安全检测。由于恶意攻击者想要影响大量的受众,其多针对目前比较流行的应用软件如:Facebook、Twitter、微博等。借助在应用软件中的这些漏洞,恶意软件可以在手机中实现各种恶意行为。智能手机上的恶意软件可能会使手机部分或完全无法使用;造成不必要的花费;窃取私人信息(可能通过网络钓鱼和社会工程)或感染用户电话簿中的每个用户信息等[5,6]。

目前的针对恶意软件检测的研究主要集中于程序分析和机器学习检测方法。首先通过提取程序中的语义特征(如:代码片段、调用函数等)通过机器学习分类器来发现恶意代码和行为模式[7-10]。同时,更高层的语义表达如调用图(调用函数构建的语义图)、控制语句和数据流图同样用于恶意软件检测[11-12]。目前的基于机器学习的恶意软件方法多集中于监督和无监督检测方法,但实际应用中我们通常仅能获取少量的标记数据和大量的无标记数据,因此如何有效地利用少量的标记数据集和大量的无标记数据成为当前研究一个挑战。

为此,本文提出了一种基于半监督学习的恶意软件检测方法。首先,我们选取了一些特征表征隐藏在Android恶意软件中的恶意代码;然后,我们基于少量的标记数据和大量的无标记数据构建半监督分类模型,将数据分为正常软件和恶意软件两个类别;最后,通过公开数据集验证算法有效性。

2 相关工作

目前的手机虚假软件检测方法主要基于行为模式构建机器学习分类器完成恶意软件检测。一些方法通过监控每个软件的电池耗费量,并捕捉反常消耗行为[13]。同时,也有些方法通过监控系统调用和检测异常系统调用模式[14]。此外,还有一些方法通过与比较著名的恶意软件进行比较[15]或启发式算法实现恶意软件检测[16]。endprint

多数学者主要基于主机的入侵检测系统(Host-based Intrusion Detection Systems, HIDS),即通过异常行为或基于规则的方法来抽取和分析一些表明恶意软件的特征。Yap和Ewe提出了行为检测器来检测手机系统的恶意行为[17],其提出了一个概念证明方案来检测诺基亚手机Symbian操作系统的恶意软件行为,并检测到了一个模拟的尝试使用未经授权的消息服务器的木马软件。由于需要预先定义特定的恶意行为模式,显然该方法难以检测不断更新攻击模式的恶意软件行为。Narayanan等人基于比特字符串流通过在线学习方法实现引导扇区病毒软件[7]。Schultz则比较了基于三种不同的特征集(DLL和系统调用、二进制程序中的字符串以及二进制的原始十六进制表达)训练了三种机器学习算法,并比较了三种算法的优缺点[18]。由于人工标记软件是否是恶意软件的成本比较高,上述机器学习方法忽视了我们一般只能获取少量的标记数据,因此,本位提出了半监督学习的恶意软件检测方法,并通过实验验证了我们方法能够取得较好的准确率和召回率。

3 半监督学习检测器设计

本文基于开源包Androguard 来访问和抽取Android软件的特征,Androguard提供了整套的界面用于分析和逆向工程Android应用程序。由于Androguard提供了完整的权限和资源两大类特征,我们基于该这两类特征进一步提出了半监督学习的实现虚假软件检测,首先扩展朴素贝叶斯分类器,并通过EM迭代将标记数据和无标记数据集成起来。

3.1 初始分类器构建

将上述结果,我们可产生EM迭代过程。简单来说,本节的半监督迭代算法交替更新两个过程:第一步为期望(E)步,利用当前估计的参数来计算对数似然的期望值;第二步为最大化(M)步,重新寻找能使E步产生的似然期望最大化的参数值均值[μkl]和方差[σ2kl];然后新得到的参数重新被用于E步,直至收敛到局部最优解。

4 实验设计和结果分析

在本节中我们主要讨论实验数据、评估标准、比较对象,最后给出了结果表和分析。

4.1 实验设计

数据集:实验数据中的恶意软件样本来自于VirusShare,我们从该样本库中选取了4,129个恶意软件,而正常软件样本选至我国的Android市场,并通过360和腾讯手机管家等反病毒软件进行验证为正常软件的样本作为正常软件,我们选取了4,200个正常软件。

比较对象:为了评估我们提出的SSAMD模型的性能,我们选取了NavieBayes (NB)、C4.5和无监督检测器PCA与我们算法的进行比较,其中NB和C4.5基于Weka软件实现,而PCA则基于MATLAB编程实现,且假设恶意软件个数已知。

其中TP表示发现的恶意软数量,TN表示正常采样数据被检测为恶意软件数量,FN则表示没被检测器发现的恶意软件数量。通常P和R用于衡量检测器的准确性和完整性,而F则用于衡量总体性能。

4.2 实验参数分析

我们第一组实验主要用于探索参数无标记权重λ的影响,实验过程中采用五则交叉验证的方法进行。试验中分别选取了权限(permission)、資源(resource)和权限+资源三种特征集进行实验,实验选取F-Measure作为评判标准,实验结果如图1所示。从图1中我们可以看出当无标记权重λ=0.4时获得最大值,我们后面的实验将都以λ=0.4作为最终设置。

4.3 实验比较

本小节中主要根据我们提出的SSAMD与NB、C4.5和PCA算法进行比较来证明我们算法的有效性,分别选取了权限、资源和权限+资源三类特征集进行实验,实验结果如表1所示。

从表1可以看出,我们的算法SSAMD取得了最好的检测结果,在其他三类检测器中C4.5取得了最好的结果,而无监督检测器PCA在检测个数已知的情况下同样取得了比NB更好的结果。从不同检测指标角度分析可以看出资源特征对所有的检测器的波动都比较大,而基于权限的检测指标更为稳定一些。将权限和资源两类特征结合,各检测器能够取得更佳的效果。

5 结束语

传统的Android恶意软件检测方法多是基于监督和无监督学习的恶意用户检测方法,这些方法忽视了我们仅能获取商量的标记数据集这一现实。本文提出了一种基于类EM的半监督检测器用于检测Android恶意软件,首先基于权限和资源特征构建特征集,并采用半监督检测器提高检测性能,通过实验分析取得了较好的效果。实验结果表明,本文提出的半监督恶意软件检测方法在准确度和效率方面优于许多已有的机器学习检测方法。因此,本文的方法是可行且高效的。

注释:

1. http://www.cs.waikato.ac.nz/ml/weka/

参考文献:

[1] SUAREZ-TANGIL G, DASH S K, AHMADI M, et al. DroidSieve: Fast and accurate classification of obfuscated android malware[C]. Proceedings of the Seventh ACM on Conference on Data and Application Security and Privacy, New York, NY: ACM, 2017: 309-320.

[2] ZHANG M, YIN H. Semantics-Aware Android Malware Classification[M]. Android Application Security. Springer International Publishing, 2016: 19-43.endprint

[3] ENCK W, OCTEAU D, McDANIEL P, and et al. A Study of Android Application Security[C]. USENIX security symposium, New York, NY: ACL, 2011, 2: 2.

[4] MetaIntell Identifies Enterprise Security Risks, Privacy Risks and Data leakage in 92% of Top 500 Android Mobile Applications In businesswire [EB/OL], Jan 2014, http://wwwbusinesswire.com/

[5] MALIK J, KAUSHAL R. CREDROID: Android malware detection by network traffic analysis[C]. Proceedings of the 1st ACM Workshop on Privacy-Aware Mobile Computing New York, NY: ACM, 2016: 28-36.

[6] GRACE M, ZHOU Y, ZHANG Q, et al. Riskranker: scalable and accurate zero-day android malware detection[C]. Proceedings of the 10th international conference on Mobile systems, applications, and services New York, NY: ACM, 2012: 281-294.

[7] NARAYANAN A, YANG L, CHEN L, et al. Adaptive and scalable Android malware detection through online learning[C]. 2016 International Joint Conference on Neural Networks (IJCNN). New York, NY: IEEE, 2016: 2484-2491.

[8] WU S, WANG P, LI X, and et al. Effective detection of android malware Based on the usage of data flow APIs and machine learning[J]. Information and Software Technology, 2016, 75: 17-25.

[9] ALLIX K, BISSYANDE T F, JEROME Q, and et al. Empirical assessment of machine learning-based malware detectors for Android[J]. Empirical Software Engineering, 2016, 21(1):183-211.

[10] CHEN W, ASPINALL D, GORDON A D, and et al. More semantics more robust: Improving android malware classifiers[C]. Proceedings of the 9th ACM Conference on Security & Privacy in Wireless and Mobile Networks New York, NY: ACM, 2016: 147-158.

[11] ZHANG M, DUAN Y, YIN H, and et al. Semantics-aware android malware classification using weighted contextual api dependency graphs[C]. Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security New York, NY: ACM, 2014: 1105-1116.

[12] GASCON H, YAMAAGUCHI F, ARP D, and et al. Structural detection of android malware using embedded call graphs[C]. Proceedings of the 2013 ACM workshop on Artificial intelligence and security New York, NY: ACM, 2013: 45-54.

[13] KIM H, SMITH J, SHIN K G. Detecting energy-greedy anomalies and mobile malware variants[C]. Proceedings of the 6th international conference on Mobile systems, applications, and services New York, NY: ACM, 2008: 239-252.

[14] XIE L, ZHANG X, SEIFERT J P, and et al. pBMDS: a behavior-based malware detection system for cellphone devices[C]. Proceedings of the third ACM conference on Wireless network security, New York, NY: ACM, 2010: 37-48.endprint

[15] BOSE A, HU X, SHIN K G, and et al. Behavioral detection of malware on mobile handsets[C]. Proceedings of the 6th international conference on Mobile systems, applications, and services. New York, NY: ACM, 2008: 225-238.

[16] ZHOU Y, WANG Z, ZHOU W, and et al. Hey, you, get off of my market: detecting malicious apps in official and alternative android markets[J]. Network & Distributed System Security Symposium, 2012, 25(4):50-52.

[17] YAP T S, EWE H T. A mobile phone malicious software detection model with behavior checker[C]. International Conference Human Society & Internet, Springer Berlin Heidelberg, 2005: 57-65.

[18] SCHULTZ M G, ESKIN E, ZADOK F, and et al. Data mining methods for detection of new malicious executables[C]. Security and Privacy, 2001. S&P 2001. Proceedings. 2001 IEEE Symposium on. IEEE, 2001: 38-49.

[19] NIGAM K, McCALLUM A K, THRUM S, and et al. Text classification from labeled and unlabeled documents using EM[J]. Machine learning, 2000, 39(2):103-134.endprint