CN107592312A - 一种基于网络流量的恶意软件检测方法 - Google Patents

一种基于网络流量的恶意软件检测方法 Download PDF

Info

Publication number
CN107592312A
CN107592312A CN201710839185.9A CN201710839185A CN107592312A CN 107592312 A CN107592312 A CN 107592312A CN 201710839185 A CN201710839185 A CN 201710839185A CN 107592312 A CN107592312 A CN 107592312A
Authority
CN
China
Prior art keywords
trojan
host
traffic
clustering
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710839185.9A
Other languages
English (en)
Other versions
CN107592312B (zh
Inventor
张永斌
崔新伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Maite Information Technology Co ltd
Original Assignee
Ji'nan Mutual Trust Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ji'nan Mutual Trust Software Co Ltd filed Critical Ji'nan Mutual Trust Software Co Ltd
Priority to CN201710839185.9A priority Critical patent/CN107592312B/zh
Publication of CN107592312A publication Critical patent/CN107592312A/zh
Application granted granted Critical
Publication of CN107592312B publication Critical patent/CN107592312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于网络流量的恶意软件检测方法,其特征在于:包括以下步骤:通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象;对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果;与现有技术相比,本发明具有如下的有益效果:系统通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,然后再对可疑主机与外部访问对象间的通信流量进行分析,通过访问行为特征分析有利于降低误报率,同时还可以降低后续分析的数据量,进一步提高检测效率。

Description

一种基于网络流量的恶意软件检测方法
技术领域
本发明是一种基于网络流量的恶意软件检测方法,属于恶意软件检测领域。
背景技术
近些年,一些恶性网络案件及网络信息盗取事件的发生,使得对远控木马的检测问题引起人们高度关注,远控木马是一种具有很好隐蔽性的恶意软件,与僵尸程序、蠕虫等恶意软件不同,其不具有明显的恶意网络行为特征,如:发送垃圾邮件、DOS攻击、漏洞探测等,远控木马主要目的是潜伏在用户计算机中,根据黑客的控制指令,收集用户计算机中的敏感信息,如:账户与口令、敏感数据文件等。与僵尸网络十分相似,远控木马也能建立起恶意的控制网络,但与僵尸网络相比,其不具有传染性、控制网络规模较小,并且大量远控木马通信采取的是私有协议。目前,很多僵尸网络的检测方法并不适用于远控木马检测,虽然部分检测算法也可用于远控木马检测,但远控木马自身具有很多独特的特性,这些检测方法缺乏具体的针对性。随着经济利益的驱动,各种远控木马及其变种层出不穷,对传统基于特征匹配检测、启发式检测的单机防护软件提出了很大挑战。因此,如何快速、及时发现网络中感染远控木马的主机,已成为网络安全研究的重要课题。
目前,针对远控木马检测问题,研究人员提出的检测方法主要是基于单机的检测方法,基于网络流量的检测方法相对较少。现有单机检测方法主要可分为基于代码静态分析和基于程序运行行为分析的两大类检测方法,其中基于代码分析的检测方法主要用于实时防护,但容易受到混淆技术的影响,同时这些检测方法均需要在主机上安装相应的检测软件。
发明内容
针对现有技术存在的不足,本发明目的是提供一种基于网络流量的恶意软件检测方法,主要对远控木马检测问题进行研究,提出一种基于行为特征与流量特征相结合的检测方法,通过对网络中主机的通信流量进行分析,发现网络中感染远控木马的主机及木马控制服务器的地址信息,以解决上述背景技术中提出的问题。
为了实现上述目的,本发明是通过如下的技术方案来实现:一种基于网络流量的恶意软件检测方法,包括以下步骤:
通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象;
对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
进一步地,所述通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果的具体步骤为:系统通过采集网络中主机的通信流量,每个检测周期从主机请求行为特征、通信特征两个方面对主机的通信流量进行检测,系统首先通过请求行为特征检测,提取出可疑感染主机及与其通信的外部对象,然后通过通信特征检测对请求行为特征提取出的可疑主机及外部对象进一步分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
进一步地,请求行为特征检测通过通信会话的时间信息,分析主机对外部特定对象的访问行为是否与远控木马的访问行为相符,即:是否具有重复尝试连接、会话时间较长等特征,通信特征检测主要是进一步分析请求行为特征的检测结果,计算可疑感染主机与外部对象之间通信流量的统计特征,通过半监督聚类算法,确定主机与外部对象之间通信特征是否与远控木马的通信特征相符。
进一步地,通过数据预处理、持续性算法、半监督聚类分析三个处理过程对请求行为特征、通信特征两个方面对主机的通信流量进行检测;
数据预处理过程主要是采集网络流量中主机的通信流量,提取主机与外部对象的通信会话信息,并存储到日志文件中,远控木马与僵尸网络十分相似,主要通过域名获取控制服务器的IP地址,以便与控制服务器建立通信连接,此外,远控木马与控制服务器之间通信主要使用TCP协议,因此,在原型实现时,系统只采集网络中主机主动发起连接并且目的地址能够关联上域名的TCP会话信息,并通过<域名、目的端口>标识主机请求的外部对象,即:系统将源地址、目的端口相同且目的地址对应于同一域名的TCP会话视为主机对同一外部目标的访问,为降低分析的数据量,系统通过域名白名单,对合法资源的TCP会话进行过滤;
持续性算法主要是对每个检测周期内主机的请求行为进行检测,算法以<请求主机、域名、目的端口>为分析对象,利用主机访问外部特定对象的TCP连接发生时间信息及TCP会话时长信息,通过多组不同宽度的观测窗口对时间进行划分,分析主机在不同宽度的观测窗口下,对外部目标的访问行为是否具有重复尝试连接、会话时间较长等特征,提取出可疑主机及外部对象;
半监督聚类分析过程主要是从通信特征角度,对持续性算法提取出的可疑感染主机及外部对象进行检测,算法通过可疑感染主机与外部对象连接成功的TCP会话信息,计算平均会话时长、平均包长等统计特征,利用半监督的X-means聚类算法进行聚类分析,提取出最终检测结果,半监督X-means聚类方法是对无监督聚类方法X-means的扩展,系统将少量有标注样本与大量无标注样本混合在一起,利用X-means算法进行聚类,通过有标注样本信息确定聚类结果中每个聚类所属类别,X-means算法与其它大量聚类算法相比,无需用户提供最终的聚类数量,系统之所以选取半监督聚类进行检测,主要因为实际收集到的木马流量样本数量有限以及互联网上日益增多的各种网络应用协议,针对远控木马通信流量的识别,不适合采取传统有监督学习的分类算法,此外,当有新的木马样本加入时,对于有监督学习的分类算法,还需重新训练、学习,以便建立新的识别模型。
进一步地,在所述持续性算法中,系统以周期T(默认为一天)定期分析每个主机对外部特定目标的访问行为,并通过持续性指标p衡量主机访问外部特定对象的行为是否与远控木马访问行为特征相符,即:是否具有重复尝试连接、会话时间较长等特征。与第四章中持续性算法设计思想相同,只是在分析过程中引入了会话时长信息。设<ts,te>为主机在一个分析周期内与外部对象通信的开始时间与结束时间,则W=te-ts为主机本次与外部对象通信行为的最长观测长度,系统通过基本观测间隔Δw将W划分为n+1个基本观测窗口
设S={s1,s2.....sm}为主机与外部特定目标D在<ts,te>期间的所有TCP会话连接记录,S中包含所有连接成功的TCP会话及三次握手未成功的TCP会话,S中任意会话si,<t′si,t′ei>为会话si的开始及结束时间,则si在W中对应的开始工作窗口及结束窗口分别为:
将w′i至w″i间对应的基本观测窗口置为可用窗口,当S中所有会话完成计算后,则持续性指标p为:
当wi为可用窗口时,δi为1,否则δi为0
通过持续性指标p的计算方法,可以看到p可有效的反应以Δw为观测间隔,主机对外部对象的访问行为是否与远控木马的访问行为相符,例如:当木马控制服务器没有工作时,感染主机会按照一定的规律重复尝试连接,持续性指标p反应了以Δw为观测间隔,尝试行为是否具有重复性,当控制服务器开始工作时,持续性指标p反映了主机与控制服务器的通信时长,并且p也可刻画两者在一起的混合行为;
由于木马控制服务器没有工作时,感染主机的尝试连接规律事先不可预知,为更好的刻画这种尝试性规律,可以选择不同长度的观测窗口进行观测,为方便计算方法,不同观测窗口的长度选取基本观测窗口Δw倍数,对于k*Δw观测窗口,持续性指标其中当wi*k至w(i+1)*k-1任意窗口为可用窗口时,则δk i为1,否则为0,在检测过程中,对任意观测窗口,pk大于规定阈值λ时,则认为主机对特定外部目标的访问行为与远控木马访问行为相符,则作为可疑感染主机提取出来,以便通过半监督聚类分析过程进一步分析,否则认为主机的访问行为安全,不需进行后续处理,直接丢弃;
由于主机会话信息是通过网络流量镜像数据获得,在整个观测期间,主机可能随时发生关机、待机行为,为避免对分析结果的影响,在实验过程中,根据人们日常工作时间选取窗口长度L=180分钟,滑动距离ΔL=30分钟,持续性观测基本窗口Δw=1分钟,观测窗口长度分别为{1,5,10.15,30,60}分钟。
进一步地,所述半监督聚类包括聚类划分、类别映射、噪声过滤三个步骤,具体如下:
(1)聚类划分
算法通过X-means算法,对数据集合D进行聚类分析,将D中所有数据样本划分为K个聚类,即:C1,C2,....CK,其中聚类Ci包含的标注样本数量为li,未标注样本数量为ui
(2)类别映射
对于整个检测,只需将未标注样本数据集合U中的样本划分为合法流量与木马流量两类,设类别集合Y={0,1},y=0为合法流量,y=1为木马流量,由于在实际网络中木马流量所占比例很小,U中的数据样本大量为合法流量,对于U中包含的木马流量可视为异常点,在聚类时,这些异常点大量与标注样本划分在一起,因此,在对聚类C1,C2,....CK进行类别映射时,算法应尽量保证U中的数据样本大量映射到合法流量类别中,同样也需保证将标注样本集合L中大量样本映射到木马流量类别中,因此,定义决策函数如下:
其中yi为Ci映射的类别,λ12为惩罚系数。通过Q定义可以看到:当Q取值最小时,算法则将集合U、L中的样本分别最大化的映射到合法流量、木马流量两类中。当所有C1,C2,....CK映射到合法流量类别时,风险为λ1|L|(记为:QN),此时算法没有任何分类能力,漏报达到最高;当全部映射到木马流量类别时,风险为λ2|U|(记为:QF),此时误报达到最高;当Q取值最小时,算法将在漏报与误报之间取得最佳平衡。
其中
要保证Q达到最优,只需保证Q'取值最大,即:对任意Ci进行映射的类别时,满足以下条件:
当对漏报与误报风险视为等同时,即:QN=QF时,算法实质是采用条件概率作为决策函数,当p(Ci|L)>p(Ci|U)时,则将Ci映射到木马流量类别,反之映射到合法流量类别,当p(Ci|L)=p(Ci|U)时,可根据设置的阈值条件进行类别映射;
(3)噪声过滤
由于集合U中的样本数量远远大于集合L中的样本数量,在X-means算法聚类过程中,U中的样本对每个类的中心有着显著的影响,导致聚类结果中每个类Ci的中心与该类中标注样本所对应的木马通信流量的中心有一定的偏离,为降低这种影响,对所有类别映射为木马流量的聚类Ci,可通过Ci中标注样本估计木马流量所对应的聚类中心μi,通过X-means算法可知:
即:为Ci中所有标注的样本的均值,
对于Ci中所有待分析样本Xu,其与μi距离越近,说明与木马通信特征越相似,因此,计算Xu与μi之间的欧式距离dist(Xui),将dist(Xui)小于阈值ε的样本划分到木马流量类别,反之,Xu属于合法流量,并将Xu从Ci中删除,在实际试验中,选取ε=max(dist(Xki)),Xk∈Ci∧Xk∈L取得良好识别效果。
进一步地,在半监督聚类分析过程中,木马通信流量的识别具体为:远控木马通信具有会话时间长、响应流量大于请求流量以及响应报文包长较短等特征,因此,算法选取传输字节比、传输报文比、平均响应报文长度、会话时长四个统计属性作为分类特征,由于每天需要分析的数据量很大,为提高处理执行效率,算法采取分层聚类的方法,首先,通过粗粒度的聚类分析,将数据划分为多个聚类,然后对符合条件的每个聚类,进一步单独分析;
(1)基于<域名、目的端口>的粗粒度聚类分析
系统将<域名、目的端口>作为分析对象,通过所有请求主机的会话信息,计算每个<域名、目的端口>的分类特征,并通过半监督X-means聚类方法进行聚类分析,提取出所有判定为木马流量的分类Ci及<域名、目的端口>,通过粗粒度的聚类分析,系统提取出通信特征与木马流量相似的外部目标,降低后续分析的数据量,提高执行效率;
(2)基于<源IP地址、域名、目的端口>的细粒度聚类分析
系统对粗粒度聚类分析提取出的每个类Ci分别进行单独分析,对于Ci中每个<域名、目的端口>,系统通过主机的会话信息计算每个主机对Ci中的<域名、目的端口>的分类特征(即:以<源IP地址、域名、目的端口>为分析对象),通过半监督的X-means聚类方法,提取出判定为木马流量的分类Mi,如果一个<域名、目的端口>为木马控制服务器的访问地址,则对该<域名、目的端口>访问的主机应大量分类到木马流量的类别中,设Ci中任意<域名、目的端口>ri,其有hi个不同IP地址访问,其中划分到木马流量的分类中的数量为mi,如果mi/hi>θ,其中θ为阈值,则判定ri为木马控制服务器所在地址,所有访问主机为感染主机,反之则判定ri为合法资源,所有访问为合法访问,细粒度聚类分析主要目的是分析主机与外部目标的流量特征是否与木马流量相似,并且同时分析访问该外部目标的所有主机的行为是否一致。
本发明的有益效果:本发明的一种基于网络流量的恶意软件检测方法,系统通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,然后再对可疑主机与外部访问对象间的通信流量进行分析,通过访问行为特征分析有利于降低误报率,同时还可以降低后续分析的数据量,进一步提高检测效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一种基于网络流量的恶意软件检测方法的模型框架图;
图2为持续性检测算法的示意图;
图3为只出现一个可用窗口所占比例示意图;
图4为会话时长的累积分布示意图;
图5为平均报文长度累积分布示意图;
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
本发明提供一种技术方案:一种基于网络流量的恶意软件检测方法,包括以下步骤:
通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象;
对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
随着安全意识的不断增强,防火墙、UTM等安全产品已成为网络建设中必不可缺少的设备,为能够成功穿越防火墙、UTM等安全设备,目前,使用的远控木马均为反弹式木马,即:由感染主机主动连接控制服务器,以便获取控制指令、执行相关任务。远控木马植入到感染主机中后,为最大限度的发挥其功效,在主机整个开机工作期间,木马程序将一直持续运行,当木马控制服务器没有工作时,感染主机为及时与控制服务器建立通信,会按照特定的周期或伪周期主动尝试连接控制服务器。当木马控制服务器开始工作,感染主机与控制服务器建立通信连接后,为能够及时接收控制指令,往往通过心跳报文或TCP-ALIVE报文来保持会话不被关闭。
与主机请求合法服务相比,感染主机与控制服务器之间的通信会话,具有以下明显特征:
(1)通信会话时间较长
为保证及时获取指令,当感染主机与控制服务器成功建立连接后,通信特征最直接表现为通信会话持续时间较长,为降低服务器上资源开销,正常服务与主机之间的通信会话保持时间往往很短,即:当主机获取相关数据后,就关闭网络会话,如:网页浏览;
(2)请求流量大于响应流量
由于远控木马主要用于收集感染主机上的数据信息,当木马软件没有更新时,感染主机发送给控制服务器的数据内容往往大于控制服务器发送给感染主机的,而主机请求大量合法服务的主要目的是获取所需数据信息,服务器响应的流量通常大于主机发送的请求流量;
(3)响应报文相对较短
由于木马的控制指令相对简单以及为隐蔽通信行为、避免被发现,控制服务器发送的响应报文长度往往相对较小,而对于大量合法服务,由于对主机请求响应的数据内容通常较大,为提高传输效率、降低网络压力,响应内容都是以大包发送。
针对感染主机的网络行为具有以上特征,通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果的具体步骤为:系统通过采集网络中主机的通信流量,每个检测周期从主机请求行为特征、通信特征两个方面对主机的通信流量进行检测,系统首先通过请求行为特征检测,提取出可疑感染主机及与其通信的外部对象,然后通过通信特征检测对请求行为特征提取出的可疑主机及外部对象进一步分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
请求行为特征检测通过通信会话的时间信息,分析主机对外部特定对象的访问行为是否与远控木马的访问行为相符,即:是否具有重复尝试连接、会话时间较长等特征,通信特征检测主要是进一步分析请求行为特征的检测结果,计算可疑感染主机与外部对象之间通信流量的统计特征,通过半监督聚类算法,确定主机与外部对象之间通信特征是否与远控木马的通信特征相符。
请参阅图1,通过数据预处理、持续性算法、半监督聚类分析三个处理过程对请求行为特征、通信特征两个方面对主机的通信流量进行检测;
数据预处理过程主要是采集网络流量中主机的通信流量,提取主机与外部对象的通信会话信息,并存储到日志文件中,远控木马与僵尸网络十分相似,主要通过域名获取控制服务器的IP地址,以便与控制服务器建立通信连接,此外,远控木马与控制服务器之间通信主要使用TCP协议,因此,在原型实现时,系统只采集网络中主机主动发起连接并且目的地址能够关联上域名的TCP会话信息,并通过<域名、目的端口>标识主机请求的外部对象,即:系统将源地址、目的端口相同且目的地址对应于同一域名的TCP会话视为主机对同一外部目标的访问,为降低分析的数据量,系统通过域名白名单,对合法资源的TCP会话进行过滤;
持续性算法主要是对每个检测周期内主机的请求行为进行检测,算法以<请求主机、域名、目的端口>为分析对象,利用主机访问外部特定对象的TCP连接发生时间信息及TCP会话时长信息,通过多组不同宽度的观测窗口对时间进行划分,分析主机在不同宽度的观测窗口下,对外部目标的访问行为是否具有重复尝试连接、会话时间较长等特征,提取出可疑主机及外部对象;
半监督聚类分析过程主要是从通信特征角度,对持续性算法提取出的可疑感染主机及外部对象进行检测,算法通过可疑感染主机与外部对象连接成功的TCP会话信息,计算平均会话时长、平均包长等统计特征,利用半监督的X-means聚类算法进行聚类分析,提取出最终检测结果,半监督X-means聚类方法是对无监督聚类方法X-means的扩展,系统将少量有标注样本与大量无标注样本混合在一起,利用X-means算法进行聚类,通过有标注样本信息确定聚类结果中每个聚类所属类别,X-means算法与其它大量聚类算法相比,无需用户提供最终的聚类数量,系统之所以选取半监督聚类进行检测,主要因为实际收集到的木马流量样本数量有限以及互联网上日益增多的各种网络应用协议,针对远控木马通信流量的识别,不适合采取传统有监督学习的分类算法,此外,当有新的木马样本加入时,对于有监督学习的分类算法,还需重新训练、学习,以便建立新的识别模型。
在所述持续性算法中,系统以周期T(默认为一天)定期分析每个主机对外部特定目标的访问行为,并通过持续性指标p衡量主机访问外部特定对象的行为是否与远控木马访问行为特征相符,即:是否具有重复尝试连接、会话时间较长等特征。与第四章中持续性算法设计思想相同,只是在分析过程中引入了会话时长信息。设<ts,te>为主机在一个分析周期内与外部对象通信的开始时间与结束时间,则W=te-ts为主机本次与外部对象通信行为的最长观测长度,系统通过基本观测间隔Δw将W划分为n+1个基本观测窗口如图2;
设S={s1,s2.....sm}为主机与外部特定目标D在<ts,te>期间的所有TCP会话连接记录,S中包含所有连接成功的TCP会话及三次握手未成功的TCP会话,S中任意会话si,<t′si,t′ei>为会话si的开始及结束时间,则si在W中对应的开始工作窗口及结束窗口分别为:
将w′i至w″i间对应的基本观测窗口置为可用窗口,当S中所有会话完成计算后,则持续性指标p为:
当wi为可用窗口时,δi为1,否则δi为0
通过持续性指标p的计算方法,可以看到p可有效的反应以Δw为观测间隔,主机对外部对象的访问行为是否与远控木马的访问行为相符,例如:当木马控制服务器没有工作时,感染主机会按照一定的规律重复尝试连接,持续性指标p反应了以Δw为观测间隔,尝试行为是否具有重复性,当控制服务器开始工作时,持续性指标p反映了主机与控制服务器的通信时长,并且p也可刻画两者在一起的混合行为;
由于木马控制服务器没有工作时,感染主机的尝试连接规律事先不可预知,为更好的刻画这种尝试性规律,可以选择不同长度的观测窗口进行观测,为方便计算方法,不同观测窗口的长度选取基本观测窗口Δw倍数,对于k*Δw观测窗口,持续性指标其中当wi*k至w(i+1)*k-1任意窗口为可用窗口时,则δk i为1,否则为0,在检测过程中,对任意观测窗口,pk大于规定阈值λ时,则认为主机对特定外部目标的访问行为与远控木马访问行为相符,则作为可疑感染主机提取出来,以便通过半监督聚类分析过程进一步分析,否则认为主机的访问行为安全,不需进行后续处理,直接丢弃;
由于主机会话信息是通过网络流量镜像数据获得,在整个观测期间,主机可能随时发生关机、待机行为,为避免对分析结果的影响,在实验过程中,根据人们日常工作时间选取窗口长度L=180分钟,滑动距离ΔL=30分钟,持续性观测基本窗口Δw=1分钟,观测窗口长度分别为{1,5,10.15,30,60}分钟。
在半监督聚类分析过程中,包括:
X-means聚类方法
(1)贝叶斯信息准则
设样本集合为D={x1,x2,x3,,xN},M={M1,M2,,Mm}是一组候选模型集合,对任意模型Mi的参数集为θi,贝叶斯信息准则(Bayesian Information Criterion)定义为:
其中:L(θi)是θi在样本集合D上的对数似然函数,Ki为自由参数数目,即:θi的维数。对于模型集合M中所有模型,BIC取值最大的模型为样本集合X的最佳描述模型,即:选择后验概率p(Mj|D)最大的模型。
(2)X-means算法原理
X-means算法[i]是对K-means算法的一种扩展与改进,K-means算法是各种聚类算法中应用最为广泛的算法,但在实际使用中,往往面临着如何选择聚类数目K的问题,X-means算法主要针对这个问题对K-means算法进行改进。X-means算法通过多次运行K-means算法,并使用贝叶斯信息准则来确定最佳聚类数目及聚类结果,与K-means算法相比,X-means算法无需用户提供具体的聚类数目K,只需提供聚类数目K的上限、下限,并且算法利用样本数据自身信息对聚类数目K进行最优选择,保证了聚类数目K的选择科学性及聚类结果的客观性。
X-mean算法主要包含参数优化与结构优化两个过程,参数优化过程主要根据指定的聚类数目K,运行K-means算法,直至算法收敛、稳定,得到相应的聚类结果。结构优化过程主要是判断参数优化过程生成的每个聚类是否需要分裂,并根据需要分裂的聚类数量调整K值,设用户输入的聚类数目在[Kmin,Kmax]之间,算法具体执行流程如下:
1)K=Kmin
2)参数优化过程,得到聚类C1,C2,,Ck
3)结构优化过程,判断C1,C2,,Ck是否需要分裂,并调整K;
4)如果K>Kmax,输出最优的K值及聚类结果,否则调整K值,并跳转到步骤2)继续运行。
在结构优化过程中,算法对每个Ci进行局部聚类,即:通过K-means算法将Ci分裂成两个聚类,并计算分裂前后的贝叶斯信息准则B,B',若B'>B,则说明Ci需要分裂,反之则不需要进行分裂。当K>Kmax条件满足时,算法同样根据贝叶斯信息准则,从所有K值中选取最优的聚类数目及聚类结果。在球形高斯分布下,样本总数为N,C1,C2,,Ck的聚类中心分别为μ12,,μk,文献[181]中给出BIC的具体计算公式如下:
方差的最大似然估计为:
x∈Ci,则d为x维数
似然函数为:半监督X-means聚类
由于有标注的样本数据十分有限,并且获取也相对困难,当有标注样本数据过少时,采用传统有监督学习方法建立分类模型,分类器对训练时未见到的实际数据往往不能准确识别,同时互联网上各种网络应用繁多,并不是所有协议都是事先已知的,并且新协议不断出现,而有监督学习方法需要将所有数据分类到事先设定的各个分类中,导致误报率较高。针对这些问题,Erman等在网络流量分类研究中,提出一种基于K-means算法的半监督聚类方法,算法首先通过K-means算法对所有数据进行聚类分析,然后利用各个聚类中包含的标注样本信息,实现对各个聚类所属类别的映射,并在实际应用中取得良好效果[ii]。设样本数据集合为:D=L∪U={X1,X2,....Xn},其中L={X1,X2,....Xl}为已标注的数据样本,U={Xl+1,Xl+2,....Xn}为没有标注的实际数据,对于任意数据样本Xi具有{x1,x2,...xk}统计属性,样本数据集合D中所有数据对应的类别集合为:Y={y1,y2,,ym},算法通过运行K-means算法将数据集合D划分为多个聚类C1,C2,,CK,则对任意聚类Ck中样本所属类别y的映射方法为:
算法实质是选取后验概率作为决策函数,实现Ck中样本所属类别的映射,即:选取后验概率最大的类别。对于p(Y=yi|Ck)的最大似然估计为:
其中nk为Ck中已标注样本的数量,lik为Ck中类别为yi的标注样本数量。为进一步提高准确率,可以设定阈值θ,即:p(Y=yi|Ck)≥θ时,认为类别映射有效。
Erman等通过多次实验对比,选取聚类数目K=400时,分类效果最为理想。对于Erman等提出的半监督聚类方法,可通过X-means方法进一步改进,实现聚类数目的K自动选择。但在实际实验中,采用这种分类方法对远控木马流量进行检测时,存在以下两个方面问题:
(1)标注样本集合中不能只有木马流量样本,必须包含多种网络应用的流量样本;
(2)在分类结果中,部分聚类Ck中除未标注样本外,包含的标注样本中只有少量的木马流量样本,导致聚类Ck被映射到木马流量分类中,存在较高的误报率。
针对Erman等提出的分类方法在检测时存在的问题,本文提出一种基于风险模型的半监督聚类,并且只要求标注样本集合L中有木马流量样本即可,所述半监督聚类包括聚类划分、类别映射、噪声过滤三个步骤,具体如下:
(1)聚类划分
算法通过X-means算法,对数据集合D进行聚类分析,将D中所有数据样本划分为K个聚类,即:C1,C2,....CK,其中聚类Ci包含的标注样本数量为li,未标注样本数量为ui
(2)类别映射
对于整个检测,只需将未标注样本数据集合U中的样本划分为合法流量与木马流量两类,设类别集合Y={0,1},y=0为合法流量,y=1为木马流量,由于在实际网络中木马流量所占比例很小,U中的数据样本大量为合法流量,对于U中包含的木马流量可视为异常点,在聚类时,这些异常点大量与标注样本划分在一起,因此,在对聚类C1,C2,....CK进行类别映射时,算法应尽量保证U中的数据样本大量映射到合法流量类别中,同样也需保证将标注样本集合L中大量样本映射到木马流量类别中,因此,定义决策函数如下:
其中yi为Ci映射的类别,λ12为惩罚系数。通过Q定义可以看到:当Q取值最小时,算法则将集合U、L中的样本分别最大化的映射到合法流量、木马流量两类中。当所有C1,C2,....CK映射到合法流量类别时,风险为λ1|L|(记为:QN),此时算法没有任何分类能力,漏报达到最高;当全部映射到木马流量类别时,风险为λ2|U|(记为:QF),此时误报达到最高;当Q取值最小时,算法将在漏报与误报之间取得最佳平衡。
其中
要保证Q达到最优,只需保证Q'取值最大,即:对任意Ci进行映射的类别时,满足以下条件:
当对漏报与误报风险视为等同时,即:QN=QF时,算法实质是采用条件概率作为决策函数,当p(Ci|L)>p(Ci|U)时,则将Ci映射到木马流量类别,反之映射到合法流量类别,当p(Ci|L)=p(Ci|U)时,可根据设置的阈值条件进行类别映射;
(3)噪声过滤
由于集合U中的样本数量远远大于集合L中的样本数量,在X-means算法聚类过程中,U中的样本对每个类的中心有着显著的影响,导致聚类结果中每个类Ci的中心与该类中标注样本所对应的木马通信流量的中心有一定的偏离,为降低这种影响,对所有类别映射为木马流量的聚类Ci,可通过Ci中标注样本估计木马流量所对应的聚类中心μi,通过X-means算法可知:
即:为Ci中所有标注的样本的均值,
对于Ci中所有待分析样本Xu,其与μi距离越近,说明与木马通信特征越相似,因此,计算Xu与μi之间的欧式距离dist(Xui),将dist(Xui)小于阈值ε的样本划分到木马流量类别,反之,Xu属于合法流量,并将Xu从Ci中删除,在实际试验中,选取ε=max(dist(Xki)),Xk∈Ci∧Xk∈L取得良好识别效果。
进一步地,在半监督聚类分析过程中,木马通信流量的识别具体为:远控木马通信具有会话时间长、响应流量大于请求流量以及响应报文包长较短等特征,因此,算法选取传输字节比、传输报文比、平均响应报文长度、会话时长四个统计属性作为分类特征,具体定义参见表1,
表1分类特征定义表
由于每天需要分析的数据量很大,为提高处理执行效率,算法采取分层聚类的方法,首先,通过粗粒度的聚类分析,将数据划分为多个聚类,然后对符合条件的每个聚类,进一步单独分析;
(1)基于<域名、目的端口>的粗粒度聚类分析
系统将<域名、目的端口>作为分析对象,通过所有请求主机的会话信息,计算每个<域名、目的端口>的分类特征,并通过半监督X-means聚类方法进行聚类分析,提取出所有判定为木马流量的分类Ci及<域名、目的端口>,通过粗粒度的聚类分析,系统提取出通信特征与木马流量相似的外部目标,降低后续分析的数据量,提高执行效率;
(2)基于<源IP地址、域名、目的端口>的细粒度聚类分析
系统对粗粒度聚类分析提取出的每个类Ci分别进行单独分析,对于Ci中每个<域名、目的端口>,系统通过主机的会话信息计算每个主机对Ci中的<域名、目的端口>的分类特征(即:以<源IP地址、域名、目的端口>为分析对象),通过半监督的X-means聚类方法,提取出判定为木马流量的分类Mi,如果一个<域名、目的端口>为木马控制服务器的访问地址,则对该<域名、目的端口>访问的主机应大量分类到木马流量的类别中,设Ci中任意<域名、目的端口>ri,其有hi个不同IP地址访问,其中划分到木马流量的分类中的数量为mi,如果mi/hi>θ,其中θ为阈值,则判定ri为木马控制服务器所在地址,所有访问主机为感染主机,反之则判定ri为合法资源,所有访问为合法访问,细粒度聚类分析主要目的是分析主机与外部目标的流量特征是否与木马流量相似,并且同时分析访问该外部目标的所有主机的行为是否一致。
作为本发明的一个实施例:检测数据主要由某政府网互联网出口采集的实际网络流量数据及从实验环境中采集的木马流量数据组成,对于木马数据包括标注样本和待检测木马样本两部分,其中标注样本主要用于半监督聚类过程,待检测木马样本主要用于衡量算法检测的准确率。对于实际数据,系统捕获了一个工作日的通信流量信息,经域名白名单过滤后,数据总共包含18636847条TCP会话信息及43132个不同<域名、目的端口>。木马数据主要源于收集到的10个完整的木马样本,将这些木马样本植入到多个不同的虚拟机中,通过木马控制程序随机对感染主机进行操作,以便提取木马的通信数据。
为分析木马样本通信行为是否具有持续性或重复性特征,对每种木马样本植入到虚拟机中后,进行3小时的连续观测,其中90分钟木马控制服务器处于工作状态,90分钟处于不工作状态,持续性观测基本窗口Δw=1分钟,观测窗口长度分别为{1,5,10,15,30,60},具体结果参见表2,
表2木马持续性分析表
所有木马样本的持续指标p在1分钟检测窗口均达到0.978以上。
对于实际数据进行分析,主机对于大量外部目标的访问行为不具有持续性,大量访问行为只出现一个可用窗口,是一种暂态的访问行为(参见图3),例如:15、30、60分钟的观察窗口,只出现1个可用窗口比例分别为70.7%、74.3%、78.8%。根据人们日常工作时间,系统选取滑动窗口长度为L=180分钟,滑动距离ΔL=30分钟,持续性观测基本窗口Δw=1分钟,观测窗口长度分别为{1,5,10,15,30,60},持续性阈值λ保守选取0.75,从实际数据中提取了2323个符合条件<域名、目的端口>。
由于木马自身往往不具备传染能力,同一网络中感染相同木马的主机数量往往很少,因此,将每种木马样本植入到5个虚拟机中,每次控制不同数量感染主机上线并随机进行操作,通过该方式采集木马通信流量、计算木马识别所需的统计特征。在实验时,选取木偶、彩虹桥、灰鸽子、网络神偷四种木马作为标注样本,每种木马进行50次操作,形成50条<域名、目的端口>的统计数据及每条样本对应的<源地址、域名、目的端口>样本数据,其余木马作为待分析木马样本,每种木马进行10次操作。
(1)木马流量与实际流量特征分析
通过TCP会话信息对实际数据统计特征进行分析,可以看到大量访问行为的平均TCP会话时长很短(参见图4),其中73.6%的平均会话时长小于60秒,小于180秒的达97%,而对于大量木马的TCP会话时长,则取决于木马控制程序的工作时间。对于实际流量平均报文长度主要分布在500~1500字节之间,而木马流量平均报文长度主要分布在100字节以内(参见图5)。同样对于实际流量,90.4%的外部目标传输字节比大于1,92.1%的传输报文比大于1,而当木马控制程序有操作时,木马流量的传输字节比、传输报文比均小于1。
(2)粗粒度聚类结果
由于实验数据很多,主要讨论当漏报与误报视为等同时的系统检测情况,系统对持续性算法提取出的2323可疑外部对象,通过半监督X-means聚类方法对所有数据进行分析,共划分为21个类,其中包含标注样本类共有5个,2个判定为木马流量。对于木马分类C1、C2类,包含标注样本的比例分别为:82.3%、13.4%,包含实际流量的比例分别为:1.1%、2.1%,即:有26个、48个外部目标划分到C1、C2类中。对于所有待分析木马样本全部划分到C1、C2类中,C1、C2类包含待分析样本的比例分别为:73.3%、26.7%。
经半监督聚类方法中噪声过滤处理过程,C1、C2类中包含外部目标分别降为22个、29个,但在此过程中,C2类中有1个波尔远控的待分析样本被丢弃。
通过粗粒度聚类分析,整个数据集中所包含的60条待检测木马样本,59条完全正确识别,系统待分析样本识别率为98.3%。
(3)细粒度聚类结果
对C1进行聚类分析后,共划分为4个类,木马样本、待分析样本全部划分到1个类中,C2进行聚类后,划分为5个类,其中一个类判定为木马流量,少量木马标注样本及波尔远控的待分析样本散落到其它类中。当检测阈值θ=0.65时,所有木马样本均被有效提取出来。对于待分析样本,系统对波尔远控样本识别率相对较低为90%,主要是因为波尔远控与标注样本相比,其平均报文长度相对较长。
通过C1、C2类的聚类分析,从实际数据中,提取出32个<域名、目的端口>,其中xtje.3322.org、dns3.dnscccaa.com等7个域名,经谷歌查询为木马使用恶意域名,xtjeje1982.eicp.net、hdcg.eg129.com等6个域名在搜索引擎上无法查询到,其余域名均为合法服务,在合法服务域名中有12个域名使用的目的端口为25,并由同一个原IP地址请求,但该IP地址不是邮件服务器,经对数据报文分析,确定该主机感染的僵尸程序,不停使用这些服务器发送垃圾邮件,其余域名均为合法服务,主要是ftp服务器、小工具、游戏等。
作为本发明的一个实施例:虽然有相同文件提出的检测方法与本问检测方法比较相近,也是采取半监督聚类方法对木马流量进行检测,作者采用Erman提出的方法,对样本所属类别进行映射,在检测时,标注样本集合中不能只有木马流量样本,还必须包含合法流量样本。在实验过程中,作者选取实验室互联网出口一天的网络流量数据作为合法流量的标注样本,然后将恶意样本流量数据与实验室互联网出口多天的流量数据混合在一起进行检测,作者实验结果为:算法平均识别准确率为85%,平均误报率为6.3%。然而在实际应用中,作者的算法与本文提出的检测方法相比,存在合法流量标注样本如何获取问题,具体体现在如下两个方面:
(1)如果仅以某个特定环境的网络流量作为合法流量的标注样本,由于互联网上各种网络应用繁多,并且新协议不断出现,采用作者提出的类别映射方法,将导致较高的误报率。在实际实验过程中,我们以办公室互联网出口流量数据作为合法流量的标注样本,在聚类结果中,很多聚类中除未标注样本外,包含的标注样本只有少量的木马流量样本,采用作者提出的类别映射方法,这些聚类均映射到木马流量类别,误报率大幅提升。
(2)由于木马流量数据样本的数量十分有限,并且获取也相对困难,如果以检测网络中的网络流量作为合法流量的标注样本,当检测网络中有多台感染主机时,将导致较高的漏报率。在实际实验过程中,我们以实际网络一天的流量数据作为合法流量的标注样本,在聚类结果中,发现部分聚类中包含了较多数量的木马流量样本,同时未标注样本中也包含大量恶意通信流量,但采用作者提出的类别映射方法时,这些聚类映射到合法流量类别,造成该问题的主要原因是合法流量标注样本中包含较多数量的木马流量数据,这些数据与木马标注样本划分到同一聚类中,但由于这些数据作为合法流量标注样本出现,并且数量多于木马流量标注样本数量,因此,导致将聚类映射到合法流量类别。
与作者提出检测方法相比,本文提出的检测算法除流量特征分析外,还引入了访问行为特征分析,系统通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,然后再对可疑主机与外部访问对象间的通信流量进行分析,通过访问行为特征分析有利于降低误报率,同时还可以降低后续分析的数据量,进一步提高检测效率。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (7)

1.一种基于网络流量的恶意软件检测方法,其特征在于:包括以下步骤:
通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象;
对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
2.根据权利要求1所述的一种基于网络流量的恶意软件检测方法,其特征在于:所述通过持续性算法,提取出访问行为与远控木马访问行为相符的可疑主机及外部访问对象,对可疑主机与外部访问对象间的通信流量进行分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果的具体步骤为:系统通过采集网络中主机的通信流量,每个检测周期从主机请求行为特征、通信特征两个方面对主机的通信流量进行检测,系统首先通过请求行为特征检测,提取出可疑感染主机及与其通信的外部对象,然后通过通信特征检测对请求行为特征提取出的可疑主机及外部对象进一步分析,提取出感染远控木马的主机及木马控制服务器的通信地址,形成最终检测结果。
3.根据权利要求2所述的一种基于网络流量的恶意软件检测方法,其特征在于:请求行为特征检测通过通信会话的时间信息,分析主机对外部特定对象的访问行为是否与远控木马的访问行为相符,即:是否具有重复尝试连接、会话时间较长等特征,通信特征检测主要是进一步分析请求行为特征的检测结果,计算可疑感染主机与外部对象之间通信流量的统计特征,通过半监督聚类算法,确定主机与外部对象之间通信特征是否与远控木马的通信特征相符。
4.根据权利要求2所述的一种基于网络流量的恶意软件检测方法,其特征在于:通过数据预处理、持续性算法、半监督聚类分析三个处理过程对请求行为特征、通信特征两个方面对主机的通信流量进行检测;
数据预处理过程主要是采集网络流量中主机的通信流量,提取主机与外部对象的通信会话信息,并存储到日志文件中,远控木马与僵尸网络十分相似,主要通过域名获取控制服务器的IP地址,以便与控制服务器建立通信连接,此外,远控木马与控制服务器之间通信主要使用TCP协议,因此,在原型实现时,系统只采集网络中主机主动发起连接并且目的地址能够关联上域名的TCP会话信息,并通过<域名、目的端口>标识主机请求的外部对象,即:系统将源地址、目的端口相同且目的地址对应于同一域名的TCP会话视为主机对同一外部目标的访问,为降低分析的数据量,系统通过域名白名单,对合法资源的TCP会话进行过滤;
持续性算法主要是对每个检测周期内主机的请求行为进行检测,算法以<请求主机、域名、目的端口>为分析对象,利用主机访问外部特定对象的TCP连接发生时间信息及TCP会话时长信息,通过多组不同宽度的观测窗口对时间进行划分,分析主机在不同宽度的观测窗口下,对外部目标的访问行为是否具有重复尝试连接、会话时间较长等特征,提取出可疑主机及外部对象;
半监督聚类分析过程主要是从通信特征角度,对持续性算法提取出的可疑感染主机及外部对象进行检测,算法通过可疑感染主机与外部对象连接成功的TCP会话信息,计算平均会话时长、平均包长等统计特征,利用半监督的X-means聚类算法进行聚类分析,提取出最终检测结果,半监督X-means聚类方法是对无监督聚类方法X-means的扩展,系统将少量有标注样本与大量无标注样本混合在一起,利用X-means算法进行聚类,通过有标注样本信息确定聚类结果中每个聚类所属类别,X-means算法与其它大量聚类算法相比,无需用户提供最终的聚类数量,系统之所以选取半监督聚类进行检测,主要因为实际收集到的木马流量样本数量有限以及互联网上日益增多的各种网络应用协议,针对远控木马通信流量的识别,不适合采取传统有监督学习的分类算法,此外,当有新的木马样本加入时,对于有监督学习的分类算法,还需重新训练、学习,以便建立新的识别模型。
5.根据权利要求4所述的一种基于网络流量的恶意软件检测方法,其特征在于:在所述持续性算法中,系统以周期T(默认为一天)定期分析每个主机对外部特定目标的访问行为,并通过持续性指标p衡量主机访问外部特定对象的行为是否与远控木马访问行为特征相符,即:是否具有重复尝试连接、会话时间较长等特征。与第四章中持续性算法设计思想相同,只是在分析过程中引入了会话时长信息。设<ts,te>为主机在一个分析周期内与外部对象通信的开始时间与结束时间,则W=te-ts为主机本次与外部对象通信行为的最长观测长度,系统通过基本观测间隔Δw将W划分为n+1个基本观测窗口{w0,w1,w2......wn},
设S={s1,s2.....sm}为主机与外部特定目标D在<ts,te>期间的所有TCP会话连接记录,S中包含所有连接成功的TCP会话及三次握手未成功的TCP会话,S中任意会话si,<t′si,t′ei>为会话si的开始及结束时间,则si在W中对应的开始工作窗口及结束窗口分别为:
将w′i至w″i间对应的基本观测窗口置为可用窗口,当S中所有会话完成计算后,则持续性指标p为:
当wi为可用窗口时,δi为1,否则δi为0
通过持续性指标p的计算方法,可以看到p可有效的反应以Δw为观测间隔,主机对外部对象的访问行为是否与远控木马的访问行为相符,例如:当木马控制服务器没有工作时,感染主机会按照一定的规律重复尝试连接,持续性指标p反应了以Δw为观测间隔,尝试行为是否具有重复性,当控制服务器开始工作时,持续性指标p反映了主机与控制服务器的通信时长,并且p也可刻画两者在一起的混合行为;
由于木马控制服务器没有工作时,感染主机的尝试连接规律事先不可预知,为更好的刻画这种尝试性规律,可以选择不同长度的观测窗口进行观测,为方便计算方法,不同观测窗口的长度选取基本观测窗口Δw倍数,对于k*Δw观测窗口,持续性指标其中当wi*k至w(i+1)*k-1任意窗口为可用窗口时,则δk i为1,否则为0,在检测过程中,对任意观测窗口,pk大于规定阈值λ时,则认为主机对特定外部目标的访问行为与远控木马访问行为相符,则作为可疑感染主机提取出来,以便通过半监督聚类分析过程进一步分析,否则认为主机的访问行为安全,不需进行后续处理,直接丢弃;
由于主机会话信息是通过网络流量镜像数据获得,在整个观测期间,主机可能随时发生关机、待机行为,为避免对分析结果的影响,在实验过程中,根据人们日常工作时间选取窗口长度L=180分钟,滑动距离ΔL=30分钟,持续性观测基本窗口Δw=1分钟,观测窗口长度分别为{1,5,10.15,30,60}分钟。
6.根据权利要求4所述的一种基于网络流量的恶意软件检测方法,其特征在于:所述半监督聚类包括聚类划分、类别映射、噪声过滤三个步骤,具体如下:
(1)聚类划分
算法通过X-means算法,对数据集合D进行聚类分析,将D中所有数据样本划分为K个聚类,即:C1,C2,....CK,其中聚类Ci包含的标注样本数量为li,未标注样本数量为ui
(2)类别映射
对于整个检测,只需将未标注样本数据集合U中的样本划分为合法流量与木马流量两类,设类别集合Y={0,1},y=0为合法流量,y=1为木马流量,由于在实际网络中木马流量所占比例很小,U中的数据样本大量为合法流量,对于U中包含的木马流量可视为异常点,在聚类时,这些异常点大量与标注样本划分在一起,因此,在对聚类C1,C2,....CK进行类别映射时,算法应尽量保证U中的数据样本大量映射到合法流量类别中,同样也需保证将标注样本集合L中大量样本映射到木马流量类别中,因此,定义决策函数如下:
<mrow> <mi>Q</mi> <mo>=</mo> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mo>|</mo> <mi>L</mi> <mo>|</mo> <mo>-</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <msub> <mi>l</mi> <mi>i</mi> </msub> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>&amp;lambda;</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mo>|</mo> <mi>U</mi> <mo>|</mo> <mo>-</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mrow> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <mo>|</mo> <mi>L</mi> <mo>|</mo> <mo>-</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&amp;lambda;</mi> <mn>2</mn> </msub> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow>
其中yi为Ci映射的类别,λ12为惩罚系数。通过Q定义可以看到:当Q取值最小时,算法则将集合U、L中的样本分别最大化的映射到合法流量、木马流量两类中。当所有C1,C2,....CK映射到合法流量类别时,风险为λ1|L|(记为:QN),此时算法没有任何分类能力,漏报达到最高;当全部映射到木马流量类别时,风险为λ2|U|(记为:QF),此时误报达到最高;当Q取值最小时,算法将在漏报与误报之间取得最佳平衡。
<mrow> <msup> <mi>Q</mi> <mo>&amp;prime;</mo> </msup> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <mrow> <mo>(</mo> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>&amp;lambda;</mi> <mn>2</mn> </msub> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>&amp;lambda;</mi> <mn>2</mn> </msub> <mo>|</mo> <mi>U</mi> <mo>|</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <mrow> <mo>(</mo> <mfrac> <mrow> <msub> <mi>&amp;lambda;</mi> <mn>1</mn> </msub> <msub> <mi>l</mi> <mi>i</mi> </msub> </mrow> <mrow> <msub> <mi>&amp;lambda;</mi> <mn>2</mn> </msub> <mo>|</mo> <mi>U</mi> <mo>|</mo> </mrow> </mfrac> <mo>-</mo> <mfrac> <msub> <mi>u</mi> <mi>i</mi> </msub> <mrow> <mo>|</mo> <mi>U</mi> <mo>|</mo> </mrow> </mfrac> <mo>)</mo> </mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> </mrow>
其中
要保证Q达到最优,只需保证Q'取值最大,即:对任意Ci进行映射的类别时,满足以下条件:
<mrow> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>1</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>&amp;lambda;</mi> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>L</mi> <mo>)</mo> </mrow> <mo>&gt;</mo> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>U</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>&amp;lambda;</mi> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>L</mi> <mo>)</mo> </mrow> <mo>&lt;</mo> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>U</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
当对漏报与误报风险视为等同时,即:QN=QF时,算法实质是采用条件概率作为决策函数,当p(Ci|L)>p(Ci|U)时,则将Ci映射到木马流量类别,反之映射到合法流量类别,当p(Ci|L)=p(Ci|U)时,可根据设置的阈值条件进行类别映射;
(3)噪声过滤
由于集合U中的样本数量远远大于集合L中的样本数量,在X-means算法聚类过程中,U中的样本对每个类的中心有着显著的影响,导致聚类结果中每个类Ci的中心与该类中标注样本所对应的木马通信流量的中心有一定的偏离,为降低这种影响,对所有类别映射为木马流量的聚类Ci,可通过Ci中标注样本估计木马流量所对应的聚类中心μi,通过X-means算法可知:
即:为Ci中所有标注的样本的均值,
对于Ci中所有待分析样本Xu,其与μi距离越近,说明与木马通信特征越相似,因此,计算Xu与μi之间的欧式距离dist(Xui),将dist(Xui)小于阈值ε的样本划分到木马流量类别,反之,Xu属于合法流量,并将Xu从Ci中删除,在实际试验中,选取ε=max(dist(Xki)),Xk∈Ci∧Xk∈L取得良好识别效果。
7.根据权利要求4所述的一种基于网络流量的恶意软件检测方法,其特征在于:在半监督聚类分析过程中,木马通信流量的识别具体为:远控木马通信具有会话时间长、响应流量大于请求流量以及响应报文包长较短等特征,因此,算法选取传输字节比、传输报文比、平均响应报文长度、会话时长四个统计属性作为分类特征,由于每天需要分析的数据量很大,为提高处理执行效率,算法采取分层聚类的方法,首先,通过粗粒度的聚类分析,将数据划分为多个聚类,然后对符合条件的每个聚类,进一步单独分析;
(1)基于<域名、目的端口>的粗粒度聚类分析
系统将<域名、目的端口>作为分析对象,通过所有请求主机的会话信息,计算每个<域名、目的端口>的分类特征,并通过半监督X-means聚类方法进行聚类分析,提取出所有判定为木马流量的分类Ci及<域名、目的端口>,通过粗粒度的聚类分析,系统提取出通信特征与木马流量相似的外部目标,降低后续分析的数据量,提高执行效率;
(2)基于<源IP地址、域名、目的端口>的细粒度聚类分析
系统对粗粒度聚类分析提取出的每个类Ci分别进行单独分析,对于Ci中每个<域名、目的端口>,系统通过主机的会话信息计算每个主机对Ci中的<域名、目的端口>的分类特征(即:以<源IP地址、域名、目的端口>为分析对象),通过半监督的X-means聚类方法,提取出判定为木马流量的分类Mi,如果一个<域名、目的端口>为木马控制服务器的访问地址,则对该<域名、目的端口>访问的主机应大量分类到木马流量的类别中,设Ci中任意<域名、目的端口>ri,其有hi个不同IP地址访问,其中划分到木马流量的分类中的数量为mi,如果mi/hi>θ,其中θ为阈值,则判定ri为木马控制服务器所在地址,所有访问主机为感染主机,反之则判定ri为合法资源,所有访问为合法访问,细粒度聚类分析主要目的是分析主机与外部目标的流量特征是否与木马流量相似,并且同时分析访问该外部目标的所有主机的行为是否一致。
CN201710839185.9A 2017-09-18 2017-09-18 一种基于网络流量的恶意软件检测方法 Active CN107592312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710839185.9A CN107592312B (zh) 2017-09-18 2017-09-18 一种基于网络流量的恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710839185.9A CN107592312B (zh) 2017-09-18 2017-09-18 一种基于网络流量的恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN107592312A true CN107592312A (zh) 2018-01-16
CN107592312B CN107592312B (zh) 2021-04-30

Family

ID=61046954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710839185.9A Active CN107592312B (zh) 2017-09-18 2017-09-18 一种基于网络流量的恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN107592312B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446546A (zh) * 2018-03-20 2018-08-24 深信服科技股份有限公司 异常访问检测方法、装置、设备及计算机可读存储介质
CN108494746A (zh) * 2018-03-07 2018-09-04 长安通信科技有限责任公司 一种网络端口流量异常检测方法及系统
CN108768954A (zh) * 2018-05-04 2018-11-06 中国科学院信息工程研究所 一种dga恶意软件识别方法
CN108769034A (zh) * 2018-06-01 2018-11-06 杭州安恒信息技术股份有限公司 一种实时在线监测远控木马控制端ip地址的方法及装置
CN108920589A (zh) * 2018-06-26 2018-11-30 百度在线网络技术(北京)有限公司 浏览劫持识别方法、装置、服务器及存储介质
CN109145030A (zh) * 2018-06-26 2019-01-04 阿里巴巴集团控股有限公司 一种异常数据访问的检测方法和装置
CN109600363A (zh) * 2018-11-28 2019-04-09 南京财经大学 一种物联网终端网络画像及异常网络访问行为检测方法
CN109714335A (zh) * 2018-12-26 2019-05-03 北京天融信网络安全技术有限公司 一种信息检测方法及信息检测装置
CN109889547A (zh) * 2019-03-29 2019-06-14 新华三信息安全技术有限公司 一种异常网络设备的检测方法及装置
CN110311930A (zh) * 2019-08-01 2019-10-08 杭州安恒信息技术股份有限公司 远控回连行为的识别方法、装置及电子设备
CN110336789A (zh) * 2019-05-28 2019-10-15 北京邮电大学 基于混合学习的Domain-flux僵尸网络检测方法
CN110493235A (zh) * 2019-08-23 2019-11-22 四川长虹电器股份有限公司 一种基于网络流量特征的移动终端恶意软件同步检测方法
CN111586075A (zh) * 2020-05-26 2020-08-25 国家计算机网络与信息安全管理中心 基于多尺度流分析技术的隐蔽信道检测方法
CN111953665A (zh) * 2020-07-28 2020-11-17 深圳供电局有限公司 服务器攻击访问识别方法及系统、计算机设备、存储介质
CN113111951A (zh) * 2021-04-20 2021-07-13 浙江网商银行股份有限公司 数据处理方法以及装置
CN113992442A (zh) * 2021-12-28 2022-01-28 北京微步在线科技有限公司 一种木马连通成功检测方法及装置
CN115134096A (zh) * 2021-03-11 2022-09-30 深信服科技股份有限公司 一种rat连接检测方法、流量审计设备及介质
CN116896478A (zh) * 2023-08-29 2023-10-17 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333313A (zh) * 2011-10-18 2012-01-25 中国科学院计算技术研究所 移动僵尸网络特征码生成方法和移动僵尸网络检测方法
CN103701814A (zh) * 2013-12-27 2014-04-02 北京启明星辰信息技术股份有限公司 一种基于行为检测实现网络流量识别的方法及装置
CN103746982A (zh) * 2013-12-30 2014-04-23 中国科学院计算技术研究所 一种http网络特征码自动生成方法及其系统
CN104283897A (zh) * 2014-10-29 2015-01-14 刘胜利 基于多数据流聚类分析的木马通信特征快速提取方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333313A (zh) * 2011-10-18 2012-01-25 中国科学院计算技术研究所 移动僵尸网络特征码生成方法和移动僵尸网络检测方法
CN103701814A (zh) * 2013-12-27 2014-04-02 北京启明星辰信息技术股份有限公司 一种基于行为检测实现网络流量识别的方法及装置
CN103746982A (zh) * 2013-12-30 2014-04-23 中国科学院计算技术研究所 一种http网络特征码自动生成方法及其系统
CN104283897A (zh) * 2014-10-29 2015-01-14 刘胜利 基于多数据流聚类分析的木马通信特征快速提取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张永斌: "基于主机行为特征的恶意软件检测方法", 《计算机应用研究》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494746A (zh) * 2018-03-07 2018-09-04 长安通信科技有限责任公司 一种网络端口流量异常检测方法及系统
CN108446546A (zh) * 2018-03-20 2018-08-24 深信服科技股份有限公司 异常访问检测方法、装置、设备及计算机可读存储介质
CN108768954B (zh) * 2018-05-04 2020-07-10 中国科学院信息工程研究所 一种dga恶意软件识别方法
CN108768954A (zh) * 2018-05-04 2018-11-06 中国科学院信息工程研究所 一种dga恶意软件识别方法
CN108769034A (zh) * 2018-06-01 2018-11-06 杭州安恒信息技术股份有限公司 一种实时在线监测远控木马控制端ip地址的方法及装置
CN108920589A (zh) * 2018-06-26 2018-11-30 百度在线网络技术(北京)有限公司 浏览劫持识别方法、装置、服务器及存储介质
CN109145030A (zh) * 2018-06-26 2019-01-04 阿里巴巴集团控股有限公司 一种异常数据访问的检测方法和装置
CN108920589B (zh) * 2018-06-26 2021-08-10 百度在线网络技术(北京)有限公司 浏览劫持识别方法、装置、服务器及存储介质
CN109600363A (zh) * 2018-11-28 2019-04-09 南京财经大学 一种物联网终端网络画像及异常网络访问行为检测方法
CN109714335A (zh) * 2018-12-26 2019-05-03 北京天融信网络安全技术有限公司 一种信息检测方法及信息检测装置
CN109889547A (zh) * 2019-03-29 2019-06-14 新华三信息安全技术有限公司 一种异常网络设备的检测方法及装置
CN110336789A (zh) * 2019-05-28 2019-10-15 北京邮电大学 基于混合学习的Domain-flux僵尸网络检测方法
CN110311930A (zh) * 2019-08-01 2019-10-08 杭州安恒信息技术股份有限公司 远控回连行为的识别方法、装置及电子设备
CN110493235A (zh) * 2019-08-23 2019-11-22 四川长虹电器股份有限公司 一种基于网络流量特征的移动终端恶意软件同步检测方法
CN111586075B (zh) * 2020-05-26 2022-06-14 国家计算机网络与信息安全管理中心 基于多尺度流分析技术的隐蔽信道检测方法
CN111586075A (zh) * 2020-05-26 2020-08-25 国家计算机网络与信息安全管理中心 基于多尺度流分析技术的隐蔽信道检测方法
CN111953665A (zh) * 2020-07-28 2020-11-17 深圳供电局有限公司 服务器攻击访问识别方法及系统、计算机设备、存储介质
CN111953665B (zh) * 2020-07-28 2022-08-30 深圳供电局有限公司 服务器攻击访问识别方法及系统、计算机设备、存储介质
CN115134096A (zh) * 2021-03-11 2022-09-30 深信服科技股份有限公司 一种rat连接检测方法、流量审计设备及介质
CN113111951A (zh) * 2021-04-20 2021-07-13 浙江网商银行股份有限公司 数据处理方法以及装置
CN113992442B (zh) * 2021-12-28 2022-03-18 北京微步在线科技有限公司 一种木马连通成功检测方法及装置
CN113992442A (zh) * 2021-12-28 2022-01-28 北京微步在线科技有限公司 一种木马连通成功检测方法及装置
CN116896478A (zh) * 2023-08-29 2023-10-17 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统
CN116896478B (zh) * 2023-08-29 2024-04-02 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统

Also Published As

Publication number Publication date
CN107592312B (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN107592312B (zh) 一种基于网络流量的恶意软件检测方法
Moustafa et al. A holistic review of network anomaly detection systems: A comprehensive survey
Haddadi et al. Benchmarking the effect of flow exporters and protocol filters on botnet traffic classification
CN109067586B (zh) DDoS攻击检测方法及装置
CN111935170B (zh) 一种网络异常流量检测方法、装置及设备
Bhuyan et al. Survey on incremental approaches for network anomaly detection
CN107483488A (zh) 一种恶意Http检测方法及系统
CN107370752B (zh) 一种高效的远控木马检测方法
Sathya et al. Discriminant analysis based feature selection in kdd intrusion dataset
CN110519228B (zh) 一种黑产场景下恶意云机器人的识别方法及系统
CN110611640A (zh) 一种基于随机森林的dns协议隐蔽通道检测方法
Fraunholz et al. YAAS-On the Attribution of Honeypot Data.
CN111245784A (zh) 多维度检测恶意域名的方法
WO2024065956A1 (zh) 一种基于数据多维熵值指纹的网络异常行为检测方法
CN116346418A (zh) 基于联邦学习的DDoS检测方法及装置
CN110493253B (zh) 一种基于树莓派设计的家用路由器的僵尸网络分析方法
CN109067778B (zh) 一种基于蜜网数据的工控扫描器指纹识别方法
Qiao et al. Mining of attack models in ids alerts from network backbone by a two-stage clustering method
Sawaya et al. Detection of attackers in services using anomalous host behavior based on traffic flow statistics
Min et al. Online Internet traffic identification algorithm based on multistage classifier
Lampesberger et al. An on-line learning statistical model to detect malicious web requests
CN112235242A (zh) 一种c&amp;c信道检测方法及系统
Sujyothi et al. Dynamic malware analysis and detection in virtual environment
Lu et al. Unsupervised anomaly detection using an evolutionary extension of k-means algorithm
CN111447169A (zh) 一种在网关上的实时恶意网页识别方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240522

Address after: No. 13 Xijiao Village, Xijiao Administrative Village, Dongguantun Town, Juye County, Heze City, Shandong Province, 274932

Patentee after: Wang Qinhua

Country or region after: China

Address before: Room B415, 4th Floor, Building 4, Qilu Software Park, No.1 Shunhua Road, High tech Zone, Jinan City, Shandong Province, 250101 (Building F, Entrepreneurship Plaza)

Patentee before: JINAN HUXIN SOFTWARE CO.,LTD.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240708

Address after: Building 17, Industrialization Base for Small and Medium sized Enterprises, No. 1777 Dazheng Road, High tech Zone, Jinan City, Shandong Province, China, at 412-43

Patentee after: Shandong Maite Information Technology Co.,Ltd.

Country or region after: China

Address before: No. 13 Xijiao Village, Xijiao Administrative Village, Dongguantun Town, Juye County, Heze City, Shandong Province, 274932

Patentee before: Wang Qinhua

Country or region before: China