APP下载

基于随机森林的分层木马检测技术研究*

2016-07-05吴金龙石晓飞

通信技术 2016年4期
关键词:随机森林

吴金龙,石晓飞,许 佳,史 军

(江南计算技术研究所,江苏 无锡 214083)



基于随机森林的分层木马检测技术研究*

吴金龙,石晓飞,许佳,史军

(江南计算技术研究所,江苏 无锡 214083)

摘要:为了应对以未知木马为核心的APT类攻击带来的威胁,对基于数据流的木马检测技术进行了研究。提出一种基于分层的多维通信特征的木马检测方法,检测网络数据流中的木马数据。在对已有分类检测算法调研的基础上,创新的将随机森林算法应用于训练集,以建立检测模型,创新的建立了分层评分策略,为分析人员提供可信的检测结果。通过实验将该方法与三种常用的机器学习算法对比,在数据流的检测方面,该方法的准确率至少提高了1.8%,误报率最少降低了2.77%。

关键词:木马检测; 随机森林; 多维特征; APT攻击;分层检测

0引言

随着网络的普及和广泛应用,随之而来的安全问题日益凸出。近年来,网民的上网呈现出网民规模化和上网方式多样化的特点,网民的上网环境异常复杂。据瑞星报告指出,2015 年,新增病毒样本3,715万余个,其中木马病毒占总体病毒的 61.79%,报告期内,共有 4.75 亿人次网民被病毒感染,人均病毒感染次数为 35.65 次。(数据引自《瑞星 2015 年中国信息安全报告》[1])。面对如此规模的网民数和多样的上网方式,保护用户隐私数据,降低上网风险的问题尤为凸出。

除个人终端外,企业用户终端也常成为木马的受害者。据FireEye的调查报告指出[2]。在企业网络中,有95%以上的主机曾被木马植入。然而,在这些被植入的主机中,仅不到10%的木马样本被安全软件和防护设备检测。未知木马由于较难及时捕获,因而是控制和实施APT等高危攻击的核心环节。因此,传统的木马检测方法都很难发挥有效的作用。

本文旨在提出一种基于随机森林的木马检测方法,通过对网络数据流的分类,提前检测出木马行为,及时为用户预警,以降低用户上网的风险,加强用户网络环境的安全性。

1研究现状

1.1现有的木马检测技术

目前木马检测技术主要分为以下两类[3]。

1.1.1基于主机端

根据上一节介绍,目前上网主机平台多样,且操作系统种类和版本繁杂,其复杂性和多样性导致了检测存在较大的实现难度,且基于主机系统行为的检测方法要求对主机系统平台有非常深入的了解。因此,在现有的技术条件下,单靠主机端的防护软件尚无法实现对木马进行有效检测。

1.1.1基于网络端

目前,基于网络端的数据流木马检测主要分为三种。

一是基于特征匹配及信誉值的检测技术,该类检测基于已有样本的特征和信誉值判定未知数据的属性。二是基于协议分析的检测技术,以数据流中采用的协议与已知协议对比,如有不同则认为异常。这两类的检测方法的缺陷在于对伪装和变形的木马数据检测效果较差,如隧道加密或采用代理方式通信,此类技术提高了各木马程序的隐蔽性和生存周期,隐藏了木马的特征[4]。三是基于通信行为分析的检测技术。该检测技术是基于木马通信的网络数据流进行检测分类,具有较强的通用性。该技术被认为是最有前景的木马检测方法,代表着该领域未来的发展趋势。文献[5]是基于此类检测技术。本文的研究也是基于此类检测技术。

1.2随机森林用于检测分类现状

随机森林分类器是在决策树这种单一分类器基础上的一种组合分类器。随机森林分类器有以下优点:

(1)其性能和检测率方面,优于单一的分类器。

(2)对异常值和噪声的容忍度好。

(3)不易出现过度拟合[6-9]。

故而,随机森林提出至今,已广泛应用于文本和语言的验证处理、医疗和脸部识别等诸多领域。同时,随机森林的分类方法也较好的应用于邮件过滤、入侵检测等安全领域。然而,目前尚未发现将随机森林的分类方法单纯用于检测网络数据流中的木马数据。

1.3基本思路

不难发现随机森林在入侵检测领域已得到较好的应用,且目前的木马检测领域中,尚未使用随机森林进行数据的分类检测。木马虽是一种广义上的病毒,属于一种特殊的入侵行为,但木马与病毒、蠕虫等其他恶意程序的行为特征有较大的区别。通常病毒、蠕虫等恶意程序会对用户终端系统造成明显的破坏,然而木马行为特点主要是潜伏在用户电脑,监视用户操作,窃取用户文件,收集系统信息。基于木马与普通病毒、蠕虫等其他病毒行为特征的不同,其检测技术不能一概而论,否则,在检测木马数据时,会有较高的误报率和漏报率,无法完成细粒度的木马检测。故,随机森林的方法应用于木马检测领域与应用于入侵检测、异常检测等安全领域是不同的。本文将侧重关注随机森林应用于木马检测领域。

通过加密、变形等技术实现自身隐藏,躲避查杀是木马程序存活的重要特征,然而此类特征是经常变换,不易作为检测依据。然而,木马要实现其完整功能,必有一些可以从端到端的数据流中提取的固定不变的特征。如:基于流量的上传下载特征、基于连接的 “心跳”特征、基于时间的通联时间特征等。因此从数据流的角度进行检测,可以有效解决木马免杀和未知木马检测的问题,也为APT攻击检测提供新的思路。木马在运行中,服务端与客户端的交互更多的是人工的控制和干预。故,基于网络流木马的检测的核心是区分正常通信行为(自动行为)与木马通信行为(人工干预行为)。

本文提出一种快速的基于通信行为多维特征的木马检测方法。分层提取的木马通信行为的多维特征,结合机器学习技术中的随机森林分类算法,建立木马数据流特征模型。创建可以区分木马程序和正常应用程序数据流特征的判定规则集。参照该模型实现的原型系统可通过网络数据流特征判定规则集,有效检测未知木马,并可根据实际环境进行自学习和调整优化,使得该检测方法具有较强的适应能力。

2木马通信行为检测模型

木马要实现自身功能,必然无法使自身通信行为与正常通信行为一致,例如,上传/下载数据量的比例、客户端与服务端之间的“Keep-Alive” 机制(也称为保活机制)等造成了木马与正常数据流的特征差异。木马的功能及自身的特殊性让基于通信行为分析的木马检测技术可行且有效。

2.1分析木马通信行为

不同的木马程序在功能上,针对不同操作系统、不同应用平台,其采用的网络通信协议方面存在很大差异,但它们在通信行为上又具有一定的相似性。通过对大量木马样本进行分析发现:木马通信过程大致分为两个阶段,即连接保持阶段和命令控制阶段。

连接保持阶段不仅包括植入木马后的上线通知,还包括了木马上线之后保持通联的“心跳”机制。攻击者将木马程序植入到目标系统后,攻击者需等待木马植入成功的消息,然后进行远程控制。所以,木马程序植入的成功与否则需要一种通知机制,即上线通知。实际上,上线通知也是一种前期特殊的“心跳”行为,有些木马在上线通知的数据包里包含了“心跳”包。

2.2木马通信行为描述

定义1用D表示所有网络通信数据,C表示正常网络通信数据,T表示木马通信数据,对网络通信行为特征向量F定义如下:

F(D)=F1(D)×F2(D)×…×Fn(D);

D=C∪T;

其中,随机变量Fi(i=1,2,…,n)表示网络通信的单一行为特征属性,并且是多项式时间可计算的。

定义2定义函数SF为与F(D)一致的分类器,其中

SF:F1×F2×…×Fn→{0,1};

其中,SF是多项式时间可计算的, 0是正常通信,1是木马通信,(F,SF)称为木马通信行为检测模型。因此,网络通信行为特征属性提取和分类器设计是实现木马检测的关键。

分析木马通信行为,将木马的通信全过程划分为:连接保持和命令控制这两个阶段。故,检测木马通信行为按照这两个阶段分别定义并检测。相关定义和检测过程如下:

首先,根据木马通信行为分析分阶段提取木马通信行为特征属性Fki和Foi。其中,Fki(i=1,2,…,n)表示木马连接保持阶段的网络通信的行为特征属性,Foi(i=1,2,…,n)表示木马命令控制阶段的网络通信行为特征属性。

然后,根据行为特征属性Fki和Foi的数据类型特点和实际检测要求,选择分类算法构造分类器SFk和SFo,其中,SFk表示木马连接保持阶段的分类器,SFo表示木马命令控制阶段的分类器。

其中,这里0表示正常网络通信,1表示木马通信。

最后,判断分类器的输出结果SFk∪SFo,检测到任意阶段产生报警,就认为存在木马通信行为。

3随机森林分层检测木马

根据定义的木马通信行为,本节将介绍构建随机森林的步骤及基于分层思路的多维特征的选取。

3.1C4.5决策树的局限性

C4.5决策树是一种典型的单分类器,使用单分类器检测木马通信行为具有一些局限性,主要体现在:

(1)C4.5决策树分类器的精度在到达一定指标后,难以继续提高,其检测精度存在不易突破的瓶颈。

(2)一种给定的分类器,其检测的准确率较为依赖实际的检测环境,同样的算法和检测模型在不同的环境,其检测准确率可能差别很大。

(3)在有监督的学习训练过程中,C4.5这类单分类器需要大量的训练数据。

由机器学习领域的研究结论可知,就检测分类效果而言,基于单一分类分类器弱于基于由多分类器组合集成的检测分类器。随机森林检测方法是一种建立在统计分析理论上集成的组合检测分类器。随机森林由多颗决策树组成,它通过组合多个弱分类器,集成一个强分类器的方法克服决策树的局限性,多个分类器通过投票决定最终分类属性,既起到了互补作用提高了检测的稳定性,又降低了个别分类器错误所带来的影响,进而提高了检测分类的准确率。

3.2构建随机森林

本文提出将Random-SMOTE方法结合随机森林算应用于木马通信行为检测。采用Random-SMOTE方法的目的是对数据集抽样预处理,将数量较少的木马样本进行过抽样,以提高稀有类数据所占的比重,降低大类数据的比例,提高稀有类数据中木马行为的识别率。随后用随机森林的方法训练预处理后的数据集,生成检测模型。

定义T为原训练数据集中的木马数据流样本集,S为正常应用数据流样本集,随机森林的生成步骤如下:

(1)首先对木马数据流样本集T进行过抽样,根据Random-SMOTE方法和过抽样倍率N,为每个木马数据流样本随机生成N个新样本;将新的样本加入原训练数据集,形成新的木马数据流样本集T′,以减少样本集中木马样本和正常样本在个数上的不平衡。

(3)基于每个自助样本,构建一棵决策树。采用Forest-RI(ForestRandomInputs,随机选择输入变量)方法。假设属性特征有M维,从M维特征中随机抽取Mca维特征作为候选特征。选择这Mca个特征上最好的分裂方式对决策树每个节点进行分裂,使每个决策树都得到最大限度的生长,不进行剪枝。

(4)重复步骤(2)和步骤(3),可以得到多棵决策树,并且在随机森林生长过程中Mca值保持不变。

(5)让每一棵决策树对输入的未知数据流X进行投票。计算所有的投票数,找出其中票数最高的一个就是数据流X的分类标签。

3.3分层检测

作者在设计分层提取多维通信设计的基础上,设计了可信度评分策略,为分析人员提供结果可信度的结果。

3.3.1基本思路

上文描述的是单个随机森林的生成过程。在此基础上,作者从基于IP协议的网络层会话数据流、基于TCP协议的传输层会话数据流和基于HTTP协议的应用层会话数据流三个层面分别提取木马的多维特征属性。在数据预处理时,对原始捕获的PCAP数据包,按照IP会话、TCP会话和HTTP会话三个层次分别提取数据流通信特征,进而构建三个随机森林分类器,分别记为RFip、RFtcp和RFhttp,用以从不同层面检测数据流行为特征属性。判断三个分类器的输出结果RFip∪RFtcp∪RFhttp,检测到任意层面产生异常数据流报警,就认为存在木马通信行为。

3.3.2分层多维特征选取

分别按照网络层、传输层和应用层简单例举选取的多维特征:

基于IP协议的网络层会话特征:

(1)IP会话下载数据量/IP会话上传数据量特征:控制端流向被控端的字节数与反方向字节数的比较,该行为特征值一般小于1。

(2)IP会话时长/主连接时长:IP会话数据流的持续时间与主连接持续时间之比,该行为特征值一定大于1,但是木马程序的取值会显著小于正常网络应用。

基于TCP协议的传输层会话特征:

(1)TCP会话时长:命令交互、文件资源搜索和文件传输需要大量的等待时间,再加上人类的思考时间,使得通信会话持续时间较长。

(2)TCP会话上传数据量:木马程序根据控制命令将被控主机的信息和文件资源不断上传,导致会话上传数据量偏大。

基于HTTP协议的应用层会话特征:

(1)HTTP会话数据包集参差度:正常HTTP应用的数据包集参差度对其总尺寸的分布体现出分段性和有界性,而HTTP隧道却跟其差异很大。

(2)HTTPRequest数据包信息熵特征:在信息层面提供一个评估正常HTTP通信和HTTP隧道通信行为的一个指标。

以上从3个会话层例分别举了2个特征作为随机森林决策树的判断条件。类似的特征可以选取很多,然而,需要根据实验和实际情况决定在每一层采用哪些特征。

3.3.3可信度评分策略

参数λ的图像如图1所示

图1 λ的图像

记检测结果中,分别命中网络层、传输层、应用层的协议为0x0001、0x0010、0x0100,三层均命中则为0x0111,分别定义Credit1、Credit2、Credit3表示协议命中一层、两层和三层。

(1)检测结果,协议命中其中一层。

If(protocol == (0x0001, 0x0010, 0x0100))

Credit1=Standpoint*λ;

则,48.4≤Credit1≤55

(2)检测结果,协议命中其中两层。

If(protocol == (0x0011, 0x0101, 0x0110))

Credit2=Credit1*1.35*λ;

则,57.5≤Credit2≤74.25

(3)检测结果,协议三层全部命中

If(protocol == (0x0111))

Credit3=Credit2*1.25*λ;

则,63.25≤Credit3≤92.81

4实验分析

为了更好的验证本文的方法。本文采用两组试验分析对比实验结果。

4.1实验一

第一组实验数据是:综合搜集结合网络上2015年以前相关文献实验数据或有代表性的61款样本,包括:PcShell、灰鸽子、Gh0st、ZXShell等,共325个木马通信数据流作为样本数据。选取MSN、ICQ、QQ、skype等65款正常应用的通信数据,共1 175个数据流作为正常数据。正常和样本数据合计1 500个数据流。

为了对比试验结果,更好的评价本文的方法。选取:C4.5决策树[10]、SVM[11-12]、Naive Bayes[5,11]作为木马检测算法。通过开源机器学习模块“scikit-learn”[13]实现了对应算法。将这些方法与本文分层检测的随机森林(记为MRF)的检测方法进行对比。将C4.5决策树(记为C4.5)、SVM和Naive Bayes算法(记为NB)用于检测木马数据,四种方法对1500个数据流的检测结果,按照性能评价指标参数汇总如表1所示。

表1 4种机器学习算法的性能评价指标

通过实验的对比结果,不难看出,基于随机森林的检测方法其准确率(Accuracy,ACC)最高,假负率(False Negative Rate,FNR)最低,真正率(True Positive Rate,TPR) 最好,即灵敏度(sensitivity)最好。综合对比分析,用随机森林算法作为木马检测分类模型的效果最优。

4.2实验二

第二组数据是:选取2015年以来的,基于漏洞利用的15款木马数据,共36个数据流,对于训练模型而言,该15款木马均为未知属性的数据。(数据来源:malware traffic analysis[14]网站)

近年来,通过系统及应用软件的漏洞作为木马传播载体的方式广泛且流行。此类木马的传播方式较为隐蔽,一般隐匿或捆绑在文档、应用、链接等看似正常的文件中。包括:Angler-EK( 利用IE漏洞,如:CVE-2015-2419 )、 BizCN( 利用Flash漏洞,如: CVE-2015-0522等 ) 、Nuclear-EK(利用Flash漏洞)等。作者将搜集的2015年以来的数据流文件作为未知木马样本。在已有的检测模型上,测试本方法对于未知数据流(未知木马及未知的传播方式)的检测率,结果见表2。

表2 15款未知数据的检测结果

实验结果显示,在15个未知应用数据中,检测出14个,检测率为93.3%,其中36个数据流中检测出32个,数据流的检测率为88.9%。与其他三种方法的对比结果如图2所示。

图2 未知数据检测对比

实验结果显示,就预测性而言, 随机森林的检测方法对未知数据属性的分类效果最好,预测性最佳。

6结语

本文创新的提出了将随机森林引用于单一的木马检测领域,通过实验验证,本文的方法在提高检测率和降低误报率方面均优于目前已知的木马检测方法,对于未知数据有较好的检测分类效果。此外,本文创新提出可信度评分策略,通过大量实践验证得到的行之有效的评分方法对检测结果进行评分,为研判人员提供可信参考。但是,依然存在一些有待改进的地方,比如,检测出来的结果中,误告警所占比例达7.76%,下一步将尝试通过数据挖掘算法对检测结果分析,以去除误告警,降低误报率。

参考文献:

[1]瑞星.瑞星2015年中国信息安全报告[EB/OL]. (2016-01-20)[2016-03-02]. http://it.rising.com.cn/dongtai/18131.html.

Rising. Rising 2015 China Information Security Report[EB/OL]. (2016-01-20)[2016-03-02]. http://it.rising.com.cn/dongtai/18131.html

[2]Fire Eye. Advanced Targeted Attacks: How to Protect Against the New Generation of Cyber Attacks.[EB/OL].[2016-03-02].http://www2.fireeye.com/rs/fireye/images/fireeye-advanced-targeted-attacks.pdf.

[3]李世淙,云晓春,张永铮.一种基于分层聚类方法的木马通信行为检测模型[J].计算机研究与发展,2012(S2):9-16.

LI Shi-cong, YUN Xiao-chun, ZHANG Yong-zheng. A Model of Trojan Communication Behavior Detection based Hierarchical Clustering Technique[J]. Journal of Computer Research and Development,2012,(S2):9-16 .

[4]周赵军, 张剑, 彭春林. 多Web代理技术在木马通信中的实现 [J]. 通信技术, 2012, 45(08):73-76.

ZHOU Zhao-jun, ZHANG Jian, PENG Chun-lin. Trojan Communication based on Multi-Web Proxy[J]. Communications Technology,2012,45(08):73-76.

[5]薛磊. 基于通信行为证据链的木马检测系统[D].南京:南京邮电大学,2013.

XUE Lei. Trojan Detection System based on Evidence of Communication Behaviors.[D].2013,Nanjing:Nanjing University of Posts and Telecommunications,2013.

[6]WOLPERT D H. Stacked Generalization [J]. Neural Networks, 1992, 5(2): 241-259.

[7]Breiman L. Bagging Predictors [J]. Machine Learning, 1996, 24(2): 123-140.

[8]Dietterich T G. Ensemble Methods in Machine Learning [M]. Multiple Classifier Systems. Springer Berlin Heidelberg,2000:1-15.

[9]方匡男, 吴见彬, 朱见平等. 随机森林方法研究综述[J]. 统计与信息论坛, 2011, 26(03): 32-38.

FANG Kuang-nan, WU Jian-bin, ZHU Jian-ping,et al. Research of Random Forest Method[J]. Statistics & Information Forum, 2011, 26(03): 32-38.

[10]ZHANG Xiao-chen, LIU Sheng-li, MENG Lei, SHI Yun-fang. Trojan Detection based on Network Flow Clustering. Multimedia Information Networking and Security (MINES), 2012 Fourth International Conference on DOI: 10.1109/MINES.2012.242[C]. 2012:947-950.

[11]Ponomarev S, Durand J, Wallace N, et al. Evaluation of Random Projection for Malware Classification[C] Software Security and Reliability-Companion(SERE-C), 2013 IEEE 7th International Conference on IEEE, 2013:68-73.

[12]李鹏,王汝传,高德华.基于模糊识别和支持向量机的联合Rootkit动态检测技术研究[J].电子学报,2012(01):49-56.

LI Peng, WAGN Ru-chuan, GAO De-hua. Research on Rootkit Dynamic Detection based on Fuzzy Pattern Recognition and Support Virtual Machine Technology[J]. Acta Electronica Sinica, 2012(01):49-56.

[13]scikit-learn.[EB/OL]. [2015-10-09]. http://scikit-learn.org/stable/.

[14]Malware Traffic Analysis. [EB/OL]. [2015-10-09].http://www.malware-traffic-analysis.net/blog-entries.html

Hierarchical Detection of Trojan Behavior based on Random Forest

WU Jin-long,SHI Xiao-fei,XU Jia,SHI Jun

(Jiangnan Institute of Computing Technology,Wuxi Jiangsu 214083,China)

Abstract:In order to deal with the threat from APT attacks with unknown Trojan as the core,Trojan detection technology based on net flows is studied and discussed. A method based on multidimensional features from different layers for Trojan detection is proposed, thus to detect Trojan data in the network data flows. Based on intestigation of the existing detection technology,the random forest algorithm is applied to training data set,thus to construct the detection model,establish hierarchical scoring policy,and providing a trusted detection result for analysts.Experiment and comparison of the three learning algorithms indicate that this method could improve accuracy rate at least 1.8% and reduce the false alarm rate at least 2.77% in the detection of Trojans.

Key words:trojan detection;random forest;multi-dimensional features;APT attack;hierarchical detection

doi:10.3969/j.issn.1002-0802.2016.04.018

*收稿日期:2015-11-09;修回日期:2016-02-20Received date:2015-11-09;Revised date:2016-02-20

中图分类号:TP393.08

文献标志码:A

文章编号:1002-0802(2016)04-0475-06

作者简介:

吴金龙(1988—),男,硕士,研究实习员,主要研究方向为信息安全和网络安全;

石晓飞(1976—),女,硕士,工程师,主要研究方向为信息安全和网络安全;

许佳(1981—),男,博士,工程师,主要研究方向为信息安全和网络安全;

史军(1972—),男,硕士,高级工程师,主要研究方向为信息安全和网络安全。

猜你喜欢

随机森林
随机森林算法在中药指纹图谱中的应用:以不同品牌夏桑菊颗粒指纹图谱分析为例
基于随机森林的登革热时空扩散影响因子等级体系挖掘
基于随机森林的HTTP异常检测
个人信用评分模型比较数据挖掘分析
随机森林在棉蚜虫害等级预测中的应用
基于二次随机森林的不平衡数据分类算法
拱坝变形监测预报的随机森林模型及应用
基于随机森林算法的飞机发动机故障诊断方法的研究
基于奇异熵和随机森林的人脸识别
基于随机森林算法的B2B客户分级系统的设计