CN101051958A - 网络流行为的行为分析参数的提取方法 - Google Patents

网络流行为的行为分析参数的提取方法 Download PDF

Info

Publication number
CN101051958A
CN101051958A CNA2007100990961A CN200710099096A CN101051958A CN 101051958 A CN101051958 A CN 101051958A CN A2007100990961 A CNA2007100990961 A CN A2007100990961A CN 200710099096 A CN200710099096 A CN 200710099096A CN 101051958 A CN101051958 A CN 101051958A
Authority
CN
China
Prior art keywords
network
network flow
hash
same
value
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
CNA2007100990961A
Other languages
English (en)
Other versions
CN100446486C (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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CNB2007100990961A priority Critical patent/CN100446486C/zh
Publication of CN101051958A publication Critical patent/CN101051958A/zh
Application granted granted Critical
Publication of CN100446486C publication Critical patent/CN100446486C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于网络流行为分析技术领域,其特征依次含有以下步骤:用所用协议、源IP地址和端口、目的IP地址和端口五元组组成的字符串来描述网络中端到端的网络流通信行为,据此将网络通信分成14种行为模式,由五元组中确定和不确定的特征值组成的14个关键字来加以描述;对任一具体网络流,用特征值字符匹配确定分类关键字并纳入相应的行为模式;14种行为模式中各具体的网络流用对应的Hash表来记录,在表中的位置用Hash_0值确定,存在同一模式Hash表中Hash_0值相同的不同网络流用Hash_1、Hash_2值来加以区分,在此基础上,对具体网络流进行分类并计算其带宽、流数量、包数量之分布,用于检测异常网络流。

Description

网络流行为的行为分析参数的提取方法
技术领域
本发明属于网络流行为的分析技术领域。
背景技术
计算机网络世界和现实社会一样存在很多问题。网络作为社会活动的平台之一发挥越来越大的作用。网上办公、网上教学、网上研究、网上购物、网上聊天、网上娱乐等等都已经或是正在成为一种基本的生活方式。但是网络是不是可用,就像交通是不是畅通一样对人们的生活带来很大的影响。导致网络可用性不好的主要原因包括网络安全事件、网络的误用等等,主要表现在:
(1)网络带宽阻塞,就如路上堵车一样;
(2)各种原因导致的网络设备负载过重而失效,就像路口红绿灯失灵导致交通混乱一样;
(3)网络流量过大导致性能下降,就像上下班高峰时期路上堵车一样;
(4)恶意的网络攻击导致网络不可用,就像高速路上有人肇事导致道路中断一样;
在道路交通系统中,交通设施齐备的情况下,路上行驶的车辆的行为对道路的畅通与否起关键作用。同样,在互联网络上,网络建成之后,网络通信流的行为成为网络是否可用的主要因素。迄今为止,整个互联网已经多次出现了由于上述原因引起的大面积网络不可用事件,而对于企业网络或是园区网络,上述情况随时都在发生。因此减少网络安全事件导致的网络不可用是目前网络建设者、维护者、管理以及使用者最为关注的问题。
综合分析上述现象,其实质是网络带宽的拥塞和网络设别的资源耗尽,从而导致网络不可用。究其原因,目前网络硬件故障造成的网络不可用的情况已经不多见,大部分不可用的情况都是由于网络安全事件引起的:病毒、蠕虫、恶意攻击以及对网络的误用。因此,防病毒技术、网络安全补丁技术、入侵检测技术、入侵防护技术、防火墙技术等等各种各样的安全技术应运而生,来增强网络的安全性,保证网络的可靠运行。这些技术的原理是都需要事先收集并分析那些对网络运行造成危害的网络通信并提取出相应的通信特征,形成特征库,然后部署到网络中,对所有网络通信进行过滤,那些符合特征库的通信就是异常的通信,需要采取相应的控制措施。但是这些技术存在很大的局限性:
(1)这些依赖于特征库升级的网络安全技术虽然在目前的互联网中占主导地位,但是面对新的网络威胁,在特征库中没有相应特征的情况下,这些防范措施形同虚设。
(2)对于那些由于被滥用的正常网络通信,这些技术也无能为力,如BT下载或其他P2P应用,由于其吞噬带宽的能力很强,使得其他正常的或是基础的网络应用得不到带宽而不能正常提供服务,如DNS服务、邮件服务、企业的生产或是管理系统、学校的教学系统等等。
(3)采取的识别技术都需要进行大量的运算,因此难以实时发现并提取异常。
本发明所述的方法与现有其他方法在发明思路上存在以下区别:
(1)增加了研究对象的维数
传统的对网络流行为研究,主要的研究对象是4维的OD流,即网络流的来源IP和端口、目的地IP和端口。我们将所使用的网络协议也作为研究对象,使得对网络流行为的描述更加细化,更接近于真实网络状况。
(2)归纳出了网络流的十四种行为模式
与现有安全技术采用的对特定网络流设定过滤规则的方法不同,我们分析了网络流行为的特点,以所使用的网络协议为关键属性,归纳出了目前网络中可能出现的14种通信方式,定义为网络流的行为模式,实际网络中的每个网络流对应于这14种模式都有一个具体的实例。
(3)采用三个指标来量化网络流行为
要挖掘出网络带宽拥塞或是网络设备的资源耗尽的原因,仅仅靠所占带宽这样的容量指标是不够,本方法设计了三种量化指标来描述网络流的行为,包括占用的带宽、流数量分布以及包数量分布,不仅从容量的角度,还从频率的角度来描述,可以用于进一步挖掘异常行为网络流。对于所有的网络流实例按行为模式进行归并,并计算其三个量化指标,可以发现所有行为突出的网络流,对未知的网络威胁有效。
(4)在分类算法中设计了十四个Hash表分别存放十四种行为模式的实例。
对于一个具体的网络流,分别取其可能的十四种行为模式的实例作为Hash函数的关键字,利用Hash函数的特点将相同实例的网络流行为进行归类,大大提高了分类效率,在此是巧用Hash函数值的冲突特性来统计相同的网络流行为。但是为了避免Hash表长度有限而带来的冲突,即对Hash值取模引起的冲突,设计了两个环节来避免冲突:其一是使用多值Hash表,为每个实例生成3个Hash值,大大降低了冲突的概率,其次若三个Hash值取模不能解决的冲突,采用指针下移来实现。
发明内容
本发明的目的在于提出一种网络流行为的行为分析参数的提取方法,以用于网络流分析、统计和网络防堵塞、防病毒技术之中。
本发明的特征在于:该方法是在选定作为测量点的互联网接入服务商、或者用户子网的核心层或汇聚层的服务器上依次按以下步骤实现的:
步骤(1):初始化
设定:在两个终端用户之间的单向的数据包序列被定义为一个网络流,一个单独的网络流表示为:
flow(protype,srcIP,srcPort,dstIP,dstPort,bytes,pkts)
其中:
protype:是通信协议类型,记为特征A,并用小写字母a表示一个具体的特征值;
srcIP:是源IP地址,记为特征B,并用小写字母b表示一个具体的特征值;
dstIP:是目标IP地址,记为特征C,并用小写字母c表示一个具体的特征值;
srcPort:是源端口,记为特征D,并用小写字母d表示一个具体的特征值;
dstPort:是目标端口,记为特征E,并用小写字母e表示一个具体的特征值;
bytes:表示流的字节数;
pkts:表示流的数据包个数;
设定:网络流的行为定义为从流的角度描述网络节点之间的通信模式,用五个特征来表示一个确定的网络流,在排列了没有意义的特征组合且某些特征的取值不确定时,得到的是一类具有相同特征组合的网络流,称为行为模式,在相同特征组合中由于每个特征的取值不同而得到同一模式的不同实例,用(a,b,c,d,e)表示一个具体的网络流实例,下面把网络流的行为按照其特征组合进行归类,一共得到下述14种描述网络通信的网络流行为模式:
AB:使用同一协议从同一源IP地址发出的网络流,用五元组(a,b,*,*,*)表示AB模式的一个具体实例,*表示该特征的取值不确定,下同;
AC:使用同一协议发送到同一的源端口的网络流,用五元组(a,*,c,*,*)表示AC模式的一个具体实例;
AD:使用同一协议发送到同一目的IP地址的网络流,用五元组(a,*,*,d,*)表示AD模式的一个具体实例;
AE:使用同一协议发往同一目的端口的网络流,用五元组(a,*,*,*,e)表示AE模式的一个具体实例;
ABC:使用同一协议从同一源IP地址和同一源端口发出的网络流,用五元组(a,b,c,*,*)表示ABC模式的一个具体实例;
ABD:使用同一协议从同一源IP地址发送到同一目的IP地址的网络流,用五元组(a,b,*,d,*)表示ABD模式的一个具体实例;
ABE:使用同一协议从同一源IP地址发送到同一目的端口的网络流,用五元组(a,b,*,*,e)表示ABE模式的一个具体实例;
ACD:使用同一协议发送到同一源端口和同一目的IP地址的网络流,用五元组(a,*,c,d,*)表示ACD模式的一个具体实例;
ACE:使用同一协议从同一源端口发送到同一的目的端口的网络流,用五元组(a,*,c,*,e)表示ACE模式的一个具体实例;
ADE:使用同一协议发送到同一目的IP地址和同一目的端口的网络流,用五元组(a,*,*,d,e)表示ADE模式的一个具体实例;
ABCD:使用同一协议从同一源IP地址和同一源端口发送到同一目的地IP的网络流,用五元组(a,b,c,d,*)表示ABCD模式的一个具体实例;
ABCE:使用同一协议从同一源IP地址和同一源端口发送到同一目的端口的网络流,用五元组(a,b,c,*,e)表示ABCE模式的一个具体实例;
ABDE:使用同一协议从同一源IP地址发送到同一目的IP和同一目的端口的网络流,用五元组(a,b,*,d,e)表示ABDE模式的一个具体实例;
ACDE:使用同一协议从同一个源端口发送到同一目的IP地址和同一目的端口的网络流,用五元组(a,*,c,d,e)表示ACDE模式的一个具体实例;
步骤(2):按以下步骤对样本网络流空间中的所有网络流按照步骤(1)所表达的14种网络流行为模式进行分解,得到14种行为模式的网络流实例:
步骤(2):按以下步骤对样本网络流空间中的所有网络流按照步骤(1)所表达的14种网络流行为模式进行分解,得到14种行为模式的网络流实例:
步骤(2.1):初始化
设定:
本次分析的样本网络流空间中的网络流总数初始化为0;
本次分析的样本网络流空间中所有网络流承载的总字节数初始化为0;
本次分析的样本网络流空间中所有网络流承载的总数据包数初始化为0;
网络流参数记录parameter初始化为0;
网络流模式关键字Key初始化为空;
初始化14种行为模式,分别为每种行为模式设定一个Hash表,共14个Hash表,初始化皆为空,得到Hash表的总长度;
HashType的取值初始化为常量0、1、2;
为Hash函数加密表cryptTable赋值,以0x00100001为种子,通过算数运算和移位运算计算出cryptTable表中的1280个元素的值;
步骤(2.2):按以下步骤对当前样本网络流空间中的所有网络流按14种行为模式实例进行归类:
步骤(2.2.1):读取样本网络流空间中的一个网络流,将五种特征的取值、开始时间/结束时间以及字节数、包数量分别存放到流参数记录parameter中,对照步骤(1)和步骤(2.1)中的14种网络流行为模式,采用特征值字符匹配算法,根据当前网络流的14种行为模式实例中的特征值生成Hash关键字Key;
步骤(2.2.2):按以下步骤对于同一网络流的14种行为模式实例,计算Hash值并分别插入对应的模式Hash表中:
步骤(2.2.2.1):根据具体的行为模式Hash关键字Key和Hashtype取值为0、1以及2,分别计算三个Hash函数值Hash_0、Hash_1、Hash_2;
步骤(2.2.2.2):用步骤(2.2.2.1)得到的Hash_0值对Hash表的长度取模,得到当前网络流实例在对应的模式Hash表中的位置索引值index;
步骤(2.2.2.3):判定对应模式Hash表中的index位置是否已经存放了一个网络流实例:
若没有,则添加一个新的网络流实例记录,存放该实例的描述字符串、Hash_1值、Hash_2值、实例流总数、数据包总数、字节总数;
若已有,则将该位置存放的实例的Hash_1值、Hash_2值与当前网络流实例的Hash_1值、Hash_2值进行比较:
若都相同,则认为两个实例完全相同,将实例流总数加1,并分别将当前实例的包数量和字节数累加到数据包总数和字节总数中;
若两者的Hash_1和Hash_2不完全相同,则认为不是相同的网络流实例,
将index=index+1并对Hash表长度取模,转步骤(2.2.2.3)直到找到一个空位置存放当前网络流实例;
步骤(3):分别按照下式对步骤(2)中已经进行了分类的网络流实例xi计算下列三个参数:带宽分布:对应于行为模式x的网络流实例xi所占带宽,用Mb(xi)表示,即:
Mb(xi)=8*(∑fj.bytes)/Δt)
其中:(fj∈St)Λ(fj.x=xi),即网络流fj是样本网络流集合中的一个网络流,它的x特征的取值为xi,常数8表示1byte=8bit;
流数量分布:行为模式x的实例xi的流个数占样本流总数的比例,用Mn(xi)表示,即:
Mn(xi)=count(fj)/N
其中:(fj∈St)Λ(fj.x=xi),fj定义同上,N为样本网络流集合中网络流的总数;
包数量分布Mp:行为模式x的实例xi承载的数据包总数占样本数据包总数的比例,用Mp(xi)表示,即:
M p ( x i ) = ( Σ f j · pkts ) / ( Σ k = 1 k = N f k · pkts )
其中:(fj,fk∈St)∧(fj.x=xi),fj定义同上,fk为样本网络流集合中任意的网络流,k为样本网络流集合中的网络流序号,N的定义同上。
我们通过分析各种网络流特征,提出了一种定性和定量描述网络流行为的方法,并设计出基于这种描述对网络流行为进行分类的算法,可以实时获取网络中行为突出的网络流。针对这些突出行为的网络流进行威胁评估,可以更快地确定是否是有害的网络通信。我们的方法具有以下优点:
(1)可以从大量的网络流通信中快速高效地获取具有突出行为的网络流;
(2)对于已知和未知的网络流同样有效;
(3)对于识别正常网络通信的滥用非常有效;
(3)方法简单有效。
附图说明:
图1.本方法的硬件平台示意图;
图2.以AB模式为例的模式Hash表结构图;
图3.本方法的主程序流程框图;
图4.Hash函数关键字生成流程图;
图5.加密表初始化流程框图;
图6.Hash函数算法流程框图。
具体实施方式:
本方法适用的硬件环境如图1所示。在两个网络终端用户之间单向的数据包的序列被定义为一个网络流。一个单独的网络流表示为:
flow(protype,srcIP,srcPort,dstIP,dstPort,bytes,pkts),
其中:
proType:是通信协议类型,记为特征A,并用小写字母a表示一个具体的特征值
srcIP:是源IP地址,记为特征B,并用小写字母b表示一个具体的特征值
dstIP:是目标IP地址,记为特征C,并用小写字母c表示一个具体的特征值
srcPort:是源端口,记为特征D,并用小写字母d表示一个具体的特征值
dstPort:是目标端口,记为特征E,并用小写字母e表示一个具体的特征值
bytes:表示流的字节数,
pkts:表示流的数据包个数。
网络流的行为定义为从流的角度描述网络节点之间的通信模式,即从源到目的地,使用什么协议,采用什么服务。从观察和简单分析可知,5个特征的取值确定了一个唯一的网络流,而当某些特征的取值不确定时,得到的不是一个流,而是一类流。任何一个确定的网络流可以表示成(a,b,c,d,e)。如果用字符*表示不确定的特征取值,(a,b,*,d,e)表示的不是一个确定的网络流,而是一类网络流,即使用协议a,从源地址b的任何一个端口发出的到目的地地址d的e端口的一类网络流,称为行为模式ABDE的一个实例。
网络流的行为按照其特征的取值进行归类,将同一特征取值相同的网络流分为一类。可以把网络流归纳成包括两个特征取值相同的流、三个特征取值相同的流、四个特征取值相同的流,每一类称为网络流的一种行为模式。表1给出了网络通信的十四种网络流行为模式的定义及实例举例,实现了对网络流行为得定性描述。
                           表1网络流行为模式定义及实例举例
模式 定义 实例举例
AB 使用同一协议从同一源IP地址发出的流 (a,b,*,*,*)
AC 使用同一协议发送到同一的源端口的流 (a,*,c,*,*)
AD 使用同一协议发送到同一目的IP地址的流 (a,*,*,d,*)
AE 使用同一协议发往同一目的端口的流 (a,*,*,*,e)
ABC 使用同一协议从同一源IP地址和同一源端口发出的流 (a,b,c,*,*)
ABD 使用同一协议从同一源IP地址发送到同一目的IP地址的流 (a,b,*,d,*)
ABE 使用同一协议从同一源IP地址发送到同一目的端口的流 (a,b,*,*,e)
ACD 使用同一协议发送到同一源端口和同一目的IP地址的流 (a,*,c,d,*)
ACE 使用同一协议从同一源端口发送到同一的目的端口的流 (a,*,c,*,e)
ADE 使用同一协议发送到同一目的IP地址和同一目的端口的流 (a,*,*,d,e)
ABCD 使用同一协议从同一源IP地址和同一源端口发送到同一目的地IP的流 (a,b,c,d,*)
ABCE 使用同一协议从同一源IP地址和同一源端口发送到同一目的端口的流 (a,b,c,*,e)
ABDE 使用同一协议从同一源IP地址发送到同一目的IP和同一目的端口的流 (a,b,*,d,e)
ACDE 使用同一协议从同一个源端口发送到同一目的IP地址和同一目的端口的流 (a,*,c,d,e)
由于我们需要的是对真实的网络环境中的网络流行为进行描述,因此忽略了那些没有实际意义的特征组合,如BC、BCDE等,只对包括使用协议A的十四种有意义的行为模式进行分析和处理,大大简化了问题集。
为了便于比较网络流行为产生的效果,必须对行为进行量化。采用带宽分布Mb、流数量分布Mn和包数量分布Mp三个指标来量化网络流行为,假设样本网络流集合St包括N个流,采样时间长度为Δt,则三个量化指标分别定义为:
(1)带宽分布:行为模式x的网络流实例xi所占带宽。即:
Mb(xi)=8*(∑fj.bytes)/Δt)
其中:(fj∈St)∧(fj.x=xi)
(2)流数量分布:行为模式x的实例xi的流个数占样本流总数的比例。即:
Mn(xi)=count(fj)/N
其中:(fj∈St)∧(fj.x=xi)
(3)包数量分布:行为模式x的实例xi承载的数据包总数占样本数据包总数的比例。即:
M p ( x i ) = ( Σ f j · pkts ) / ( Σ k = 1 k = n f k · pkes )
其中:(fj,fk∈St)∧(fj.x=xi)
目前,现有的区分异常网络流的方法有两大类:其一是采用单一的容量指标,即网络流所占的带宽,可以快速地分辨出阻塞带宽的网络流,但是不能分辨那些不阻塞带宽,但是耗损网络设备资源的网络流,例如典型的ICMP攻击,网络扫描等;另一种方法还有就是分析网络流中承载的数据的特征,这种方法的准确性很高,但是需要大量的计算,只能作事后处理。我们设计三种指标来量化描述网络流行为,主要的优点是,对于吞噬带宽的行为可以通过带宽分布指标快速区分,此外,根据流数量分布可以用于确定出现频率高的网络流行为,对于ICMP、扫描等网络行为能够很好地识别,包数量分布可以对发包频率高的行为进行区分,如蠕虫病毒的传播,这些行为不仅可能对网络带宽造成压力,还直接威胁到网络设备的资源消耗。
一旦某种行为的网络流其三种量化指标中的任何一种突然大大超出了平时的水平,说明该网络流行为出现明显的异动,这种网络流可能是正常的网络应用,也可能是网络攻击。
行为分类是要在网络流数据中查找5个特征中某些特征的取值完全相同的网络流,即按行为模式找出特征值相同的网络流实例。
(1)两个特征取值相同的网络流,包括模式AB、AC、AD和AE,每种模式可能会有多种实例,例如:(a1,b1,*,*,*),(a2,b2,*,*)是模式AB的两个不同实例,而(a1,*,c1,*,*),(a2,*,*,*,e2)分别是模式AC和AE的实例。
(2)三个特征取值相同的网络流,包括模式ABC、ABD、ABE、ACD、ACE和ADE,(a3,b4,c7,*,*)和(a1,*,c2,d5,*)分别是模式ABC和ACD的实例。
(3)四个特征取值相同的网络流,包括模式ABCD、ABCE、ABDE和ACDE,(a6,*,c3,d9,e8)和(a7,b5,c7,*,e1)分别是ACDE和ABCE的实例。
分类算法输入的网络流是Netflow采样过程的输出文件,数据的格式如下:
FLOW                                //表示是一个网络流
index:          0xc7ffff
router:         172.25.200.5       //表示采样的网络设备的IP地址
src IP:         172.26.49.178      //网络流的源IP地址
dst IP:         211.71.86.14       //网络流的目的地IP地址
input ifIndex:  18
output ifIndex: 0
src port:       1811               //网络流的源端口
dst port:       554                //网络流的目的端口
pkts:           2                  //网络流所含的数据包的数目
bytes:           96                           //网络流所传输的字节数
IP nexthop:      0.0.0.0
start time:      Wed Feb 22 19:48:46 2006     //网络流开始的时间
end time:        Wed Feb 22 19:48:49 2006     //网络流结束的时间
protocol:        6                            //网络流采用的网络协议类型
tos:             0
src AS:          0
dst AS:          0
src masklen:     16
dst masklen:     24
TCP flags:       0x2
engine type:     0
engine id:       0
构造14个Hash表分别存放14种网络流行为模式的14种网络流实例的分类及量化结果。每个模式的每个实例在其模式Hash表中都有一个相应的位置,这个位置由对应于该实例关键字的Hash值来确定。由于Hash表的大小是固定的,因此,存在在同一模式中不同的网络流实例的Hash函数值取模后得到相同索引值的可能性,解决这个问题的一个办法是对每个网络流的每个模式的关键字计算三个Hash函数值,若三个值都相同,认定是同一类流,否则,不是同一类流。三个Hash值中的一个用来确定Hash表中的位置,当得到的位置已被占用时,由另外两个Hash值来判定是不是同一个实例。因此记录每个实例的线性表,不仅包括该实例和流计数值,还包括另外两个Hash值。图2是以AB模式为例给出的Hash表格式说明。
采用目前最快的Hash算法,构造一个统一的Hash函数,对于同一个网络流,输入不同模式实例关键字可求出不同模式实例对应的Hash值。同时增加一个调节参数HashType,可以得到同一模式的同一实例的不同Hash值,以解决不同实例的Hash值取模后可能相同的问题。Hash函数算法原理用框图描述如下图3、图4所示。
由于网络流的数量很大,因此在实现实时分类时必须要提高分类算法的效率,采用Hash函数来对网络流进行分类可以极大的降低时间开销。传统的Hash函数的应用是为了避免冲突,即避免关键字的重复和Hash函数值的重复,而本文要利用这种重复来进行分类。将每个网络流分解成14种模式实例,以字符串的形式来描述该实例,如一个具体的网络流(a,b,c,d,e),其AB模式实例表示成字符串(a,b,*,*,*),ABCD模式实例表示成字符串(a,b,c,d,*)。为每个模式构造一个哈希表(Hash Table)来存放该模式的实例的分类结果。按照实例中具体特征值来构造Hash函数关键字key,输入的关键字字符串通过Hash算法转换成一个整数,将该整数通过模运算映射到定义好的网络流模式分类Hash表中。特征值相同的网络流实例,其关键字串相同,表示同一类模式的相同实例,其Hash函数值相同,因此在分类Hash表中被映射到相同的位置。例如,有两个不同的网络流如下:
flowl=(TCP,172.21.96.8,80,172.21.48.8,2345)
flow2=(TCP,172.21.96.8,80,172.21.45.5,3345)
对应AB模式实例均为:
(TCP,172.21.96.8,*,*,*)
对应ABC模式的实例均为:
(TCP,172.21.96.8,80,*,*)
由于特征A、B、C的取值均相同,因此Hash函数输入的关键字字符串相同,Hash函数的值相同,因而这两个流在模式AB和模式ABC下均为同类,称具有相同的网络流行为AB和ABC。图5给出了根据特征值生成Hash关键字的方法。
本发明的具体主程序流程图见图6,计算步骤如下:
步骤(1):初始化
设定:本次读取的样本网络流集合中流总数flowcount=0;
本次读取的样本网络流集合的字节总数bytecount=0;
本次读取的样本网络流集合的包总数packetcount=0;
当前样本集合的开始时间=0;
当前样本集合的结束时间=0;
Parameter记录元素初始化为0;
行为模式Pattern初始化为十四种,分别创建一个Hash表,且初始化为空;
计算并为cryptTable表赋值;
初始化14种行为模式,分别为每种行为模式设定一个Hash表,共14个Hash表,初始化皆为空,得到Hash表的总长度;
网络流实例Hash关键字Key初始化为空;
HashType的取值初始化为常量0、1、2;
初始化Hash函数加密表,为cryptTable表的每个元素计算并赋值;
步骤(2):按以下步骤对样本网络流集合中的每个网络流进行行为归类。
步骤(2.1):读取Netflow网络流纪录中的对应字段的值放在参数记录parameter中;
步骤(2.2):对样本流总数加1;
步骤(2.3):将parameter中的字节数和包的数量分别累加到bytecount和packetcount中;
步骤(2.4):若当前流的开始时间早于当前样本集合的开始时间,则当前样本集合的开始时间等于当前流的开始时间;
步骤(2.5):若当前流的结束时间晚于当前样本集合的结束时间,则当前样本集合的结束时间等于当前流的结束时间;
步骤(2.6):对于每种模式i,i的取值从1到14分别执行下列步骤:
步骤(2.6.1):根据步骤(2.1)得到的parameter记录计算行为模式i对应的Hash函数关键字;
步骤(2.6.2):根据步骤(2.6.1)得到的模式关键字,并取HashType值为0、1、2分别计算三个Hash值Hash_0、Hash_1、Hash_2
步骤(2.6.3):用Hash_0值对Hash表长度取模,得到该行为模式Hash表的索引值index,得到当前网络流实例在具体行为模式Hash表中的位置
步骤(2.6.4):判断index所指的位置中是否已经存放了一个具体的网络流实例
若没有,则在该位置插入一个新的实例,记录:实例的描述字符串、Hash_1值、Hash_2值、实例个数、实例总字节数、实例总包数;
若有,则比较当前网络流实例和该位置已存放的网络流实例的Hash_1值和Hash_2值是否都相同
若都相同,则认为是相同的网络流实例,将该位置已经存放的实例个数加1,将当前网络流承载的字节数和包数分别累加到当前位置存放的实例总字节数和实例总包数中;
若其他情况,则将index指针加1,并对Hash表的长度取模,重复步骤(2.6.4),直到找到一个可用的位置。
步骤(3):对14种模式的每种实例分别按下列步骤计算三个量化指标:
步骤(3.1):计算网络流行为模式实例的流数量分布;
步骤(3.2):计算网络流行为模式实例的包数量分布;
步骤(3.3):计算网络流行为模式实例的带宽分布;
Hash函数计算方法如图3所示,其中参数的具体描述如下:
●Hash函数关键字字符串,是网络流行为模式的一个实例字符串,每个网络流分别有十四个实例对应于十四种模式,对每个实例都需要计算三个不同的Hash值,由HashType参数确定。
●HashType,用于对每个实例计算三个不同的Hash值。用HashType取值为0、1、2分别调用Hash函数计算出的Hash值记为Hash_0、Hash_1、Hash_2,其中Hash_0用于在对应模式Hash表中确认该实例的存储位置,而Hash_1和Hash_2则用于冲突检测。
●初始加密表CryptTable,是一个长度为1280的数组,数组的每个元素存放的是预先计算好的初始密码值。
●Hash函数的初始种子Seed1=0x7FED7FED,Seed2=0xEEEEEEEE
Hash函数的计算过程是一个迭代的过程,将每个网络流行为模式实例字符串转换成一个32位无符号长整型数。从左到右依次取关键字字符串的第i个字符(i=1,2,…字符串长度),迭代计算出Hash函数的取值。i初值为1,Hash函数计算步骤如下:
①取当前字符ch,若是小写字母则转换成大写字母;
②将当前Hashtype参数左移8位;
③将上面两步的结果相加,作为加密数组CryptTable的指针,取对应的数组元素的值;
④将Seed1和Seed2求和,并与第③步的结果按位异或,作为新的Seed1;
⑤将当前Seed2左移5位;
⑥将第①步、第④步、第⑤步的结果与Seed2相加,再加上3,作为新的Seed2;
⑦取下一个字符,i=i+1,若关键字字符串未结束,则转①继续计算新一轮的Seed1和Seed2,若关键字字符串已结束,则返回Seed1的值作为Hash函数的取值。
为加密表cryptTable赋值的计算流程如图4所示。将cryptTable数组的1280个元素分成256组来计算,用index1表示组号,index1=0,1,…255,每个组计算的数组元素有5个,用i表示,i=0,1,2,3,4,因此,第index1组计算的5个数组元素分别是index1+256i。对index1=0到255,并且i=0到4,依据种子Seed的值分别计算每个数组元素的取值,Seed的初始取值为Seed=0x00100001,计算方法如下:
①计算高16位的值:用当前Seed的值乘以125再加上3,然后对0x2AAAAB取模,作为新的Seed值;将当前新的Seed值与0xFFFF进行按位与操作,并将结果左移16位,存放在临时变量temp1中;
②计算低16位的值:用当前Seed的值乘以125再加上3,然后对0x2AAAAB取模,作为新的Seed值;将当前新的Seed值与0xFFFF进行按位与操作,将结果存放在临时变量temp2中;
③将temp1和temp2的值进行按位或运算,将结果作为当前cryptTable数组元素的值存储。
采用特征值字符匹配方法为同一网络流的14种模式实例生成对应的Hash函数关键字的过程如图5所示。将网络流对应特征的取值存放在参数记录parameter中,关键字key是一个长度为11的字符数组,每个元素初始化为空。对于协议特征和端口特征,直接将其特征值赋给关键字数组对应的元素,而对于IP地址特征,其取值以点分十进制来表示,每个IP由四个8位组(octet)组成,分别表示为octet1、octet2、octet3、octet4,如IP地址172.21.1.200对应的四个8位组的值分别为:octet1=172,octet2=21,octet3=1,octet4=200,在关键字的生成过程中将这四个8位组分别依次赋值给四个不同关键字元素。

Claims (1)

1、网络流行为的行为分析参数的提取方法,其特征在于:该方法是在选定作为测量点的互联网接入服务商、或者用户子网的核心层或汇聚层的服务器上依次按以下步骤实现的:
步骤(1):初始化
设定:在两个终端用户之间的单向的数据包序列被定义为一个网络流,一个单独的网络流表示为:
flow(protype,srcIP,srcPort,dstIP,dstPort,bytes,pkts)
其中:
protype:是通信协议类型,记为特征A,并用小写字母a表示一个具体的特征值;
srcIP:是源IP地址,记为特征B,并用小写字母b表示一个具体的特征值;
dstIP:是目标IP地址,记为特征C,并用小写字母c表示一个具体的特征值;
srcPort:是源端口,记为特征D,并用小写字母d表示一个具体的特征值;
dstPort:是目标端口,记为特征E,并用小写字母e表示一个具体的特征值;
bytes:表示流的字节数;
pkts:表示流的数据包个数;
设定:网络流的行为定义为从流的角度描述网络节点之间的通信模式,用五个特征来表示一个确定的网络流,在排除了没有意义的特征组合且某些特征的取值不确定时,得到的是一类具有相同特征组合的网络流,称为行为模式,对一种确定的特征组合由于每个特征的取值不同而得到同一模式的不同实例,用五元组(a,b,c,d,e)表示一个具体的网络流实例,下面把网络流的行为按照其特征组合进行归类,一共得到下述14种描述网络通信的网络流行为模式:
AB:使用同一协议从同一源IP地址发出的网络流,用五元组(a,b,*,*,*)表示AB模式的一个具体实例,*表示该特征的取值不确定,下同;
AC:使用同一协议发送到同一的源端口的网络流,用五元组(a,*,c,*,*)表示AC模式的一个具体实例;
AD:使用同一协议发送到同一目的IP地址的网络流,用五元组(a,*,*,d,*)表示AD模式的一个具体实例;
AE:使用同一协议发往同一目的端口的网络流,用五元组(a,*,*,*,e)表示AE模式的一个具体实例;
ABC:使用同一协议从同一源IP地址和同一源端口发出的网络流,用五元组(a,b,c,*,*)表示ABC模式的一个具体实例;
ABD:使用同一协议从同一源IP地址发送到同一目的IP地址的网络流,用五元组(a,b,*,d,*)表示ABD模式的一个具体实例;
ABE:使用同一协议从同一源IP地址发送到同一目的端口的网络流,用五元组(a,b,*,*,e)表示ABE模式的一个具体实例;
ACD:使用同一协议发送到同一源端口和同一目的IP地址的网络流,用五元组(a,*,c,d,*)表示ACD模式的一个具体实例;
ACE:使用同一协议从同一源端口发送到同一的目的端口的网络流,用五元组(a,*,c,*,e)表示ACE模式的一个具体实例;
ADE:使用同一协议发送到同一目的IP地址和同一目的端口的网络流,用五元组(a,*,*,d,e)表示ADE模式的一个具体实例;
ABCD:使用同一协议从同一源IP地址和同一源端口发送到同一目的地IP的网络流,用五元组(a,b,c,d,*)表示ABCD模式的一个具体实例;
ABCE:使用同一协议从同一源IP地址和同一源端口发送到同一目的端口的网络流,用五元组(a,b,c,*,e)表示ABCE模式的一个具体实例;
ABDE:使用同一协议从同一源IP地址发送到同一目的IP和同一目的端口的网络流,用五元组(a,b,*,d,e)表示ABDE模式的一个具体实例;
ACDE:使用同一协议从同一个源端口发送到同一目的IP地址和同一目的端口的网络流,用五元组(a,*,c,d,e)表示ACDE模式的一个具体实例;
步骤(2):按以下步骤对样本网络流空间中的所有网络流按照步骤(1)所表达的14种网络流行为模式进行分解,得到14种行为模式的网络流实例:
步骤(2.1):初始化
设定:
本次分析的样本网络流空间中的网络流总数初始化为0;
本次分析的样本网络流空间中所有网络流承载的总字节数初始化为0;
本次分析的样本网络流空间中所有网络流承载的总数据包数初始化为0;
网络流参数记录parameter初始化为0;
网络流模式关键字Key初始化为空;
初始化14种行为模式,分别为每种行为模式设定一个Hash表,共14个Hash表,初始化皆为空,得到Hash表的总长度;
HashType的取值初始化为常量0、1、2;
为Hash函数加密表cryptTable赋值,以0x00100001为种子,通过算数运算和移位运算计算出cryptTable表中的1280个元素的值;
步骤(2.2):按以下步骤对当前样本网络流空间中的所有网络流按14种行为模式实例进行归类:
步骤(2.2.1):读取样本网络流空间中的一个网络流,将五种特征的取值、开始时间/结束时间以及字节数、包数量分别存放到流参数记录parameter中,对照步骤(1)和步骤(2.1)中的14种网络流行为模式,采用特征值字符匹配算法,根据当前网络流的14种行为模式实例中的特征值生成Hash关键字Key;
步骤(2.2.2):按以下步骤对于同一网络流的14种行为模式实例,计算Hash值并分别插入对应的模式Hash表中:
步骤(2.2.2.1):根据具体的行为模式Hash关键字Key和Hashtype取值为0、1、2,分别计算三个Hash函数值Hash_0、Hash_1、Hash_2;
步骤(2.2.2.2):用步骤(2.2.2.1)得到的Hash_0值对Hash表的长度取模,得到当前网络流实例在对应的模式Hash表中的位置索引值index;
步骤(2.2.2.3):判定对应模式Hash表中的index位置是否已经存放了一个网络流实例:
若没有,则添加一个新的网络流实例记录,存放该实例的描述字符串、Hash_1值、Hash_2值、实例流总数、数据包总数、字节总数;
若已有,则将该位置存放的实例的Hash_1值、Hash_2值与当前网络流实例的Hash_1值、Hash_2值进行比较:
若都相同,则认为两个实例完全相同,将实例流总数加1,并分别将当前实例的包数量和字节数累加到数据包总数和字节总数中;
若两者的Hash_1和Hash_2不完全相同,则认为不是相同的网络流实例,将index=index+1并对Hash表长度取模,转步骤(2.2.2.3)直到找到一个空位置存放当前网络流实例;
步骤(3):分别按照下式对步骤(2)中已经进行了分类的网络流实例xi计算下列三个参数:
带宽分布:对应于行为模式x的网络流实例xi所占带宽,用Mb(xi)表示,即:
Mb(xi)=8*(∑fj.bytes)/Δt)
其中:(fj∈St)∧(fj.x=xi),即网络流fj是样本网络流集合中的一个网络流,它的x特征的取值为xi,常数8表示1byte=8bit;
流数量分布:行为模式x的实例xi的流个数占样本流总数的比例,用Mn(xi)表示,即:
Mn(xi)=count(fj)/N
其中:(fj∈St)∧(fj.x=xi),fj定义同上,N为样本网络流集合中网络流的总数;包数量分布Mp:行为模式x的实例xi承载的数据包总数占样本数据包总数的比例,用Mp(xi)表示,即:
M p ( x i ) = ( Σ / f i · pkts ) / ( Σ k = 1 k = N f k · pkts )
其中:(fj,fk∈St)∧(fj.x=xi),fj定义同上,fk为样本网络流集合中任意的网络流,k为样本网络流集合中的网络流序号,N的定义同上。
CNB2007100990961A 2007-05-11 2007-05-11 网络流行为的行为分析参数的提取方法 Expired - Fee Related CN100446486C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100990961A CN100446486C (zh) 2007-05-11 2007-05-11 网络流行为的行为分析参数的提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100990961A CN100446486C (zh) 2007-05-11 2007-05-11 网络流行为的行为分析参数的提取方法

Publications (2)

Publication Number Publication Date
CN101051958A true CN101051958A (zh) 2007-10-10
CN100446486C CN100446486C (zh) 2008-12-24

Family

ID=38783164

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100990961A Expired - Fee Related CN100446486C (zh) 2007-05-11 2007-05-11 网络流行为的行为分析参数的提取方法

Country Status (1)

Country Link
CN (1) CN100446486C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
CN103037344A (zh) * 2012-12-06 2013-04-10 亚信联创科技(中国)有限公司 一种话单去重方法及装置
CN103514224A (zh) * 2012-06-29 2014-01-15 国际商业机器公司 数据库中的数据处理方法、数据查询方法和相应装置
CN103593376A (zh) * 2012-08-17 2014-02-19 阿里巴巴集团控股有限公司 一种采集用户行为数据的方法及装置
WO2016106591A1 (zh) * 2014-12-30 2016-07-07 华为技术有限公司 一种抽取数据报文的方法及装置
CN105871619A (zh) * 2016-04-18 2016-08-17 中国科学院信息工程研究所 一种基于n-gram多特征的流量载荷类型检测方法
CN107070888A (zh) * 2017-03-09 2017-08-18 北京聚睿智能科技有限公司 网关安全管理方法和设备
CN110574349A (zh) * 2017-02-27 2019-12-13 卡特伯德网络股份有限公司 网络系统的行为基线化

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545245A (zh) * 2003-11-12 2004-11-10 中国科学院计算技术研究所 数据网络流量在线预测方法
US7443803B2 (en) * 2004-03-23 2008-10-28 Fujitsu Limited Estimating and managing network traffic
US20070050846A1 (en) * 2005-08-30 2007-03-01 Fortinet, Inc. Logging method, system, and device with analytical capabilities for the network traffic
CN100384153C (zh) * 2005-12-26 2008-04-23 北京交通大学 一种基于IPv6的网络性能分析报告系统及实现方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
CN101867607A (zh) * 2010-05-21 2010-10-20 北京无限立通通讯技术有限责任公司 一种分布式数据存取方法、装置及系统
CN103514224A (zh) * 2012-06-29 2014-01-15 国际商业机器公司 数据库中的数据处理方法、数据查询方法和相应装置
US9471612B2 (en) 2012-06-29 2016-10-18 International Business Machines Corporation Data processing method, data query method in a database, and corresponding device
CN103593376A (zh) * 2012-08-17 2014-02-19 阿里巴巴集团控股有限公司 一种采集用户行为数据的方法及装置
CN103037344A (zh) * 2012-12-06 2013-04-10 亚信联创科技(中国)有限公司 一种话单去重方法及装置
CN103037344B (zh) * 2012-12-06 2016-04-20 亚信科技(中国)有限公司 一种话单去重方法及装置
WO2016106591A1 (zh) * 2014-12-30 2016-07-07 华为技术有限公司 一种抽取数据报文的方法及装置
CN105871619A (zh) * 2016-04-18 2016-08-17 中国科学院信息工程研究所 一种基于n-gram多特征的流量载荷类型检测方法
CN105871619B (zh) * 2016-04-18 2019-03-01 中国科学院信息工程研究所 一种基于n-gram多特征的流量载荷类型检测方法
CN110574349A (zh) * 2017-02-27 2019-12-13 卡特伯德网络股份有限公司 网络系统的行为基线化
CN107070888A (zh) * 2017-03-09 2017-08-18 北京聚睿智能科技有限公司 网关安全管理方法和设备

Also Published As

Publication number Publication date
CN100446486C (zh) 2008-12-24

Similar Documents

Publication Publication Date Title
CN101051958A (zh) 网络流行为的行为分析参数的提取方法
Peterson et al. A review and analysis of the bot-iot dataset
Janarthanan et al. Feature selection in UNSW-NB15 and KDDCUP'99 datasets
Li et al. A supervised machine learning approach to classify host roles on line using sflow
Valenti et al. Reviewing traffic classification
CN1309214C (zh) 基于协同入侵检测的大规模网络安全防御系统
CN108696543B (zh) 基于深度森林的分布式反射拒绝服务攻击检测、防御方法
Ramachandran et al. Fast monitoring of traffic subpopulations
CN101052934A (zh) 用于检测网络上未经授权的扫描的方法、系统和计算机程序
CN101075911A (zh) 统计信息收集系统及统计信息收集装置
Liu et al. A distance-based method for building an encrypted malware traffic identification framework
Canini et al. GTVS: Boosting the collection of application traffic ground truth
CN1642097A (zh) 日志统计方法和系统
Sheikh et al. Procedures, criteria, and machine learning techniques for network traffic classification: a survey
Kumar et al. A data streaming algorithm for estimating subpopulation flow size distribution
Bridges et al. Setting the threshold for high throughput detectors: A mathematical approach for ensembles of dynamic, heterogeneous, probabilistic anomaly detectors
Himura et al. Synoptic graphlet: Bridging the gap between supervised and unsupervised profiling of host-level network traffic
Zheng et al. Two-layer detection framework with a high accuracy and efficiency for a malware family over the TLS protocol
Min et al. Online Internet traffic identification algorithm based on multistage classifier
CN1422039A (zh) 可控计算机网络的分布式黑客追踪系统
Garcia A clustering-based analysis of DPI-labeled video flow characteristics in cellular networks
Aldwairi et al. Characterizing realistic signature-based intrusion detection benchmarks
Sun et al. Bridging the Last‐Mile Gap in Network Security via Generating Intrusion‐Specific Detection Patterns through Machine Learning
JP4814270B2 (ja) トラヒック変動量推定方法およびその装置とプログラム
Lei et al. Optimizing traffic classification using hybrid feature selection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081224

Termination date: 20120511