基于基函数的网络协议分析方法

2014-06-16 04:56赵文红罗琴王巍
科技创新导报 2014年4期
关键词:网络安全

赵文红 罗琴 王巍

摘 要:网络协议分析可以帮助安全人员分析网络漏洞。但网络协议分析面临着协议种类越来越多、协议状态空间越来越复杂的问题。首先提出了基于基函数的网络协议结构表征方法,然后在此基础上给出了基于基函数组合模式的分层协议分析方法。之后针对私有协议,提出了一种可自学习的基函数及其组合模式扩展方式。最后给出了基于基函数的网络协议分析流程。性能分析实验表明提出的方法优于传统的匹配方法和统计方法。

关键词:协议分析 基函数 网络安全 基函数组合模式

中图分类号:TN911.7 文献标识码:A 文章编号:1674-098X(2014)02(a)-0058-04

Abstract:To analyses networks, security administrators usually use protocol analysis technologies. But there are many limitations on the existing technologies. Such as too many protocol types, complicated state space of protocol and so on. To solve the problem, a new description method of protocol structure is presented by base-function firstly. Then, a protocol analysis method base on it is proposed. To analyses the private protocols, a new self-learning algorithm is discussed. Finally, the flow of protocol analysis based on base-function is given. Experiment results show the efficiency of presented method.

Keywords:Protocol Analysis Base-function Protocol State Combination Mode of Base-function

网络协议分析是在网络管理和网络安全研究领域中众多学者关注的核心问题[1-5]。网络协议分析通过捕获网络中的数据包,分析数据包的首部和数据字段给出协议的详细信息和统计结果,进而将数据归类和分析,从而进一步帮助发现网络潜在安全隐患,并可在网络发生故障时提供故障分析信息[6-9]。网络协议分析可以使网络管理人员可以快速准确地定位故障原因,找出引起故障的网络节点、网络协议和网络链路,以最快的速度恢复网络的正常运行[10-11]。此外,网络协议分析还可以通过分析网络通信情况以及网络连接状况,对网络性能和资源的合理分配,为规划及调整网络提供可靠依据。

但是由于现有网络协议呈现多样化、私有化的特点,协议分析人员面临着协议种类越来越多、协议状态空间越来越复杂的问题。

已有的很多协议分析方法大多使用字符串匹配的方法[2,5,7],由于这种方法使用了大量的匹配方法,所以速度较慢。而其他基于统计学的协议分析方法又存在精确度不高的缺点[3,4,6]。此外这些方法都不能对各家网络公司的私有协议进行分析。

为了解决上述问题,本文首先设计了一种新的协议分析流程,然后对此流程中涉及的各种方法进行了讨论,其中包括:基于基函数的协议结构表征、基于结构分布图的多尺度协议识别、可自学习的协议结构识别。基于基函数的协议结构表征主要解决协议表述问题,把众多的协议用有限的少量基函数是,减少了协议描述的复杂度;基于结构分布图的多尺度协议识别利用基函数对嵌套的已知结构协议进行分层识别分析,并采用递归方式减少识别分析的复杂度;可自学习的协议结构识别针对私有协议进行基函数构建,从而利用新的基函数进行协议表征,获取其字段结构,并将新的基函数加入协议分析库,最终将私有协议转换为已知结构协议进行分析。

1 基于基函数的协议结构表征方法

由于现有协议的特征字段多种多样,所以需要使用少量的信息对大量协议的特征字段进行表述,从而为协议的分析提供基础。

由于沃尔什(Walsh)函数系具有函数值为±1、正交性等特点,所以本文采用沃尔什(Walsh)函数作为基函数对协议结构进行表征。

沃尔什(Walsh)函数定义如下:

若用wal(k,t)(k=0,1,…)来表示区间t∈[0,1)上的沃尔什函数,则其定义为下式:

wal(2k,t)=wal(k,2t)+(-1)kwal(k,2t-1),k=1,2,…

wal(2k+1,t)=wal(k,2t)+(-1)k+1wal(k,2t-1), k=0,1,…

wal(0,t) =

有了沃尔什(Walsh)函数以后,我们定义如下变换将沃尔什函数的±1转换为0,1比特流:

f(w) =

则采用变换f(x)可以得到一组正交基函数base(k,t)(k=0,1,…):

base(2k,t)=f(wal(2k,t)), k=1,2,…

base(2k+1,t)=f(wal(2k+1,t)), k=0,1,…

base(0,t)=f(wal(0,t))

由于已知结构协议的协议数据可以表示为0,1码串,所以可以用正交基函数base的不同组合模式表述所有的已知协议,从而可以建立基函数库和已知结构协议的基函数模式组合方式库。

下面,我们在基函数和变换f(x)的基础上,利用已有的基函数模式组合方式和接收到的目标协议信息,采用时间滑动的方式描绘目标协议的时间-结构分布图,然后根据时间-结构分布图描绘基函数模式组合-匹配率分布图,从而判断输入数据是否是已知结构的协议数据。endprint

假设C为基函数组合模式集合,

(1)对每一种已有的基函数组合模式c1,c2,…,ccn∈C,采用时间滑动的方式与输入数据进行异或加操作,得到输入数据的时间-结构分布图;

(2)对不同的基函数组合模式ci,将输入数据的时间-结构分布数据相加,得到每个基函数组合模式的结构匹配数值(ci, mi),i∈{1,2,…,cn};

(3)利用所有已知基函数组合模式的结构匹配数值绘制基函数模式组合-匹配率分布图;

(4)比较最大的匹配率数值m与某个阈值t

①若m大于等于t,则认为输入数据为已知结构协议的数据,向分层协议分析模块输出结果,停止;

②若m小于t,则认为输入数据为私有协议的数据,向自学习协议分析模块输出结果,停止

其中,阈值t可人工指定,其影响协议分析的准确率。

2 基于基函数组合模式的分层协议分析

由于现有的通信协议具有分层封装的特点,所以本节采用基函数组合模式思想,对接收到的协议数据进行逐层分析。具体步骤如下:

(1)对于输入数据d,利用其基函数组合模式抽取输入数据d的最外层协议特征字段f1,f2,…,ffn,将接收到的原始目标协议信息分割为协议首部字段H和上层协议数据supD

(2)解析首部字段H;

(3)判断上层协议数据supD长度是否为0,是则停止;

(4)利用上一节的方法对分割后得到的上层协议数据supD进行协议结构表征

(5)将已被结构表征的上层协议数据作为输入数据,转(1);

图1给出了对协议进行逐层分析的示意图。从图1中可以看出,在对目标协议进行逐层分析时,每次分析只采用基函数抽取整体协议的部分信息,这样可以减少处理的数据量,加快协议分析的速度。

通过上述方法对目标协议进行分层的结构分析,可以简化协议分析的复杂度,并且达到逐级精确的目的,加大协议分析的精确度。

3 可自学习的基函数及其组合模式扩展方法

由于私有协议结构的不确定性,需要设计具有自学习能力的基函数及其组合模式扩展方法。本文采用的自学习分析方法可分为以下几个步骤:

设F为基函数集合,C为基函数组合模式集合

(1)首先利用已有的基函数f1,f2,…,fcf∈F,采用不同于组合模式库中的新的组合模式c=描绘目标协议的结构分布图;

(2)利用所有新的基函数组合模式c的结构匹配数值绘制基函数模式组合-匹配率分布图;

(3)比较最大的匹配率数值m与某个阈值t

①若可通过已有的基函数的新的组合模式cn对目标协议进行表征,则将此协议对应的新的基函数模式组合模式cn加入基函数组合模式库C,停止;

②若无法通过已有的基函数对目标协议进行表征,则将基函数的维度加1,把得到新的基函数fcf+1加入基函数库F,转(1);

其中,阈值t可人工指定,其影响协议表征的准确率。

上述自学习基函数及其组合模式扩展方法可以形成新的基函数及其模式组合方式,用以建立私有协议的表征方式。若此后遇到同样的协议,可以通过基函数组合模式库对此协议进行快速表征和分析。

4 协议分析流程

本节提出的协议分析流程首先基于基函数的协议表征思想对需要分析的网络协议数据进行分析,判断其是已知结构协议的数据还是私有协议的数据。然后针对已知结构协议和私有协议的特点进行分别处理,对于已知结构协议,由于现今网络中大量采用了协议层级嵌套的设计思路,所以我们使用了一种分层协议分析方法;对于私有协议,我们利用自学习的思想,构建新的基函数并对协议数据进行表征,进而将其转换为已知结构的协议进行分析。此过程如图2所示。

图2中的具体流程描述如下:

(1)输入目标网络的协议数据;

(2)根据已有库中已有的基函数及其组合模式表征目标协议的结构;

(3)判断目标协议的结构分布图是否有匹配的基函数组合模式

(a)若有,即输入为已知结构的协议数据,转(4)

(b)若无,即输入为私有协议数据,转(5)

(4)采用分层方法对协议数据进行分析,停止。

(5)采用可自学习的基函数及其组合模式扩展方法建立新的基函数、基函数组合模式,更新基函数库和组合模式库,转(2)。

图3给出了使用匹配方法[2]、统计方法[3]和提出方法对协议数据分析的结果,其中横坐标为输入的协议数据数量,纵坐标为分析时间。实验数据来源于某企业内网数据,其中包含加密网络数据和非加密数据。从图中可以看出提出的基于基函数的网络协议分析方法在性能上优于匹配方法、统计方法。

5 结语

为了解决网络安全领域中的协议分析问题,该文首先将协议数据转换为基函数及其组合模式的描述方式,然后提出了基于基函数的协议结构表征方法、基于基函数组合模式的分层协议分析方法和可自学习的基函数及其组合模式扩展方法,最后给出了利用上述方法的协议分析流程。性能分析实验表明利用提出的方法可以对网络协议进行快速和精确的分析。

参考文献

[1] Wireshark用户手册, http://man.1upaworld.com/content/network/wireshark/

[2] 徐龙.网络协议分析系统的设计与实现[J].电脑编程技巧与维护,2009(8):74-76.

[3] 陈亮,龚俭,徐选.应用层算法协议识别算法综述[J].计算机科学,2007,7, 3(7):73-75.

[4] 陈曙晖,苏金树.基于内容分析的协议识别研究[J].国防科技大学学报,2008, 30(4):82-87.

[5] 范慧萍,宣蕾,陈曙晖,等.基于正则表达式的应用层协议识别加速[J].计算机研究与发展,2008(45):438-443.

[6] 李雄伟,赵强,向凯全,等.基于决策树的网络协议识别算法研究[J].微计算机信息,2009,25(9-3):25-26.

[7]石美红,延伟伟,李永刚.基于Ethereal的CORBA通信协议解析功能[J].计算机工程与设计,2005,26(12):3236-3239.

[8] Stephen Owen, Pearl Brereton, David Budgen. Protocol analysis:A neglected practice [J]. Communications of the ACM, 2006, 49(2):117-122

[9] Tarek Abbes, Adel Bouhoula, Michael Rusinowiteh. Protocol Analysis in Intrusion Detection Using Decision Tree[C]//. Proceedings of the International Conference on Information Technology: Coding and Computing. USA, 2004, 1253-1261.

[10] 王锦超,李飞,沈明玉.网络数据包的协议分析算法设计与实现[C]//.计算机技术与发展,2006,16(4):77-80

[11] Risso F,DegioanniL. An architecture for high performance network analysis. Proceedings of the Sixth IEEE Symposium on Computers and Communications. 2001, 686-693.endprint

假设C为基函数组合模式集合,

(1)对每一种已有的基函数组合模式c1,c2,…,ccn∈C,采用时间滑动的方式与输入数据进行异或加操作,得到输入数据的时间-结构分布图;

(2)对不同的基函数组合模式ci,将输入数据的时间-结构分布数据相加,得到每个基函数组合模式的结构匹配数值(ci, mi),i∈{1,2,…,cn};

(3)利用所有已知基函数组合模式的结构匹配数值绘制基函数模式组合-匹配率分布图;

(4)比较最大的匹配率数值m与某个阈值t

①若m大于等于t,则认为输入数据为已知结构协议的数据,向分层协议分析模块输出结果,停止;

②若m小于t,则认为输入数据为私有协议的数据,向自学习协议分析模块输出结果,停止

其中,阈值t可人工指定,其影响协议分析的准确率。

2 基于基函数组合模式的分层协议分析

由于现有的通信协议具有分层封装的特点,所以本节采用基函数组合模式思想,对接收到的协议数据进行逐层分析。具体步骤如下:

(1)对于输入数据d,利用其基函数组合模式抽取输入数据d的最外层协议特征字段f1,f2,…,ffn,将接收到的原始目标协议信息分割为协议首部字段H和上层协议数据supD

(2)解析首部字段H;

(3)判断上层协议数据supD长度是否为0,是则停止;

(4)利用上一节的方法对分割后得到的上层协议数据supD进行协议结构表征

(5)将已被结构表征的上层协议数据作为输入数据,转(1);

图1给出了对协议进行逐层分析的示意图。从图1中可以看出,在对目标协议进行逐层分析时,每次分析只采用基函数抽取整体协议的部分信息,这样可以减少处理的数据量,加快协议分析的速度。

通过上述方法对目标协议进行分层的结构分析,可以简化协议分析的复杂度,并且达到逐级精确的目的,加大协议分析的精确度。

3 可自学习的基函数及其组合模式扩展方法

由于私有协议结构的不确定性,需要设计具有自学习能力的基函数及其组合模式扩展方法。本文采用的自学习分析方法可分为以下几个步骤:

设F为基函数集合,C为基函数组合模式集合

(1)首先利用已有的基函数f1,f2,…,fcf∈F,采用不同于组合模式库中的新的组合模式c=描绘目标协议的结构分布图;

(2)利用所有新的基函数组合模式c的结构匹配数值绘制基函数模式组合-匹配率分布图;

(3)比较最大的匹配率数值m与某个阈值t

①若可通过已有的基函数的新的组合模式cn对目标协议进行表征,则将此协议对应的新的基函数模式组合模式cn加入基函数组合模式库C,停止;

②若无法通过已有的基函数对目标协议进行表征,则将基函数的维度加1,把得到新的基函数fcf+1加入基函数库F,转(1);

其中,阈值t可人工指定,其影响协议表征的准确率。

上述自学习基函数及其组合模式扩展方法可以形成新的基函数及其模式组合方式,用以建立私有协议的表征方式。若此后遇到同样的协议,可以通过基函数组合模式库对此协议进行快速表征和分析。

4 协议分析流程

本节提出的协议分析流程首先基于基函数的协议表征思想对需要分析的网络协议数据进行分析,判断其是已知结构协议的数据还是私有协议的数据。然后针对已知结构协议和私有协议的特点进行分别处理,对于已知结构协议,由于现今网络中大量采用了协议层级嵌套的设计思路,所以我们使用了一种分层协议分析方法;对于私有协议,我们利用自学习的思想,构建新的基函数并对协议数据进行表征,进而将其转换为已知结构的协议进行分析。此过程如图2所示。

图2中的具体流程描述如下:

(1)输入目标网络的协议数据;

(2)根据已有库中已有的基函数及其组合模式表征目标协议的结构;

(3)判断目标协议的结构分布图是否有匹配的基函数组合模式

(a)若有,即输入为已知结构的协议数据,转(4)

(b)若无,即输入为私有协议数据,转(5)

(4)采用分层方法对协议数据进行分析,停止。

(5)采用可自学习的基函数及其组合模式扩展方法建立新的基函数、基函数组合模式,更新基函数库和组合模式库,转(2)。

图3给出了使用匹配方法[2]、统计方法[3]和提出方法对协议数据分析的结果,其中横坐标为输入的协议数据数量,纵坐标为分析时间。实验数据来源于某企业内网数据,其中包含加密网络数据和非加密数据。从图中可以看出提出的基于基函数的网络协议分析方法在性能上优于匹配方法、统计方法。

5 结语

为了解决网络安全领域中的协议分析问题,该文首先将协议数据转换为基函数及其组合模式的描述方式,然后提出了基于基函数的协议结构表征方法、基于基函数组合模式的分层协议分析方法和可自学习的基函数及其组合模式扩展方法,最后给出了利用上述方法的协议分析流程。性能分析实验表明利用提出的方法可以对网络协议进行快速和精确的分析。

参考文献

[1] Wireshark用户手册, http://man.1upaworld.com/content/network/wireshark/

[2] 徐龙.网络协议分析系统的设计与实现[J].电脑编程技巧与维护,2009(8):74-76.

[3] 陈亮,龚俭,徐选.应用层算法协议识别算法综述[J].计算机科学,2007,7, 3(7):73-75.

[4] 陈曙晖,苏金树.基于内容分析的协议识别研究[J].国防科技大学学报,2008, 30(4):82-87.

[5] 范慧萍,宣蕾,陈曙晖,等.基于正则表达式的应用层协议识别加速[J].计算机研究与发展,2008(45):438-443.

[6] 李雄伟,赵强,向凯全,等.基于决策树的网络协议识别算法研究[J].微计算机信息,2009,25(9-3):25-26.

[7]石美红,延伟伟,李永刚.基于Ethereal的CORBA通信协议解析功能[J].计算机工程与设计,2005,26(12):3236-3239.

[8] Stephen Owen, Pearl Brereton, David Budgen. Protocol analysis:A neglected practice [J]. Communications of the ACM, 2006, 49(2):117-122

[9] Tarek Abbes, Adel Bouhoula, Michael Rusinowiteh. Protocol Analysis in Intrusion Detection Using Decision Tree[C]//. Proceedings of the International Conference on Information Technology: Coding and Computing. USA, 2004, 1253-1261.

[10] 王锦超,李飞,沈明玉.网络数据包的协议分析算法设计与实现[C]//.计算机技术与发展,2006,16(4):77-80

[11] Risso F,DegioanniL. An architecture for high performance network analysis. Proceedings of the Sixth IEEE Symposium on Computers and Communications. 2001, 686-693.endprint

假设C为基函数组合模式集合,

(1)对每一种已有的基函数组合模式c1,c2,…,ccn∈C,采用时间滑动的方式与输入数据进行异或加操作,得到输入数据的时间-结构分布图;

(2)对不同的基函数组合模式ci,将输入数据的时间-结构分布数据相加,得到每个基函数组合模式的结构匹配数值(ci, mi),i∈{1,2,…,cn};

(3)利用所有已知基函数组合模式的结构匹配数值绘制基函数模式组合-匹配率分布图;

(4)比较最大的匹配率数值m与某个阈值t

①若m大于等于t,则认为输入数据为已知结构协议的数据,向分层协议分析模块输出结果,停止;

②若m小于t,则认为输入数据为私有协议的数据,向自学习协议分析模块输出结果,停止

其中,阈值t可人工指定,其影响协议分析的准确率。

2 基于基函数组合模式的分层协议分析

由于现有的通信协议具有分层封装的特点,所以本节采用基函数组合模式思想,对接收到的协议数据进行逐层分析。具体步骤如下:

(1)对于输入数据d,利用其基函数组合模式抽取输入数据d的最外层协议特征字段f1,f2,…,ffn,将接收到的原始目标协议信息分割为协议首部字段H和上层协议数据supD

(2)解析首部字段H;

(3)判断上层协议数据supD长度是否为0,是则停止;

(4)利用上一节的方法对分割后得到的上层协议数据supD进行协议结构表征

(5)将已被结构表征的上层协议数据作为输入数据,转(1);

图1给出了对协议进行逐层分析的示意图。从图1中可以看出,在对目标协议进行逐层分析时,每次分析只采用基函数抽取整体协议的部分信息,这样可以减少处理的数据量,加快协议分析的速度。

通过上述方法对目标协议进行分层的结构分析,可以简化协议分析的复杂度,并且达到逐级精确的目的,加大协议分析的精确度。

3 可自学习的基函数及其组合模式扩展方法

由于私有协议结构的不确定性,需要设计具有自学习能力的基函数及其组合模式扩展方法。本文采用的自学习分析方法可分为以下几个步骤:

设F为基函数集合,C为基函数组合模式集合

(1)首先利用已有的基函数f1,f2,…,fcf∈F,采用不同于组合模式库中的新的组合模式c=描绘目标协议的结构分布图;

(2)利用所有新的基函数组合模式c的结构匹配数值绘制基函数模式组合-匹配率分布图;

(3)比较最大的匹配率数值m与某个阈值t

①若可通过已有的基函数的新的组合模式cn对目标协议进行表征,则将此协议对应的新的基函数模式组合模式cn加入基函数组合模式库C,停止;

②若无法通过已有的基函数对目标协议进行表征,则将基函数的维度加1,把得到新的基函数fcf+1加入基函数库F,转(1);

其中,阈值t可人工指定,其影响协议表征的准确率。

上述自学习基函数及其组合模式扩展方法可以形成新的基函数及其模式组合方式,用以建立私有协议的表征方式。若此后遇到同样的协议,可以通过基函数组合模式库对此协议进行快速表征和分析。

4 协议分析流程

本节提出的协议分析流程首先基于基函数的协议表征思想对需要分析的网络协议数据进行分析,判断其是已知结构协议的数据还是私有协议的数据。然后针对已知结构协议和私有协议的特点进行分别处理,对于已知结构协议,由于现今网络中大量采用了协议层级嵌套的设计思路,所以我们使用了一种分层协议分析方法;对于私有协议,我们利用自学习的思想,构建新的基函数并对协议数据进行表征,进而将其转换为已知结构的协议进行分析。此过程如图2所示。

图2中的具体流程描述如下:

(1)输入目标网络的协议数据;

(2)根据已有库中已有的基函数及其组合模式表征目标协议的结构;

(3)判断目标协议的结构分布图是否有匹配的基函数组合模式

(a)若有,即输入为已知结构的协议数据,转(4)

(b)若无,即输入为私有协议数据,转(5)

(4)采用分层方法对协议数据进行分析,停止。

(5)采用可自学习的基函数及其组合模式扩展方法建立新的基函数、基函数组合模式,更新基函数库和组合模式库,转(2)。

图3给出了使用匹配方法[2]、统计方法[3]和提出方法对协议数据分析的结果,其中横坐标为输入的协议数据数量,纵坐标为分析时间。实验数据来源于某企业内网数据,其中包含加密网络数据和非加密数据。从图中可以看出提出的基于基函数的网络协议分析方法在性能上优于匹配方法、统计方法。

5 结语

为了解决网络安全领域中的协议分析问题,该文首先将协议数据转换为基函数及其组合模式的描述方式,然后提出了基于基函数的协议结构表征方法、基于基函数组合模式的分层协议分析方法和可自学习的基函数及其组合模式扩展方法,最后给出了利用上述方法的协议分析流程。性能分析实验表明利用提出的方法可以对网络协议进行快速和精确的分析。

参考文献

[1] Wireshark用户手册, http://man.1upaworld.com/content/network/wireshark/

[2] 徐龙.网络协议分析系统的设计与实现[J].电脑编程技巧与维护,2009(8):74-76.

[3] 陈亮,龚俭,徐选.应用层算法协议识别算法综述[J].计算机科学,2007,7, 3(7):73-75.

[4] 陈曙晖,苏金树.基于内容分析的协议识别研究[J].国防科技大学学报,2008, 30(4):82-87.

[5] 范慧萍,宣蕾,陈曙晖,等.基于正则表达式的应用层协议识别加速[J].计算机研究与发展,2008(45):438-443.

[6] 李雄伟,赵强,向凯全,等.基于决策树的网络协议识别算法研究[J].微计算机信息,2009,25(9-3):25-26.

[7]石美红,延伟伟,李永刚.基于Ethereal的CORBA通信协议解析功能[J].计算机工程与设计,2005,26(12):3236-3239.

[8] Stephen Owen, Pearl Brereton, David Budgen. Protocol analysis:A neglected practice [J]. Communications of the ACM, 2006, 49(2):117-122

[9] Tarek Abbes, Adel Bouhoula, Michael Rusinowiteh. Protocol Analysis in Intrusion Detection Using Decision Tree[C]//. Proceedings of the International Conference on Information Technology: Coding and Computing. USA, 2004, 1253-1261.

[10] 王锦超,李飞,沈明玉.网络数据包的协议分析算法设计与实现[C]//.计算机技术与发展,2006,16(4):77-80

[11] Risso F,DegioanniL. An architecture for high performance network analysis. Proceedings of the Sixth IEEE Symposium on Computers and Communications. 2001, 686-693.endprint

猜你喜欢
网络安全
网络安全知多少?
新形势下的特种设备网络安全防护探讨
新量子通信线路保障网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
网络安全与执法专业人才培养探索与思考
设立网络安全专项基金 促进人才培养
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月