法律状态公告日
法律状态信息
法律状态
2020-08-07
专利权的转移 IPC(主分类):H04L12/26 登记生效日:20200717 变更前: 变更后: 申请日:20110613
专利申请权、专利权的转移
2019-01-22
专利权的转移 IPC(主分类):H04L12/26 登记生效日:20190103 变更前: 变更后: 申请日:20110613
专利申请权、专利权的转移
2016-10-19
专利权的转移 IPC(主分类):H04L12/26 登记生效日:20160926 变更前: 变更后: 申请日:20110613
专利申请权、专利权的转移
2013-09-25
授权
授权
2013-07-24
著录事项变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20110613
著录事项变更
2011-11-23
实质审查的生效 IPC(主分类):H04L29/06 申请日:20110613
实质审查的生效
2011-09-28
公开
公开
查看全部
(一)、技术领域:本发明涉及一种木马通信行为特征提取方法,特别是涉及一种基于网络数据流分析的木马通信行为特征提取方法。
(二)、背景技术:目前,现有的窃密型木马检测技术主要采用特征码匹配技术。相较于基于特征码匹配的检测技术,基于通信行为特征分析的检测技术在时效性和扩展性方面具有明显优势,有利于发现潜在的、未知的网络窃密行为和威胁,具有更广的应用前景。然而基于通信行为的木马检测算法往往存在计算复杂度较高的问题,在实时监控应用中,给监控系统带来庞大的计算开销。因此,如何设计具有高检测性能且计算复杂度较低的检测算法,进而实时有效的检测窃密型木马的网络通信行为就成为当前一个重要的理论和技术问题。
基于通信行为的木马检测方法很多,但大部分已有方法的检测通用性较差,检测能有力有限,而且计算效率不高。
Borders等利用HTTP请求的时间间隔、请求包大小、包头格式、带宽占用、请求规则等特征构造各种过滤器检测木马通信。然而,木马可以通过在通信细节上的简单改变绕过文章中所构造的各种过滤器。例如:木马只需将请求包的大小限制在某一阈值内即可使请求包大小过滤器失去功效。此种方法只能针对HTTP协议进行检测,通用性较差。而且此种方法还需要对数据包内容进行详细解析,效率较低。
Pack等提出了一种通过使用数据流的行为轮廓对HTTP隐蔽通道进行检测的方法。行为轮廓基于大量的度量,如平均数据包大小、小数据包和大数据包比例、数据包模型变化、所有发送/接收数据包的总数和连接时间。如果一个数据流的观察特性偏离正常HTTP数据包的行为轮廓,则极有可能是HTTP隐蔽通道。方法主要针对HTTP隧道进行检测,通用性较差。
Tumoian等利用正常协议产生的连续TCP ISN号来训练Elman网络,然后将实际的ISN号与神经网络所预测的ISN号比对,当实际值与预测值的差异超过预先设定的阈值时则认为有隐蔽通道存在。作者通过这种方法实现了对NUSHU隐蔽通道的检测。但该方法只能对特定木马通信进行检测同样不具备通用性。
Zhang和Paxson利用数据包到达时间间隔和数据包大小描述了一种木马通信交互模型,用于检测木马和后门等恶意程序。该模型对木马通信行为进行如下描述:1、木马通信过程中相邻数据包到达时间间隔符合帕累托分布;2、由于木马通信过程中存在命令交互,所以小数据包应占一定比例。但实际木马通信过程中可以通过不同的算法使相邻数据包到达时间间隔满足各种分布要求,加之数据包到达时间间隔在很大程度上会受到网络拓扑的影响,所以数据包到达时间间隔用其作为行为描述存在一定弊端。且木马通信过程中的短命令可以隐藏在较大的HTML页面信息中,所以强调通信过程中的小数据包的比例并不能实现有效检测。
(三)、发明内容:
本发明要解决的技术问题是:克服现有技术的缺陷,提供一种基于网络数据流分析的木马通信行为特征提取方法,该方法能够针对木马通信不同阶段的行为特点,通过分析网络数据流有效提取木马的通信行为特征,对木马通信进行全面的检测,具有较高的性能和计算效率。
本发明的技术方案:
一种基于网络数据流分析的木马通信行为特征提取方法,将木马通信过程分为三个阶段:建立连接阶段、连接保持无操作阶段和操作阶段,通过对网络数据流分析,分别针这三个阶段提取相应的通信行为特征;
目前主流木马采用如下连接模式:首先,木马被控端按照控制端预设的控制域名向远程域名服务器发送DNS请求,进而根据收到的DNS响应报文解析出控制端的IP地址,并向控制端的IP地址发起连接;建立连接阶段的木马通信与正常网络通信的区别包括:DNS响应IP异常和DNS请求流量异常。
DNS响应IP异常是由于部分木马程序被控端上线策略中采用了静默模式,所谓静默模式,即由于控制端在不需要被控端上线时,会将控制域名对应的IP改为特殊IP;当被控端收到内容为特殊IP的域名解析数据包时,进入静默状态;采用静默模式可增强木马的隐蔽性。
DNS请求流量异常是由于当木马控制端与被控端的网络不连通时,被控端通常会误以为域名解析存在错误,从而反复大量的发出DNS请求。
在建立连接阶段,木马通信特征的提取含有DNS响应IP异常特征的提取和DNS请求流量异常特征的提取;
DNS响应IP异常特征的提取方法为:当被控端收到的域名解析数据包含有特殊IP时,即可判断发生了DNS响应IP异常,特殊I P是指国际互联网标准RFC规定的非广域网IP地址;常见的特殊IP如:127.0.0.1,0.0.0.0等。
DNS请求流量异常特征的提取方法为:首先,被控端将DNS数据包按照源IP进行划分,即每个源IP作为会话的唯一标识,并选用哈希表作为记录会话的数据结构;该哈希表的规模视实际情况而定,例如对C类网络采用256元的哈希表。其次,引入累加和算法(cumulative sums,CUSUM)的思想检测DNS请求流量异常,提取任意一个源IP对应的DNS流量特征序列
>
其中,k为区分参数,当Zi≥w时,即可判断发生了DNS请求流量异常,w为判断值;在n=20、t=30秒、k=5的情况下,通常取w=50;
在连接保持无操作阶段,首先,将捕获的TCP协议数据按照网络会话进行整理,然后,进行连接保持无操作阶段木马通信特征的提取;
连接保持无操作阶段的木马通信与正常网络通信的差别是由木马的心跳行为造成的。因此,检测连接保持无操作阶段的木马通信行为可以通过检测“心跳包”来实现。“心跳包”具有明显的统计特征,连接保持无操作阶段木马通信特征的提取采用传统的统计分析方法结合差分分析方法。
在连接保持无操作阶段木马通信特征的提取中,提取如下会话统计特征用于检测木马在连接保持无操作阶段的通信行为:“心跳间隙”的平稳性小于阈值;
相对于连接保持无操作阶段而言,交互操作阶段更为复杂,提取特征更为困难,因此需要剖析整个操作会话并与正常会话进行对比分析。通过大量的样本分析和实验发现正常的网络会话和木马操作会话在许多统计特征上都存在明显的差异。
在操作阶段,首先,将捕获的TCP协议数据按照网络会话进行整理,然后,进行操作阶段木马通信特征的提取;操作阶段木马通信特征的提取分四个方面,分别为:
第一:针对木马通信过程的长时交互的特点,提取以下行为特征:通信时长、通信小包数量,当通信时长大于92.8秒、通信小包数量大于10个时为异常特征。木马通信过程中,命令交互、文件资源搜索和文件传输需要大量的等待时间,再加上人类的思考时间,使得通信会话持续时间较长。将长度小于200字节的数据包称为通信小包,否则称为通信大包;控制端发送的数据包绝大部分为通信小包,而被控端发送的承载主机信息的数据包大部分是大于200字节的数据包。
第二:针对木马被控端在通信中扮演资源服务器的角色,提取以下行为特征:被控主机上传通信量,被控主机上传通信量大于15700字节时为异常特征。被控端根据控制端的控制命令将被控主机的信息和文件资源不断上传,导致会话上传数据量偏大。
第三:针对木马通信过程中数据包分布特点,提取以下行为特征:会话接收小包数量与会话小包数量的比值,该特征值大于0.5时为异常特征;通信过程中被控端接收到的绝大部分是控制命令,所以接收到的基本都是小包;而被控端发送的信息以大包为主。
第四:针对木马通信时的数据流表现为由内向外的上传流的特点,提取以下特征:被控端上传数据量与下载数据量的比值。该特征值大于1时为异常特征,此时被控端上传数据量大于下载数据量。
通信时长、通信小包数量、被控主机上传通信量、会话接收小包数量与会话小包数量的比值、被控端上传数据量与下载数据量的比值这些特征的定义均以被控主机为参照物,其中提到的接收和发送均是相对于被控主机而言的。
将捕获的TCP协议数据按照网络会话进行整理是指:将数据包按照四元组进行会话划分,即每个会话通过四元组唯一标识,并选用会话链表作为记录会话的数据结构;选用会话链表作为记录会话的数据结构的原因是:由于网络通信是一个动态的过程,会话中的数据包随着通信的进行而不断增加,用于保存会话的数据结构也要随之发生动态变化。
每一个会话链表都要用四元组进行标识,系统需要根据数据包中四元组查找相应的会话,将数据包信息添加到相应的会话链表中;因此四元组的记录形式和查找速度将直接影响系统效率。
四元组中的元素为源IP地址、源端口、目的IP地址和目的端口;四元组可以使用多维数组或多级链表进行保存;多维数组具有存储效率高、查找方便、存取速度快等优点,但是多维数组要求预先为其分配存储空间,一旦建立无法改变多维数组大小,容易造成空间浪费,而且网络会话数量不固定,无法为其预先分配空间;链表的优点是可动态添加或删除、不需要预先分配空间,但缺点是查找速度慢;
系统采用数组链表结构来记录四元组,数组链表结构是指数组和链表相结合的数据结构;这样虽然牺牲了一定的存储空间,但提高了查找效率。系统利用数组建立哈希表,将哈希表作为链表的索引来提高查找效率。
系统针对数据包四元组中各元素的不同概率分布,把分布均匀的元素分量设为数组链表,把分布不均匀的元素分量设为链表,这样可以获得更高的查找效率,具体以数组链表结构为例分析如下:
设会话数量为S,若将所有的会话以单链表的形式进行组建,每次系统接收到数据包后都要对会话链表进行顺序查找(顺序查找的平均时间复杂度为>)。
以数组链表的形式记录会话,设数组长度为n,数组的第i个节点下的会话链表个数为αi,则产生第i个节点的概率为
对链表进行查询的平均时间复杂度为:
>
根据定理均方根大于等于算术平均数可得:
>
将不等式两边同时平方可得:
>
当且仅当α1=α2=…=αn时,其中
由此可知当数组等分链表时查找的时间复杂度最低:
四元组中元素的取值范围和会话数量按各元素取值的分布情况:
(1)源IP地址(内网主机IP地址):源IP地址的取值范围为:10.0.0.0~10.255.255.25、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255,相对互联网而言,源IP地址空间小且分布均匀。
(2)源端口:根据协议规定源端口一般使用1024~65535之间的任意端口,源端口的取值空间较大,而且很可能出现所有网络会话均使用不同源端口的情况,因此,使用源端口作为第一级链表和直接建立单链表的查找时间复杂度相差不大。
(3)目的IP地址:目的IP地址的取值范围为整个IPv4地址空间,范围巨大而且分布无序,使用其作为一级链表与使用源端口作为一级链表的情况相同。
(4)目的端口:目的端口一般为协议的制定端口,范围主要集中在1~1023之间,但当前的网络通信中以HTTP、HTTPS等协议为主,因此大部分网络通信的目的端口为80、443、8080等端口,这直接导致网络会话数量按照目的端口分布的不均匀性,使用目的端口作为一级链表对降低时间复杂度没有太大的帮助。
综上所述,源IP地址取值范围较小而且分布均匀,会话数量按照源IP地址的分布更为均匀,符合设计要求。而目的端口的分布最不均匀,绝大部分的会话都集中在少数几个通信端口上,若以其作为一级链表,大部分会话分布将集中在少数几个端口节点下,查找时间没有得到明显优化。
系统利用哈希表+多级链表的结构记录源IP地址分量,源端口分量、目的IP地址分量、目的端口分量依次分别建立多级链表,系统选取源IP地址的最后1个字节进行哈希值的计算建立哈希表,这是因为:局域网的IP地址本身规律性较强,但是局域网的IP地址范围分为3个地址段,每个地址段所能容纳的主机数量也不同,无法以整个IP地址字段建立哈希表。相对而言IP地址的最后1个字节的分布更为均匀,而且一般都是连续分配,其分布范围为1~254。
在理想状态下,通过此种方法进行改进后查找时间复杂度为原来的1/254,系统效率得到明显提升。
“心跳间隙”的平稳性小于阈值是指:当“心跳间隙”的平稳性小于阈值时,则判定其为木马通信,反之则为正常网络通信;
记原始单向数据流数据包时间间隔采样集合(单位:秒)为:
>
其中,w1i1为对原始数据作差分后的取值;此时“心跳间隙”的平稳性小于阈值是指:
>
其中,Stability为“心跳间隙”的平稳性,w1为阈值(通常取w1=0.01)。
下面对木马通信特征提取分别进行计算复杂度分析:
①连接阶段。假设某个源IP发出n个DNS请求数据包,相应地收到n个DNS响应数据包。则判定是否存在DNS响应IP异常的计算复杂度为O(n),判断DNS请求流量是否异常的计算复杂度为O(n)。
②连接保持无操作阶段。假设会话包含n个数据包,由于提取“心跳间隙”平稳性时采用差分分析,该算法的计算复杂度为O(n)。
③操作阶段。假设会话包含n个数据包,除提取通信时长的计算复杂度为O(1)外,提取其他行为特征的计算复杂度均为O(n)。
综上所述,本发明所选取的通信行为特征的最坏计算复杂度为O(n),因此本发明的方法的计算效率较高。
本发明的有益效果:
1、本发明针对木马通信过程的不同阶段,分析木马通信行为与正常网络通信行为的差别,并结合传统的统计分析和模式识别方法,深入挖掘二者之间的差别并提取网络通信特征。在此基础上,可根据通信行为特征的特点设计快速的木马通信行为检测算法,在保证检测精度的同时提高检测效率。利用本发明可以实现对网络中的木马窃密行为进行检测。
(四)、附图说明:
图1为通信时长采样图;
图2为会话接收小包数量与会话小包数量的比值采样图;
图3为被控端上传数据量与下载数据量的比值采样图;
图4为通信小包数量采样图;
图5为被控主机上传通信量采样图。
(五)、具体实施方式:
基于网络数据流分析的木马通信行为特征提取方法为:将木马通信过程分为三个阶段:建立连接阶段、连接保持无操作阶段和操作阶段,通过对网络数据流分析,分别针这三个阶段提取相应的通信行为特征;
目前主流木马采用如下连接模式:首先,木马被控端按照控制端预设的控制域名向远程域名服务器发送DNS请求,进而根据收到的DNS响应报文解析出控制端的IP地址,并向控制端的IP地址发起连接;建立连接阶段的木马通信与正常网络通信的区别包括:DNS响应IP异常和DNS请求流量异常。
DNS响应IP异常是由于部分木马程序被控端上线策略中采用了静默模式,所谓静默模式,即由于控制端在不需要被控端上线时,会将控制域名对应的IP改为特殊IP;当被控端收到内容为特殊IP的域名解析数据包时,进入静默状态;采用静默模式可增强木马的隐蔽性。
DNS请求流量异常是由于当木马控制端与被控端的网络不连通时,被控端通常会误以为域名解析存在错误,从而反复大量的发出DNS请求。
在建立连接阶段,木马通信特征的提取含有DNS响应IP异常特征的提取和DNS请求流量异常特征的提取;
DNS响应IP异常特征的提取方法为:当被控端收到的域名解析数据包含有特殊IP时,即可判断发生了DNS响应IP异常,特殊IP是指国际互联网标准RFC规定的非广域网IP地址;常见的特殊IP如:127.0.0.1,0.0.0.0等。
DNS请求流量异常特征的提取方法为:首先,被控端将DNS数据包按照源IP进行划分,即每个源IP作为会话的唯一标识,并选用哈希表作为记录会话的数据结构;该哈希表的规模视实际情况而定,例如对C类网络采用256元的哈希表。其次,引入累加和算法(cumulative sums,CUSUM)的思想检测DNS请求流量异常,提取任意一个源IP对应的DNS流量特征序列
>
其中,k为区分参数,当Zi≥w时,即可判断发生了DNS请求流量异常,w为判断值;在n=20、t=30秒、k=5的情况下,通常取w=50;
在连接保持无操作阶段,首先,将捕获的TCP协议数据按照网络会话进行整理,然后,进行连接保持无操作阶段木马通信特征的提取;
连接保持无操作阶段的木马通信与正常网络通信的差别是由木马的心跳行为造成的。因此,检测连接保持无操作阶段的木马通信行为可以通过检测“心跳包”来实现。“心跳包”具有明显的统计特征,连接保持无操作阶段木马通信特征的提取采用传统的统计分析方法结合差分分析方法。
在连接保持无操作阶段木马通信特征的提取中,提取如下会话统计特征用于检测木马在连接保持无操作阶段的通信行为:“心跳间隙”的平稳性小于阈值;
相对于连接保持无操作阶段而言,交互操作阶段更为复杂,提取特征更为困难,因此需要剖析整个操作会话并与正常会话进行对比分析。通过大量的样本分析和实验发现正常的网络会话和木马操作会话在许多统计特征上都存在明显的差异。
在操作阶段,首先,将捕获的TCP协议数据按照网络会话进行整理,然后,进行操作阶段木马通信特征的提取;操作阶段木马通信特征的提取分四个方面,分别为:
第一:针对木马通信过程的长时交互的特点,提取以下行为特征:通信时长、通信小包数量,当通信时长大于92.8秒、通信小包数量大于10个时为异常特征。木马通信过程中,命令交互、文件资源搜索和文件传输需要大量的等待时间,再加上人类的思考时间,使得通信会话持续时间较长。将长度小于200字节的数据包称为通信小包,否则称为通信大包;控制端发送的数据包绝大部分为通信小包,而被控端发送的承载主机信息的数据包大部分是大于200字节的数据包。
第二:针对木马被控端在通信中扮演资源服务器的角色,提取以下行为特征:被控主机上传通信量,被控主机上传通信量大于15700字节时为异常特征。被控端根据控制端的控制命令将被控主机的信息和文件资源不断上传,导致会话上传数据量偏大。
第三:针对木马通信过程中数据包分布特点,提取以下行为特征:会话接收小包数量与会话小包数量的比值,该特征值大于0.5时为异常特征;通信过程中被控端接收到的绝大部分是控制命令,所以接收到的基本都是小包;而被控端发送的信息以大包为主。
第四:针对木马通信时的数据流表现为由内向外的上传流的特点,提取以下特征:被控端上传数据量与下载数据量的比值。该特征值大于1时为异常特征,此时被控端上传数据量大于下载数据量。
通信时长、通信小包数量、被控主机上传通信量、会话接收小包数量与会话小包数量的比值、被控端上传数据量与下载数据量的比值这些特征的定义均以被控主机为参照物,其中提到的接收和发送均是相对于被控主机而言的。
通信时长、会话接收小包数量与会话小包数量的比值、被控端上传数据量与下载数据量的比值、通信小包数量、被控主机上传通信量这5个特征的采样图分别如图1~图5所示,图中,Normal表示正常通信行为,Trojan表示木马通信行为。
将捕获的TCP协议数据按照网络会话进行整理是指:将数据包按照四元组进行会话划分,即每个会话通过四元组唯一标识,并选用会话链表作为记录会话的数据结构;选用会话链表作为记录会话的数据结构的原因是:由于网络通信是一个动态的过程,会话中的数据包随着通信的进行而不断增加,用于保存会话的数据结构也要随之发生动态变化。
每一个会话链表都要用四元组进行标识,系统需要根据数据包中四元组查找相应的会话,将数据包信息添加到相应的会话链表中;因此四元组的记录形式和查找速度将直接影响系统效率。
四元组中的元素为源IP地址、源端口、目的IP地址和目的端口;四元组可以使用多维数组或多级链表进行保存;多维数组具有存储效率高、查找方便、存取速度快等优点,但是多维数组要求预先为其分配存储空间,一旦建立无法改变多维数组大小,容易造成空间浪费,而且网络会话数量不固定,无法为其预先分配空间;链表的优点是可动态添加或删除、不需要预先分配空间,但缺点是查找速度慢;
系统采用数组链表结构来记录四元组,数组链表结构是指数组和链表相结合的数据结构;这样虽然牺牲了一定的存储空间,但提高了查找效率。系统利用数组建立哈希表,将哈希表作为链表的索引来提高查找效率。
系统针对数据包四元组中各元素的不同概率分布,把分布均匀的元素分量设为数组链表,把分布不均匀的元素分量设为链表,这样可以获得更高的查找效率,具体以数组链表结构为例分析如下:
设会话数量为S,若将所有的会话以单链表的形式进行组建,每次系统接收到数据包后都要对会话链表进行顺序查找(顺序查找的平均时间复杂度为>)。
以数组链表的形式记录会话,设数组长度为n,数组的第i个节点下的会话链表个数为αi,则产生第i个节点的概率为
对链表进行查询的平均时间复杂度为:
>
根据定理均方根大于等于算术平均数可得:
>
将不等式两边同时平方可得:
>
当且仅当α1=α2=…=αn时,其中
由此可知当数组等分链表时查找的时间复杂度最低:
四元组中元素的取值范围和会话数量按各元素取值的分布情况:
(1)源IP地址(内网主机IP地址):源IP地址的取值范围为:10.0.0.0~10.255.255.25、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255,相对互联网而言,源IP地址空间小且分布均匀。
(2)源端口:根据协议规定源端口一般使用1024~65535之间的任意端口,源端口的取值空间较大,而且很可能出现所有网络会话均使用不同源端口的情况,因此,使用源端口作为第一级链表和直接建立单链表的查找时间复杂度相差不大。
(3)目的IP地址:目的IP地址的取值范围为整个IPv4地址空间,范围巨大而且分布无序,使用其作为一级链表与使用源端口作为一级链表的情况相同。
(4)目的端口:目的端口一般为协议的制定端口,范围主要集中在1~1023之间,但当前的网络通信中以HTTP、HTTPS等协议为主,因此大部分网络通信的目的端口为80、443、8080等端口,这直接导致网络会话数量按照目的端口分布的不均匀性,使用目的端口作为一级链表对降低时间复杂度没有太大的帮助。
综上所述,源IP地址取值范围较小而且分布均匀,会话数量按照源IP地址的分布更为均匀,符合设计要求。而目的端口的分布最不均匀,绝大部分的会话都集中在少数几个通信端口上,若以其作为一级链表,大部分会话分布将集中在少数几个端口节点下,查找时间没有得到明显优化。
系统利用哈希表+多级链表的结构记录源IP地址分量,源端口分量、目的IP地址分量、目的端口分量依次分别建立多级链表,系统选取源IP地址的最后1个字节进行哈希值的计算建立哈希表,这是因为:局域网的IP地址本身规律性较强,但是局域网的IP地址范围分为3个地址段,每个地址段所能容纳的主机数量也不同,无法以整个IP地址字段建立哈希表。相对而言IP地址的最后1个字节的分布更为均匀,而且一般都是连续分配,其分布范围为1~254。
在理想状态下,通过此种方法进行改进后查找时间复杂度为原来的1/254,系统效率得到明显提升。
“心跳间隙”的平稳性小于阈值是指:当“心跳间隙”的平稳性小于阈值时,则判定其为木马通信,反之则为正常网络通信;
记原始单向数据流数据包时间间隔采样集合(单位:秒)为:
>
其中,w1i1为对原始数据作差分后的取值;此时“心跳间隙”的平稳性小于阈值是指:
>
其中,Stability为“心跳间隙”的平稳性,w1为阈值(通常取w1=0.01)。
机译: 基于时空/频域混合学习的行为特征提取方法,系统及装置
机译: 在数据通信网络中进行基于窗口协议的数据流分析的专家系统方法
机译: 用于在数据通信网络中执行基于窗口协议的数据流分析的专家系统方法