一种基于Hadoop的应用层协议特征提取方法

文档序号:7551352阅读:110来源:国知局
专利名称:一种基于Hadoop的应用层协议特征提取方法
技术领域
本发明属于应用层协议识别技术领域,更为具体地讲,涉及一种基于Hadoop的应用层协议特征提取方法。
背景技术
随着互联网的飞速发展和宽带技术的不断发展,互联网中出现了一些新的需求。伴随着这些需求,应用层协议的形式与种类都较过去更加复杂,并且传统协议的流量在总流量中的比重越来越少,相反,P2P、流媒体、网络游戏等新应用协议不断涌现,因此如何正确的识别这些复杂的协议是现在协议识别算法必须解决的问题。识别协议的方法主要有:基于端口的识别、基于负载的识别、基于测度的识别和基于特征字段的识别。目前基于应用层特征字段的检测技术已成为应用层协议识别的主流方法,但是特征提取还缺乏有效的方法,主要通过人为分析某种应用层协议的规范文档来提取这种协议的特征。随着业务种类快速增长和越来越多非公开自定义协议的采用,通过人为分析进行特征提取变得日益困难,因此需要一种有效提取协议特征的方法。Cisco预测到2016年,全球将会产生1.3ZB的网络流量,是2011年全球网络流量的4倍,全球平均网速将从现在的9Mbps提高到34Mbps。面对日益增大的网络流量数据,传统的协议特征提取平台已经不能处理了,需要运用云计算来处理这些海量的数据。Hadoop是目前知名的开源系统,可处理PB级数据,运用Hadoop平台来提取协议特征将会有重大的意义。

发明内容
本发明的目的在于克服现有技术的不足,提供一种基于Hadoop的应用层协议特征提取方法,高效准确地提取应用层协议特征。为实现上述发明目的,本发明基于Hadoop的应用层协议特征提取方法,其特征在于包括以下步骤:(I)、从网络上捕获需要提取特征的目标应用层协议的N个流量数据包,存储为文本格式;(2)、对文本格式的数据包进行预处理,去掉数据包中与协议无关的数据,去掉链路层、网络层和传输层的协议数据,得到目标应用层协议数据包,对每个目标应用层协议数据包进行标记以示区别,设置最小支持度a,得到最小支持数n=NXa;(3)、对步骤(2)得到的目标应用层协议数据包进行扫描,采用Hadoop平台的Map函数以位数为4、步进为2提取备选项,并存储每个备选项对应的数据包标记以及备选项相对于该数据包起始位置的偏移量;(4)、采用Hadoop平台的Reduce函数统计相同备选项对应的不同的数据包标记个数,作为该备选项的支持数,如果支持数>最小支持数n,则将备选项作为频繁项进行存储,否则不做任何操作;
统计得到的频繁项数量,如果频繁项数量> 2,进入步骤(5),否则进入步骤(6);(5)、采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Reduce函数将数据包标记相同的频繁项集中,将此时频繁项位数记为k ;对于数据包标记相同的频繁项两两计算偏移量之差,如果两个频繁项偏移量相差为2,将偏移量小的频繁项的前2位与偏移量大的频繁项顺序组合成k+2位的高位备选项,高位备选项的偏移量为偏移量小的频繁项的偏移量,否则不做任何操作;统计生成的高位备选项个数,如果大于零,返回步骤(4)从新生成的高位备选项中选出频繁项,并进行判断处理,如果等于零,进入步骤(6);(6)、读取步骤(4)产生的包括从高位备选项中选出的频繁项在内的所有频繁项,采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Reduce函数将数据包标记相同的频繁项集中,根据频繁项偏移量进行特征字段筛选,筛选互不重叠的频繁项作为特征字段,得到N个目标应用层协议数据包对应的N组特征字段,第
i,I ^ i ^ N组特征字段的数量为Mi ;(7)、采用Hadoop平台的Reduce函数依次对第i个目标应用层协议数据包进行特征字段组合:将Mi个特征字段进行Mi次组合,在第s,I < s < Mi次组合时,任意s个特征字
段按偏移量顺序组合为特征串,得到个特征串,Mi次组合共计得到2焉一I个特征串;(8)、对步骤(7)得到的N个目标应用层协议数据包的所有特征串,采用Hadoop平台的Reduce函数统计相同特征串对应的不同的数据包标记个数作为该特征串的支持数,若支持数>最小支持数n,则将该特征串作为待定特征串;对待定特征串数据包标记进行识别,如果有任意两个及以上待定特征串具有相同的数据包标记,则保留最 长的待定特征串,删除其他具有相同数据包标记的待定特征串;将识别后的待定特征串作为目标应用层协议的最终特征串,完成目标应用层协议特征的提取。其中,步骤(5)与步骤(6)中的频繁项集中通过hash函数完成。其中,步骤(6)中的特征字段筛选包括以下步骤:I)、对于所有具有相同标记的频繁项,统计具有相同偏移量的频繁项,并在具有相同偏移量的频繁项中选取最长的频繁项,共计W个;2)、将W个频繁项按偏移量排序,将第d=l个频繁项作为第m=l个特征字段存储;3)、如果d=d+l>W,特征字段筛选结束;否则进入步骤4);4)、判断第d个频繁项的偏移量是否大于第m个特征字段最后一个字符的偏移量,如果结果为是,进入步骤5);如果结果为否,则不做任何操作,返回步骤3);5)、将第d个频繁项作为第m=m+l特征字段存储,返回步骤3)。本发明的发明目的是这样实现的:本发明基于Hadoop的应用层协议特征提取方法,利用Hadoop平台的MapReduce模型,对目标应用层协议数据包进行扫描,根据最小支持数从备选项筛选出频繁项,并通过组合高位备选项再筛选频繁项的方法找出最长频繁项,再在所有频繁项中用偏移量筛选出互不重叠的频繁项作为特征字段顺序组合形成特征串,根据最小支持数在特征串中筛选出能反映目标应用层协议特征的最终特征串,完成目标应用层协议特征的提取。
本发明基于Hadoop的应用层协议特征提取方法只需要扫描一遍目标应用层协议数据,就能准确的提取出应用层协议的特征,改善了人为进行应用层协议特征提取在面对海量协议数据时的局限性以及特征确定的主观性。


图1是本发明基于Hadoop的应用层协议特征提取方法的一种具体实施方式
流程图;图2是本发明基于Hadoop的应用层协议特征提取方法中特征字段筛选方法的一种具体实施方式
的流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。本发明基于Hadoop的应用层协议特征提取方法是基于Hadoop平台,主要利用了MapReduce模型,对协议数据进行处理。本发明对Map函数和Reduce函数进行了重写,使其满足本发明的数据处理要求。图1是本发明基于Hadoop的应用层协议特征提取方法的一种具体实施方式
流程图。如图1所示,本发明基于Hadoop的应用层协议特征提取方法包括以下步骤:SlOl:从网络上捕获需要提取特征的目标应用层协议的N个流量数据包,存储为文本格式。S102:对文本格式的数据包进行预处理,去掉数据包中与协议无关的数据,去掉链路层、网络层和传输层的协议数据,得到目标应用层协议数据包,对每个目标应用层协议数据包进行标记以示区别,设置最小支持度a,得到最小支持数n=NXa。S103:对步骤S102得到的目标应用层协议数据包进行扫描,采用Hadoop平台的Map函数以位数为4、步进为2提取备选项,并存储每个备选项对应的数据包标记以及备选项相对于该数据包起始位置的偏移量。由于现有数据流采用十六进制字符表示,每两位的十六进制代表一位ASCII字符,所以提取步进为2。由于2位的十六进制字符代表256种ASCII组成的字符,通过实验验证,目前常用大小(字节数从IOk到100M)的数据包中,所有2位的十六进制字符都是频繁项,因此没有必要将2位的十六进制字符均设为备选项,因此在提取备选项时,以2为步进,每4个字符提取作为一个备选项。S104:Reduce函数从备选项中选出频繁项并存储;采用Hadoop平台的Reduce函数统计相同备选项对应的不同的数据包标记个数,作为该备选项的支持数,如果支持数>最小支持数n,则将备选项作为频繁项进行存储,否则不做任何操作。S105:统计步骤S104得到的频繁项数量,判断是否频繁项数量> 2,如果结果为是,进入步骤S106 ;如果结果为否,进入步骤S108。S106:通过标记和偏移量,用频繁项生成高位备选项。
采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Reduce函数将数据包标记相同的频繁项集中,将此时频繁项位数记为k ;对数据包标记相同的频繁项两两计算偏移量之差,如果两个频繁项偏移量相差为2,将偏移量小的频繁项的前2位与偏移量大的频繁项顺序组合成k+2位的高位备选项,高位备选项的偏移量为偏移量小的频繁项的偏移量;如:xl和x2是两个偏移量相差为2的k位频繁项,对应的偏移量分别为yl和y2,其中y2=yl+2,生成的备选项x3=xl.substring (O, 2)+x2,对应的偏移量y3=yl。如果两个频繁项偏移量相差不等于2,则不做任何操作。本实施方式中,频繁项集中通过hash函数完成。S107:统计生成的高位备选项个数,如果大于零,返回步骤S104从新生成的高位备选项中选出频繁项,如果等于零,进入步骤S108 ;步骤S104至步骤S107构成一个循环,其目的在于找出最长的频繁项。S108:统计所有频繁项,筛选特征字段;读取步骤S104产生的所有频繁项,采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Reduce函数将数据包标记相同的频繁项集中,根据频繁项偏移量进行特征字段筛选,筛选互不重叠的频繁项作为特征字段,得到N个目标应用层协议数据包对应的N组特征字段,第i,I < i < N组特征字段的数量为Mp图2是本发明基于Hadoop的应用层协议特征提取方法中特征字段筛选方法的一种具体实施方式
的流程图。如图2所示,筛选特征字段方法包括以下步骤:S201:对于所有具有相同标记的频繁项,统计具有相同偏移量的频繁项,并在具有相同偏移量的频繁项中选取最长的频繁项,共计W个。S202:将W个频繁项按偏移量排序,存放在集合A中。S203:将集合A中第d=l个频繁项作为第m=l个特征字段存入集合B中。S204:d=d+1。S205:判断是否i〉W,如果结果为否,则进入步骤S206 ;如果结果为是,特征子段师
选结束。S206:计算集合B第m个特征字段中最后一个字符的偏移量X,即该特征字段的偏移量+特征字段长度_1。S207:判断是否集合A中第d个频繁项的偏移量>X,如果结果为是,则进入步骤S208 ;如果结果为否,则不做任何操作,返回步骤S204,对集合A中第d+Ι频繁项进行处理。S208:将集合A中第i个频繁项作为特征字段存入集合B,m=m+l,返回步骤S204,对集合A中第d+Ι频繁项进行处理。S204至S208构成循环,其目的在于从所有具有相同标记的频繁项,即同一个目标应用层数据包的频繁项中筛选互不重叠的频繁项作为特征字段。S109:米用特征字段构成特征串;采用Hadoop平台的Reduce函数依次对第i个目标应用层协议数据包进行特征字段组合:将Mi个特征字段进行Mi次组合,在第s,I < s < Mi次组合时,任意s个特征字段
按偏移量进行顺序组合为特征串,得到C&个特征串,Mi次组合共计得到;2碼_ I个特征串。SllO:选出最终特征串;对步骤S109得到的N个目标应用层协议数据包的所有特征串,采用Hadoop平台的Reduce函数统计相同特征串对应的不同的数据包标记个数作为该特征串的支持数,若支持数>最小支持数n,则将该特征串作为待定特征串,否则不做任何操作;对待定特征串数据包标记进行识别,如果有任意两个及以上待定特征串具有相同的数据包标记,则保留最长的待定特征串对应的该数据包标记,删除其他待定特征串对应的该数据包标记;否则不做任何操作;统计待定特征串的支持数,若支持数>最小支持数n,则将该特征串作为目标应用层协议的最终特征串,即含有此最终特征串的数据包属于同一种应用层协议,否则不做任何操作。实施例1对网络上的流量数据包进行捕获,选取的数据包包括2种类型的HTTP协议,两个版本的OICQ协议,每个OICQ协议版本包括3种类型。为更好地说明实施过程,本实施例仅选取了 53条数据包,并对过长的数据包进行了一定量的删减。本实施例中,设定最小支持度a=0.1,因此最小支持数n=53X0.1 ≈ 5,每个数据包的标记从I开始递增,经过预处理之后的数据形式为:1_0230370081bacl0000007616cbf90594f97a4a60f9087309fll29a98c046b400fe8b831elefa64607866eca88782e64872f73bfl075d583f2clfe9a98d8f7b0068a998db0189952-e4ab2032_0230370081310000000a787c52eebc39ba2941cfl4b9e735f56de72aa4ebcd01474a741cfl4b9e735f56de72aa4ebcd01474a728ae5e9e06d8719f726f6518c9019c237d89e0470-22fd5e7174215af4b4067fa42c5el89bl3a6403......
53_02303700583275000000aa2a269a4bl2ff24bfe5731db5397763ed482a4a22fl84af08108be5dd5a07b703表1与表I1(续)为步骤S104选出的频繁项及其数据包标记和偏移量。
权利要求
1.种基于Hadoop的应用层协议特征提取方法,其特征在于包括以下步骤: (1)、从网络上捕获需要提取特征的目标应用层协议的流量数据包,存储为文本格式; (2)、对文本格式的数据包进行预处理,去掉数据包中与协议无关的数据,去掉链路层、网络层和传输层的协议数据,得到目标应用层协议数据包,对每个目标应用层协议数据包进行标记以示区别,设置最小支持度a,得到最小支持数n=NXa; (3)、对步骤(2)得到的目标应用层协议数据包进行扫描,采用Hadoop平台的Map函数提取备选项,并存储每个备选项对应的数据包标记以及备选项相对于该数据包起始位置的偏移量; (4)、采用Hadoop平台的Reduce函数统计相同备选项对应的不同的数据包标记个数,作为该备选项的支持数 ,如果支持数>最小支持数n,则将备选项作为频繁项进行存储,否则不做任何操作;统计得到的频繁项数量,如果频繁项数量> 2,进入步骤(5),否则进入步骤(6); (5)、采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Reduce函数将数据包标记相同的频繁项集中,将此时频繁项位数记为k ;对于数据包标记相同的频繁项两两计算偏移量之差,如果两个频繁项偏移量相差为2,将偏移量小的频繁项的前2位与偏移量大的频繁项顺序组合成k+2位的高位备选项,高位备选项的偏移量为偏移量小的频繁项的偏移量,否则不做任何操作;统计生成的高位备选项个数,如果大于零,返回步骤(4)从新生成的高位备选项中选出频繁项,如果等于零,进入步骤(6); (6)、读取步骤(4)产生的所有频繁项,采用Hadoop平台的Map函数分离频繁项对应的数据包标记,采用Hadoop平台的Map函数函数将数据包标记相同的频繁项集中,根据频繁项偏移量进行特征字段筛选,筛选互不重叠的频繁项作为特征字段,得到N个目标应用层协议数据包对应的N组特征字段,第i,I < i < N组特征字段的数量为Mi ; (7)、采用Hadoop平台的Reduce函数依次对第i个目标应用层协议数据包进行特征字段组合特征字段组合:将Mi个特征字段进行Mi次组合,在第s次组合时,任意s个特征字段按偏移量顺序组合为特征串,得到个特征串,Mi次组合共计得到2〃,个特征串; (8)、对步骤(7)得到的N个目标应用层协议数据包的所有特征串,采用Hadoop平台的Reduce函数统计相同特征串对应的不同的数据包标记个数作为该特征串的支持数,若支持数>最小支持数n,则将该特征串作为待定特征串; 对待定特征串数据包标记进行识别,如果有任意两个及以上待定特征串具有相同的数据包标记,则保留最长的待定特征串,删除其他具有相同数据包标记的待定特征串; 将识别后的待定特征串作为目标应用层协议的最终特征串。
2.据权利要求1所述的应用层协议特征提取方法,其特征在于,所述的步骤(5)与步骤(6)中的频繁项集中通过hash函数完成。
3.据权利要求1所述的特征提取方法,其特征在于,所述的步骤(6)中的特征字段筛选包括以下步骤: 1)、对于所有具有相同标记的频繁项,统计具有相同偏移量的频繁项,并在具有相同偏移量的频繁项中选取最长的频繁项,共计W个; 2)、将W个频繁项按偏移量排序,将第d=l个频繁项作为第m=l个特征字段存储;3)、如果d=d+l>W,特征字段筛选结束;否则进入步骤4); 4)、判断第d个频繁项的偏移量是否大于第m个特征字段最后一个字符的偏移量,如果结果为是,进入步骤4);如果结果为否,则不做任何操作,返回步骤3); 5)、将第d个频繁项作 为第m=m+l特征字段存储,返回步骤3)。
全文摘要
本发明公开了一种基于Hadoop的应用层协议特征提取方法,利用Hadoop平台的MapReduce模型,对目标应用层协议数据包进行扫描,根据最小支持数从备选项筛选出频繁项,并通过组合高位备选项再筛选频繁项的方法找出最长频繁项,再在所有频繁项中用偏移量筛选出互不重叠的频繁项作为特征字段顺序组合形成特征串,根据最小支持数在特征串中筛选出能反映目标应用层协议特征的最终特征串,完成目标应用层协议特征的提取。采用本发明只需要扫描一遍目标应用层协议数据,就能准确的提取出应用层协议的特征,改善了人为进行应用层协议特征提取在面对海量协议数据时的局限性以及特征确定的主观性。
文档编号H04L29/06GK103095718SQ20131003446
公开日2013年5月8日 申请日期2013年1月29日 优先权日2013年1月29日
发明者孙健, 陈小英, 徐杰, 隆克平, 张毅, 李乾坤, 王晓丽, 梁雪芬, 姚洪泽, 陈旭 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1