一种改进贝叶斯模型的Android恶意软件流量特征分析技术

2018-03-27 01:26吴向前
小型微型计算机系统 2018年2期
关键词:贝叶斯数据包分类器

吴 非,裴 源,吴向前

(新疆大学 信息科学与工程学院,乌鲁木齐 830046)

1 引 言

根据第三方权威统计机构Statistics Portal最近的统计报告显示,Android操作系统的全球市场占有率高居第一为86.2%,并遥遥领先其他的操作系统.所以Android操作系统可以称为当下主流的移动操作系统并且仍然拥有很大的市场潜力.此外,目前所有基于Android操作系统的应用软件几乎都会在使用期间访问互联网或者必须在联网模式下才能正常运行,鉴于此,对Android系统的网络访问和流量监控就变的尤为重要.尤其是在进行Android恶意软件检测的时候,网络流量特征可作为区分正常app和恶意app的重要依据.根据360官方的统计数据,在2016年第二季度,360互联网安全中心共截获Android新增恶意程序样本426万个,平均每天截获新增手机恶意程序样本近4.7万个,累计监测到用户感染恶意程序6180万人次,平均每天恶意程序感染量达到67.9万人次,新增的恶意软件主要以资费消耗,隐私窃取为主1.由此可见Android系统安全形势依然严峻[1].

目前而言,Android恶意软件检测总体可分为两大类,一类是采用基于特征值检测技术的静态分析方法.特征值检测是目前大多数安全产品使用的检测技术,该技术主要原理是根据特定的规则对目标文件进行扫描并提取出特征值与病毒库中已有的特征按照匹配算法进行完全匹配或者相似度计算,若结果超过规定阈值,则判定为恶意软件.其优点是技术原理简单,容易实现,但缺点也很明显,占用系统资源、需要建立特征库、存在误报情况.另一类则是基于启发式检测技术的动态分析方法,动态启发是指在系统中设置若干的特征点来监控软件行为并以此来判断其是否属于恶意软件.动态分析方法耗费资源且对实时性要求高,需要对软件运行期间的行为特征进行捕获和识别[2].但是,在对Android应用产生的流量特征上国内外研究相对较少,Anshul Arora等人提出了一种基于流量特征的Android恶意软件识别方法,但实验样本过少,使用的J48决策树算法虽然能够达到较高准确率但具有一定局限性[3].吴雪萍等人提出了一种基于流量相似度的Android二次打包应用检测技术,通过计算特征的相似度来判定二次打包的应用,其采用五元组方法作为数据流唯一标示,该方法主要用来判断是否有广告通过二次打包植入[4].王晓飞等人通过对恶意HTTP流量的不同特征量提取、合并和聚类等方法为Android恶意应用自动构建网络特征签名库,并证明了其有效性和准确性[5].

笔者通过对以上文献的分析和研究,基于已有的朴素贝叶斯算法提出一种改进的贝叶斯分类模型用于分析Android应用的流量特征,主要从3个方面对算法进行了改进:

1)引入乘数取自然对数方法修正了运算结果下溢的情况,同时降低了算法的时间复杂度.

2)引入拉普拉斯平滑因子修正了特征属性的划分未出现导致整体运算结果为0的情况.

3)在计算特征属性划分时进行了细化处理,对于离散值统计训练样本中各个划分在每个类别出现的频率,对于连续值不如假设其服从高斯分布[6],计算出训练样本中各类别下此特征项划分的均值和标准差代入求出估计值g(x,η,σ).

改进的贝叶斯模型可用于分类和分析应用软件在运行期间产生的网络流量,通过比对正常软件和恶意软件产生流量的差异性来实现恶意软件的识别和检测,在一定程度上对Android恶意软件检测提供了新的思路和方法.

2 基于改进贝叶斯的分类器模型

2.1 算法简述

朴素贝叶斯[7,8]是一种结合了分类和属性的分布式函数,通过计算样本的联合概率来估计样本的分类.正常情况下:假设随机实验E的样本空间是S,A为E的事件且P(A)>0,B1,B2,…,Bn为S的一个划分,则在事件A发生的条件下Bi发生的概率为:

(1)

其中,P(Bi)为先验概率,可以从训练数据中得到,P(Bi|A)为后验概率,指得到结果后重新修正的概率.样本Xe的分类标记可以由集合{C1,C2,…,Cm}表示.Xe属于类别Ck的条件概率公式可以写成:

(2)

P(Ck)是Ck的先验概率,可以通过计算Ck在整个训练集中的比例来得到.P(Xe)是一个常量,表示样本Xe的边缘概率.P(Xe|Ck)是样本Xe属于类别Ck的条件概率,可以从训练数据中得到.样本Xe的特征可以用一组维度为n的特征向量(x1,x2,…,xn)T来表示,则P(Xe|Ck)的概率可以表示为:

P(Xe|Ck)=P(x1,x2,…,xn|Ck)

(3)

由于朴素贝叶斯的模型假设所有变量对分类均是有用的,即输出依赖所有的属性:

(4)

把公式(3),(4)代入公式(2)后得到:

(5)

定义X为输入空间上的随机变量,Y为定义在输出空间上的随机变量,则朴素贝叶斯分类器可用公式表示为:

(6)

2.2 改进的朴素贝叶斯算法

传统的朴素贝叶斯算法存在一定的不足且由于流量特征的复杂性无法直接应用,经过改进的朴素贝叶斯算法不仅提高了算法效率而且能够适用于流量特征分类,改进算法[9,10]如下:

算法.改进的朴素贝叶斯算法

输出:T′的分类

1)预处理:

i.计算每个特征的信息增益值并降序排列.

gain(x(j))=info(Ck)-infox(j)(Ck)

ii.若出现特征项划分未出现,即P(aji|Ck)=0情况,采用拉普拉斯校准进行数值修正.(m为第j个特征可能取到的所有值的个数)

iii.在进行乘法运算时采用乘数取自然对数法对运算结果进行修正.

2)计算先验概率以及条件概率

i.当特征属性为离散随机变量时,进行频率统计

ii.当特征属性为连续随机变量时,引入高斯分布

2.3 模型评价

对改进的贝叶斯分类器模型的评价标准采用受试者操作特性曲线(ROC)、准确率(ACC)和曲线下面积(AUC).

准确率是反映分类器性能的标准,其定义非常简单即将正样本预测为正样本,将负样本预测为负样本,ACC=(TP+TN)/(TP+TN+FP+FN).其中True Positive(真正,TP)被模型预测为正的正样本;True Negative(真负,TN)被模型预测为负的负样本;False Positive(假正,FP)被模型预测为正的负样本;False Negative(假负,FN)被模型预测为负的正样本.

ROC曲线是反映分类器优劣的标准,以真正率(TPR)为Y轴,假正率(FPR)为X轴,若曲线越接近左上角则说明分类器性能越好.

AUC是进行分类器性能判定的辅助参考,即当ROC曲线无法准确和清晰反映多个分类器的分类效果时,则进行AUC值比较,越大说明分类器性能越好.

3 实验与测试

3.1 样本选择

以每一个Android样本的流量为特征属性,采用改进的朴素贝叶斯算法对流量进行分类,找出恶意软件与正常软件之间流量特征的区别.实验的正常软件来自于Googleplay涵盖了所有应用类别,恶意样本来自于Android Malware Genome Project[11]和https://virusshare.com,包含全部27类在运行期间连接互联网并会产生数据流量的恶意软件,但后经实验证明只有其中的13类是有效的,如表1所示.导致这种情况的原因可能是远程服务器已被关闭或被用于其他用途[12].

表1 具有网络行为的恶意软件家族
Table 1 Malware family with network behavior

恶意软件特点恶意软件特点AnserverBot源代码混淆程度高,动态加载恶意代码BaseBridge拥有发送和读取短信权限,并能够使安全软件停止工作BgServ收集个人信息如IMEI,手机号码等上传至指定服务器DroidDream收集并上传IMEI,IMSI,手机号码等,与BgServ类似DroidDreamLightDroidDream的变种,增强了恶意行为的隐蔽性DroidKungFu1收集并上传IMEI,手机型号,Android版本号等DroidKungFu2DroidKung的变种,增加了远程命令和控制服务器DroidKungFu3高度混淆了源代码,并隐藏和加密了所有与恶意软件相关的原生二进制文件GoldDream收集并上传IMEI和IMSI到指定服务器jSMSHider收集并上传IMSI和手机号码至指定服务器Pjapps收集并上传IMEI、设备编号、SIM卡序列号至指定服务器Plankton感染其他良性APP同时上传设备ID和已获得的权限信息RogueLemon在用户不知情的情况下发送短信并能够接收远程服务器控制指令

3.2 数据收集

在一台连接互联网的主机上运行Android模拟器,为模拟器上单独设置代理服务器并保证模拟器中的应用程序能够访问网络,之后在模拟器上安装一个恶意软件,并让它保持运行24小时,如图1所示.当恶意软件在模拟器中开始运行时,在Linux终端下同时调用tcpdump命令捕获其网络流量,编写脚本文件如图2.导出的pcap文件使用Wireshark进行分析并提取特征值,正常软件的数据收集过程亦如此.

3.3 特征选择

采用IG特征选择算法[13],计算每个特征在分类器中的信息增益,IG值越大则说明此特征越重要.流量特征的IG值降序排列选出的16个特征如表2所示.

图1 实验部署设置Fig.1 Experimental deployment settings

图2 脚本文件Fig.2 Script file

表2 IG算法优化排列的网络流量特征
Table 2 IG algorithm to optimize the network traffic characteristics

流量特征IG值流量特征IG值平均每秒接收字节数0.295相邻数据包的发送时间间隔0.192接收/发送字节比率0.287相邻数据包的接收时间间隔0.187发送数据流中数据包平均数0.284平均每秒发送字节数0.156接收数据流中数据包平均数0.267连接数/目标IP数比率0.132接收数据流的平均字节数0.261数据流平均持续时间0.121发送数据流的平均字节数0.243平均每秒发送数据包数0.081平均数据包大小0.233平均每秒接收数据包数0.061接收/发送数据包比率0.218流量组成(TCP,%)0.049

3.4 分类模型

分类模型总体分为3个阶段,如图3所示.第一阶段为数据准备阶段,本次实验总共收集了486个样本,其中217个恶意样本,269个正常样本.整个实验采用十折交叉验证法,并进行重复实验取平均值.数据收集过程如3.2所述,提取特征全集后采用IG特征选择算法,优化选择具有区分度的特征优化集α,作为分类器的输入.第二阶段为分类器训练阶段,核心部分是计算训练样本中的先验概率和条件概率,这将直接决定分类器的判定结果,训练过程中适度调节样本分布,以得到最佳效果.第三阶段为分类器测试阶段,核心部分是对测试样本进行分类并对分类器效果进行评估.在本文已改进的贝叶斯模型分类方法中,需要计算测试样本在类别划分时的先验概率和样本的各特征在每个类别下的条件概率,在进行概率运算时辅以乘数取自然对数和拉普拉斯校准可以使运算结果更加准确,更加有效的区分恶意软件和正常软件.最后将预测结果与真实的类别相比较,并使用ACC,ROC,AUC对分类器的分类效果进行客观评价.

图3 改进的朴素贝叶斯模型Fig.3 Improved naive Bayes model

4 结果分析及结论

在整个实验中,笔者发现恶意软件普遍是周期性的接收和发送数据,如AnserverBot每两个小时访问远程服务器一次,Plankton每5秒向远程服务器发送一次数据同时接收远程服务器发来的指令等.在16个流量特征中有5个特征在恶意软件和正常软件连接网络时的数据表现上差别较大,它们是收到/发送字节比率、平均每秒收到的字节数、发送数据流含数据包平均数、收到的每个数据流包含数据包的平均数、收到的每个数据流的平均字节数[14],如表3所示.

表3 特征全集统计表
Table 3 Complete statistics list

流量特征恶意APP正常APP流量特征恶意APP正常APP∗收发比(Bytes)[0.15,3.66][5.5,8.1]发送时间间隔[1,120][0.5,1]∗平均每秒接收字节数[35,1200][12000,18000]数据流平均持续时间(S)[0.5,60][5,15]∗发送数据流中数据包平均数[4,7][21,55]发送数据流的平均字节数[500,1800][2500,4200]∗接收数据流中数据包平均数[2,6][27,60]连接数/目标IP数比率[1,8][2,5]∗接收数据流的平均字节数[800,5000][24000,100000]收发比(Packets)[0.76,1][1,6]接收时间间隔[1,116][0.5,30]平均每秒发送字节数[15,4560][5,2500]平均数据包大小(Bytes)[86,360][220,900]流量组成(TCP,%)[86.26,91.23][90.12,92.25]平均每秒发送数据包数[1,24][12,19]平均每秒收到数据包数[1,24][16,25]

通过IG算法,依次选取信息增益较大的特征作为分类器输入,不同特征的ROC、AUC比较和准确率如图4图5所示.

将本文基于流量特征的恶意软件检测方法与基于权限的恶意软件检测方法作对比,对比数据如表4.

图4 不同特征的ROC曲线Fig.4 ROCcurveswithdifferentcharacteristics图5 不同特征的准确率比较Fig.5 Comparisonofaccuracyofdifferentfeatures

从上述实验结果和对比可以得出以下结论:

1)基于流量特征的分析方法应用于Android恶意软件检测是可行的,而且相比基于权限特征的检测方法[9]能够在使用更少特征的情况下达到更高的准确率.

2)在信息论中,期望信息越小,信息增益越大,从而纯度越高.从图5中可以看出,当特征数达到一定量后,准确率和AUC趋于稳定,说明通过IG算法选出的特征能够在一定程度上达到去噪的目的,舍弃一些对分类效果不影响或负影响的特征,能够达到更好的分类效果.

3)该检测方法具有一定的局限性,即被检测的Android应用需要连接互联网并采集一段时间内的网络流量信息.

5 结束语

本文根据对正常APP和恶意APP的流量特征进行提取,同时采用IG特征选择法和改进的朴素贝叶斯算法建立了基于流量特征的Android恶意软件分类器模型,在对具有网络行为的恶意软件检测中有较好的表现.针对静态检测无法准确识别和判定的应用提供了新的解决思路和方法.后续研究工作中可以将该方法与静态检测相结合,针对采用动态代码加载、源代码高度混淆的恶意软件提高检测识别率,同时进一步增加恶意应用样本库,并尝试寻找更有区分度的特征.

表4 不同分类器准确率和AUC比较
Table 4 Accuracy and AUC of different classifiers comparison

基于特征数10203050100权限准确率0.8840.9120.9140.9190.925信息AUC0.9170.9610.9610.9690.957基于特征数58111416流量准确率0.8640.8910.9120.9260.930特征AUC0.8790.9150.9290.9510.954

[1] Jiang X,Zhou Y.Dissecting Android malware:characterization and evolution[C].IEEE Symposium on Security & Privacy (SP),IEEE,2012:95-109.

[2] Peng Guo-jun,Li Jing-wen,Sun Run-kang,et al.Android malware detection research and development[J].Journal of Wuhan University (Science Edition),2015,61(1):21-33.

[3] Arora A,Garg S,Peddoju S K.Malware detection using network traffic analysis in Android based mobile devices[C].Eighth International Conference on Next Generation Mobile Apps,Services and Technologies (NGMAST 2014),IEEE,2014:66-71.

[4] Wu Xue-ping,Zhang Da-fang,Su Xin,et al.Based-on network traffic′s similarity to detect Android repackaged application[J].Journal of Chinese Computer Systems,2015,36(5):954-958.

[5] Wang Xiao-fei.Research on Android malicious application communication mechanism and traffic feature extraction based on HTTP[D].Changsha:Hunan University,2014.

[6] Zaburdaev V Y.Gaussian signals,correlation matrices,and sample path properties[M].A First Course in Statistics for Signal Analysis.Boston:Birkhäuser,2006.

[7] Li Hang.Statistical learning method[M].Beijing:Tsinghua University Press,2012.

[8] Harrington P.Machine learning in action[M]. Machine Learning in Action,New York:Manning Publications Co.2012.

[9] Xu Yan-ping,Wu Chun-hua,Hou Mei-jia,et al.Android malware detection technology based on improved naïve Bayesian[J].Journal of Beijing University of Posts and Telecommunications,2016,39(2):43-47.

[10] Wang Hui,Chen Hong-yu,Liu Shu-fen.Intrusion detection system based on improved naïve Bayesian algorithm[J].Computer Science,2014,41(4):111-115.

[11] Chandramohan M,Tan H B K.Detection of mobile malware in the wild[J].Computer,2012,45(9):65-71.

[12] Jiang X,Zhou Y.A survey of Android malware[M].Android Malware,Berlin:Springer,2013.

[13] Zhong Ning,Yin Xu-ri,Chen Shi-fu.Optimal attribute set discovery method based on information gain[J].Journal of Chinese Computer Systems,2002,23(4):444-446.

[14] Feizollah A,Anuar N B,Salleh R,et al.A review on feature selection in mobile malware detection[J].Digital Investigation the International Journal of Digital Forensics & Incident Response,2015,13(C):22-37.

附中文参考文献:

[2] 彭国军,李晶雯,孙润康,等.Android 恶意软件检测研究与进展[J].武汉大学学报(理学版),2015,61(1):21-33.

[4] 吴雪平,张大方,苏 欣,等.基于流量相似度的Android二次打包应用的检测技术研究[J].小型微型计算机系统,2015,36(5):954-958.

[5] 王晓飞.基于HTTP的安卓恶意应用通信机制及流量特征提取研究[D].长沙:湖南大学,2014.

[7] 李 航.统计学习方法[M].北京:清华大学出版社,2012.

[9] 许艳萍,伍淳华,侯美佳,等.基于改进朴素贝叶斯的Android恶意应用检测技术[J].北京邮电大学学报,2016,39(2):43-47.

[10] 王 辉,陈泓予,刘淑芬.基于改进朴素贝叶斯算法的入侵检测系统[J].计算机科学,2014,41(4):111-115.

[13] 钟 宁,尹旭日,陈世福.基于信息增益的最佳属性集发现方法[J].小型微型计算机系统,2002,23(4):444-446.

猜你喜欢
贝叶斯数据包分类器
学贯中西(6):阐述ML分类器的工作流程
二维隐蔽时间信道构建的研究*
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
基于朴素Bayes组合的简易集成分类器①
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
一种自适应子融合集成多分类器方法
C#串口高效可靠的接收方案设计
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究