防火墙流过滤技术的分析与研究

防火墙流过滤技术的分析与研究

耿风瑞,高仲合,李红伟

(曲阜师范大学 计算机科学学院,山东 日照 276826)

摘 要:流过滤技术是对包过滤、状态检测及应用代理的一种“融合”,实现了高性能、可扩展、透明的对应用层协议的保护。分析了流过滤技术的基本原理以及实现原理,并对流过滤技术和其他防火墙技术进行了比较;详细研究了流过滤的实现过程,针对流过滤技术实现过程中的大量TCP报文重组问题,提出了一种解决方案;最后指出流过滤防火墙并不是完全透明的以及进一步研究的方向。

关键词:流过滤技术;TCP/IP协议栈;报文重组;透明

Analysis and Research on the Technology of Flow Filtration in Firewall

GENG Feng-rui ,GAO Zhong-he, LI Hong-wei

(Department of Computer Science College , Qufu Normal University, Rizhao,Shandong 276826, China)

Abstract: Flow filtration technology is a kind of “integration” which compounds packet filtration, state detection and the agent of application. This technology helps to realize the high performance, scalability and the transparent management protection to the application layer. This paper analyzes the basic theories and implementation principles of the flow filtration technology and makes a comparison between flow filtration technology and other firewall techniques. Realization process also has been studied in detail here. In view of massive TCP text reorganization question in the realization process of flow filtration technology this paper proposes a kind of solution. Finally, this paper points out that filtering firewall

is not entirely transparent and directions in future study.

Key words:Flow filtration technology; TCP / IP protocol stack; Packet reorganization;Transparent

1 引言

流过滤技术是一种新型的防火墙体系结构,融合了包过滤和应用代理安全性及优点,并克服了应用代理型防火墙的缺点和普通包过滤防火墙安全性差、控制不了应用层等的缺陷,提高了抗攻击性,动态地保护了网络安全。它工作在IP层,以状态检测包过滤的形态,通过内嵌专门的TCP/IP协议栈,透明实现了对应用层保护的一种防火墙过滤技术[1]。

转发。在滞留重组过程中,防火墙要分别代替客户端(服务端)与服务端(客户端)通信,进行两个伪装会话,使得双方误以为它们之间的连接在维持,并进行着通信会话,而事实上已被阻断。在没有被重组检查之前任何含有成块数据流的TCP报文均不会通过防火墙到达另一方。当重组完成且经检查合法转发时,防火墙则要继续双方原来的TCP连接会话,将含有成块数据流的TCP报文发到通信的另一方。总之,流过滤的关键在于专用TCP的重建,以实现在TCP层进行对含有成块数据流的TCP报文透明地重组、检查和转发,不同于通用操作系统中的标准TCP协议的实现。

2 流过滤技术原理

流过滤技术的基本原理是在状态检测包过滤的基础上,针对具体应用层协议采用专门设计的TCP/IP协议栈实现对链路层数据流在应用层重组并在此基础上进行过滤,以包过滤的形态提供应用层保护能力,使得规则匹配在防火墙内部由数据链路层直达应用层,如图1所示。流过滤的实现是对TCP报文分别对待处理,对于不含成块数据流的TCP报文进行简单的状态检测,对于含有成块数据流的TCP报文进行识别、截取、滞留重组、检查、合法

3流过滤技术与其他技术的比较

目前,包过滤技术和应用代理技术是普遍采用的防火墙技术,本文将从以下几个方面进行流过滤与其他技术比较。

3.1在综合安全性上

包过滤技术仅是检查单个、孤立的数据包,并不考虑前后包之间的关系,并且它只会检查包头信息而不会深入检查包的内容,综合安全性差;应用代理技术能“动态适应”传输中的数据流量,当安全要求高时,安全检查仍然在应用层中,保证防火墙的最大安全性;流过滤技术具有动态保护网络安全的特性,能有效地抵御各种新的攻击,综合安全性高。

3.2在实现原理上

流过滤技术采用重构TCP/IP协议栈方式,对数据包进行转发,并且对应用透明,使用户意识不到防火墙的存在。包过滤技术和应用代理则没有采用该技术,而且应用代理还管理两个标准的TCP连接[2]。

3.3在工作效率上

包过滤技术采用比较简单的对单个报文中的IP和端口号进行处理,与规则库中的规则进行比较,不涉及TCP报文的数据部分以及TCP头中部分项,耗费的系统资源最少,效率最高[3]。流过滤技术,基于状态检测技术,重构TCP/IP协议栈,对TCP报文采取分别对待的态度:既有单个报文的状态检测,又有应用数据流的安全检测。效率稍低于包过滤技术,但是,如果采用多处理器的能力,仍能达到很大的吞吐能力。应用代理技术完全阻断通信双方直接的TCP连接,和双方在应用层会话而得到应用层数据流,然后按标准TCP/IP协议栈封装转发应用数据,效率最低,大规模的并发访问几乎是不可能实现的。

3.4在工作层次上

包过滤技术和流过滤技术均工作在网络层。而应用代理则工作在应用层。

3.5在控制能力上

包过滤技术控制能力较弱,仅能控制IP分组或TCP连接的状态。应用代理控制应用数据流的内容级控制。流过滤的控制能力最强,从数据链路层直到应用层都在它的控制范围之内。如表1所示。

表1 防火墙技术对比表

4流过滤的实现

4.1报文的分类和处理策略

在网络中传输的报文类型各种各样,有ARP报文、IP报文等。IP报文又分成TCP报文、UDP报文,在广域网上传输的报文绝大部分是TCP报文。TCP报文根据用途分为多种,其中含有成块数据的TCP报文才是流过滤技术处理的对象,关键报文。

本文通过对TCP报文传输实验分析和对TCP协议研究发现,含交互数据TCP报文中PSH=1,含成块数据流的TCP报文中PSH=0。所以,根据是否含应用数据、所含应用数据的种类并结合标志位,将TCP报文分为四类:不含应用层数据的TCP报文为A型;含有应用层数据并且其中PSH置位的为B型;含有应用数据并且其中URG置位的为C型;含有应用层数据但PSH,URG无置位的为D型。其中A类型不含应用数据,采用的处理策略是利用状态检测包过滤技术;B类型中的应用数据是应用层协议的命令和响应,不仅要作为一个包处理进行状态检测,还要对其中的命令和响应合法性进行检查;C类型是紧急数据,此报文产生后立即传送,并且要对包处理进行状态检测和对其中紧急数据的合法性进行检查;D类型就是含有成块数据流的TCP报文,即关键报文。

4.2 TCP报文的重组

对于进行流过滤的TCP报文重组,就是把属于同一会话的关键报文应用数据在防火墙进行组合。IP报文在网络上传输的时候可能发生乱序及重复的情况,故通过报文重组才能将应用数据进行准确重组。我们根据报文中的TCP首部序号字段的值及应用层数据的长度发现重复报文,删除多余重复报文。在先后顺序相邻的两个报文中,后发送报文的TCP首部序号字段的值等于先发报文TCP首部序号的值加上应用层数据长度加1,依据这条规则将同一会话所有报文按照先后顺序排列好,将应用层数据组合在一起则就完成重组过程。

但当同属一个会话的TCP报文进行大量或者很大重组时,那么在内存缓存的数据内容就会占用很大的系统资源,比如,传输1G的数据内容,就至少分配1G的内存来缓存这些重组的TCP报文数据内容。这对防火墙系统来说,资源的消耗非常严重,并且重组的TCP报文数据内容很大,当全部重组这些数据后,对其进行流过滤,那么进行二进制字符串匹配消耗的时间就很长,对于维持双

方TCP连接的处理就相当困难。

为了解决这种情况,本文提出了一种方案:首先,设定一定的门阀值。这个门阀值是当出现大量数据内容重组,而对重组的数据内容缓存设定的一个最大值。比如,设定要滞留的数据内容缓存最大为20K,当重组的应用层数据内容超过这个值时,就要对其滞留的数据内容进行流过滤,同时,开辟新的缓存区,接受后续的重组报文。如果不符合过滤规则,就断开此会话连接,抛弃滞留的数据内容。否则,就向上传递已经流过滤的数据内容。但如果恰好已流过滤向上传递的数据内容的最后一部分与滞留的还没有流过滤的数据部分才能构成不符合流过滤规则的要求,那么此次会话流过滤就失败了。因此,我们必须再设定一定的流过滤值。这个值是在设定的缓存区内对TCP报文重组而滞留的数据内容进行流过滤的最大值。比如,设定流过滤值为10K,当在限定的20K缓存区内滞留的数据内容达到10K时,就对这10K的数据内容进行流过滤,如果通过,那么就向上传递一半的数据内容,保留一半的数据内容滞留,等待下一次滞留的5K数据内容进行过滤,再进行流过滤。也就是说,当滞留数据内容达到这个流过滤值时就对这10K的数据内容进行过滤、通过,就向上传递一半的数据内容;否则,就断开此会话连接,抛弃滞留的数据内容。但也不能保证一定会完全解决上述情况。如果设定的流过滤值较小,那么也可能会出现方上述的情况。所以,流过滤值大小设定是个关键。当设定一个合理的流过滤值时,那么出现的情况几率就很小,而且对系统资源的消耗也处在合理的范围内,对维持TCP的连接也较简易。

4.3数据合法性检查

重组后的完整数据必须通过防火墙流过滤规则检查。对应用层内容的过滤,匹配应用层字段比较复杂,必须考虑匹配效率。匹配算法将采用一个高效率的字符串匹配算法——BM算法[4],时间复杂度为O(N+R*M)(N为重组数据的长度,R为应用层字段具体内容在重组数据中出现的次数,M为规则应用层字段的长度)。

4.4发送合法数据

数据通过合法性检查后,把原始数据按顺序发送给接受端。

4.5流过滤流程图

图2 流过滤流程图

5结束语

本文通过对流过滤技术的分析,针对流过滤实现过程中实现大量TCP报文重组,提出了一种解决方案。对于该方案,如何动态地确定合理流过滤值是本文进一步研究的问题。同时研究发现:虽然流过滤技术是对包过滤、状态检测及应用代理的一种“融合”,实现了高性能、可扩展性、透明性,但并非对应用完全透明,仅支持几种应用协议,只有通过应用级插件,才能适应新的应用协议。如何实现流过滤技术对应用完全透明,将会是防火墙流过滤技术进一步研究的方向。

参考文献:

[1]东软软件股份有限公司.NetEye Firewall3.2技术白皮书.[2]黎连业,张维,向东明著.防火墙及其技术[M].北京:清华大学出版社出版,2004,223-232.

[3]吴功宜.计算机网络高级教程[M].北京:清华大学出版社,2007.532-539.

[4]巫喜红.

BM模式匹配算法剖析[J].计算机工程,2007,1(1):29-31.

收稿日期:2008-06-26

防火墙流过滤技术的分析与研究

耿风瑞,高仲合,李红伟

(曲阜师范大学 计算机科学学院,山东 日照 276826)

摘 要:流过滤技术是对包过滤、状态检测及应用代理的一种“融合”,实现了高性能、可扩展、透明的对应用层协议的保护。分析了流过滤技术的基本原理以及实现原理,并对流过滤技术和其他防火墙技术进行了比较;详细研究了流过滤的实现过程,针对流过滤技术实现过程中的大量TCP报文重组问题,提出了一种解决方案;最后指出流过滤防火墙并不是完全透明的以及进一步研究的方向。

关键词:流过滤技术;TCP/IP协议栈;报文重组;透明

Analysis and Research on the Technology of Flow Filtration in Firewall

GENG Feng-rui ,GAO Zhong-he, LI Hong-wei

(Department of Computer Science College , Qufu Normal University, Rizhao,Shandong 276826, China)

Abstract: Flow filtration technology is a kind of “integration” which compounds packet filtration, state detection and the agent of application. This technology helps to realize the high performance, scalability and the transparent management protection to the application layer. This paper analyzes the basic theories and implementation principles of the flow filtration technology and makes a comparison between flow filtration technology and other firewall techniques. Realization process also has been studied in detail here. In view of massive TCP text reorganization question in the realization process of flow filtration technology this paper proposes a kind of solution. Finally, this paper points out that filtering firewall

is not entirely transparent and directions in future study.

Key words:Flow filtration technology; TCP / IP protocol stack; Packet reorganization;Transparent

1 引言

流过滤技术是一种新型的防火墙体系结构,融合了包过滤和应用代理安全性及优点,并克服了应用代理型防火墙的缺点和普通包过滤防火墙安全性差、控制不了应用层等的缺陷,提高了抗攻击性,动态地保护了网络安全。它工作在IP层,以状态检测包过滤的形态,通过内嵌专门的TCP/IP协议栈,透明实现了对应用层保护的一种防火墙过滤技术[1]。

转发。在滞留重组过程中,防火墙要分别代替客户端(服务端)与服务端(客户端)通信,进行两个伪装会话,使得双方误以为它们之间的连接在维持,并进行着通信会话,而事实上已被阻断。在没有被重组检查之前任何含有成块数据流的TCP报文均不会通过防火墙到达另一方。当重组完成且经检查合法转发时,防火墙则要继续双方原来的TCP连接会话,将含有成块数据流的TCP报文发到通信的另一方。总之,流过滤的关键在于专用TCP的重建,以实现在TCP层进行对含有成块数据流的TCP报文透明地重组、检查和转发,不同于通用操作系统中的标准TCP协议的实现。

2 流过滤技术原理

流过滤技术的基本原理是在状态检测包过滤的基础上,针对具体应用层协议采用专门设计的TCP/IP协议栈实现对链路层数据流在应用层重组并在此基础上进行过滤,以包过滤的形态提供应用层保护能力,使得规则匹配在防火墙内部由数据链路层直达应用层,如图1所示。流过滤的实现是对TCP报文分别对待处理,对于不含成块数据流的TCP报文进行简单的状态检测,对于含有成块数据流的TCP报文进行识别、截取、滞留重组、检查、合法

3流过滤技术与其他技术的比较

目前,包过滤技术和应用代理技术是普遍采用的防火墙技术,本文将从以下几个方面进行流过滤与其他技术比较。

3.1在综合安全性上

包过滤技术仅是检查单个、孤立的数据包,并不考虑前后包之间的关系,并且它只会检查包头信息而不会深入检查包的内容,综合安全性差;应用代理技术能“动态适应”传输中的数据流量,当安全要求高时,安全检查仍然在应用层中,保证防火墙的最大安全性;流过滤技术具有动态保护网络安全的特性,能有效地抵御各种新的攻击,综合安全性高。

3.2在实现原理上

流过滤技术采用重构TCP/IP协议栈方式,对数据包进行转发,并且对应用透明,使用户意识不到防火墙的存在。包过滤技术和应用代理则没有采用该技术,而且应用代理还管理两个标准的TCP连接[2]。

3.3在工作效率上

包过滤技术采用比较简单的对单个报文中的IP和端口号进行处理,与规则库中的规则进行比较,不涉及TCP报文的数据部分以及TCP头中部分项,耗费的系统资源最少,效率最高[3]。流过滤技术,基于状态检测技术,重构TCP/IP协议栈,对TCP报文采取分别对待的态度:既有单个报文的状态检测,又有应用数据流的安全检测。效率稍低于包过滤技术,但是,如果采用多处理器的能力,仍能达到很大的吞吐能力。应用代理技术完全阻断通信双方直接的TCP连接,和双方在应用层会话而得到应用层数据流,然后按标准TCP/IP协议栈封装转发应用数据,效率最低,大规模的并发访问几乎是不可能实现的。

3.4在工作层次上

包过滤技术和流过滤技术均工作在网络层。而应用代理则工作在应用层。

3.5在控制能力上

包过滤技术控制能力较弱,仅能控制IP分组或TCP连接的状态。应用代理控制应用数据流的内容级控制。流过滤的控制能力最强,从数据链路层直到应用层都在它的控制范围之内。如表1所示。

表1 防火墙技术对比表

4流过滤的实现

4.1报文的分类和处理策略

在网络中传输的报文类型各种各样,有ARP报文、IP报文等。IP报文又分成TCP报文、UDP报文,在广域网上传输的报文绝大部分是TCP报文。TCP报文根据用途分为多种,其中含有成块数据的TCP报文才是流过滤技术处理的对象,关键报文。

本文通过对TCP报文传输实验分析和对TCP协议研究发现,含交互数据TCP报文中PSH=1,含成块数据流的TCP报文中PSH=0。所以,根据是否含应用数据、所含应用数据的种类并结合标志位,将TCP报文分为四类:不含应用层数据的TCP报文为A型;含有应用层数据并且其中PSH置位的为B型;含有应用数据并且其中URG置位的为C型;含有应用层数据但PSH,URG无置位的为D型。其中A类型不含应用数据,采用的处理策略是利用状态检测包过滤技术;B类型中的应用数据是应用层协议的命令和响应,不仅要作为一个包处理进行状态检测,还要对其中的命令和响应合法性进行检查;C类型是紧急数据,此报文产生后立即传送,并且要对包处理进行状态检测和对其中紧急数据的合法性进行检查;D类型就是含有成块数据流的TCP报文,即关键报文。

4.2 TCP报文的重组

对于进行流过滤的TCP报文重组,就是把属于同一会话的关键报文应用数据在防火墙进行组合。IP报文在网络上传输的时候可能发生乱序及重复的情况,故通过报文重组才能将应用数据进行准确重组。我们根据报文中的TCP首部序号字段的值及应用层数据的长度发现重复报文,删除多余重复报文。在先后顺序相邻的两个报文中,后发送报文的TCP首部序号字段的值等于先发报文TCP首部序号的值加上应用层数据长度加1,依据这条规则将同一会话所有报文按照先后顺序排列好,将应用层数据组合在一起则就完成重组过程。

但当同属一个会话的TCP报文进行大量或者很大重组时,那么在内存缓存的数据内容就会占用很大的系统资源,比如,传输1G的数据内容,就至少分配1G的内存来缓存这些重组的TCP报文数据内容。这对防火墙系统来说,资源的消耗非常严重,并且重组的TCP报文数据内容很大,当全部重组这些数据后,对其进行流过滤,那么进行二进制字符串匹配消耗的时间就很长,对于维持双

方TCP连接的处理就相当困难。

为了解决这种情况,本文提出了一种方案:首先,设定一定的门阀值。这个门阀值是当出现大量数据内容重组,而对重组的数据内容缓存设定的一个最大值。比如,设定要滞留的数据内容缓存最大为20K,当重组的应用层数据内容超过这个值时,就要对其滞留的数据内容进行流过滤,同时,开辟新的缓存区,接受后续的重组报文。如果不符合过滤规则,就断开此会话连接,抛弃滞留的数据内容。否则,就向上传递已经流过滤的数据内容。但如果恰好已流过滤向上传递的数据内容的最后一部分与滞留的还没有流过滤的数据部分才能构成不符合流过滤规则的要求,那么此次会话流过滤就失败了。因此,我们必须再设定一定的流过滤值。这个值是在设定的缓存区内对TCP报文重组而滞留的数据内容进行流过滤的最大值。比如,设定流过滤值为10K,当在限定的20K缓存区内滞留的数据内容达到10K时,就对这10K的数据内容进行流过滤,如果通过,那么就向上传递一半的数据内容,保留一半的数据内容滞留,等待下一次滞留的5K数据内容进行过滤,再进行流过滤。也就是说,当滞留数据内容达到这个流过滤值时就对这10K的数据内容进行过滤、通过,就向上传递一半的数据内容;否则,就断开此会话连接,抛弃滞留的数据内容。但也不能保证一定会完全解决上述情况。如果设定的流过滤值较小,那么也可能会出现方上述的情况。所以,流过滤值大小设定是个关键。当设定一个合理的流过滤值时,那么出现的情况几率就很小,而且对系统资源的消耗也处在合理的范围内,对维持TCP的连接也较简易。

4.3数据合法性检查

重组后的完整数据必须通过防火墙流过滤规则检查。对应用层内容的过滤,匹配应用层字段比较复杂,必须考虑匹配效率。匹配算法将采用一个高效率的字符串匹配算法——BM算法[4],时间复杂度为O(N+R*M)(N为重组数据的长度,R为应用层字段具体内容在重组数据中出现的次数,M为规则应用层字段的长度)。

4.4发送合法数据

数据通过合法性检查后,把原始数据按顺序发送给接受端。

4.5流过滤流程图

图2 流过滤流程图

5结束语

本文通过对流过滤技术的分析,针对流过滤实现过程中实现大量TCP报文重组,提出了一种解决方案。对于该方案,如何动态地确定合理流过滤值是本文进一步研究的问题。同时研究发现:虽然流过滤技术是对包过滤、状态检测及应用代理的一种“融合”,实现了高性能、可扩展性、透明性,但并非对应用完全透明,仅支持几种应用协议,只有通过应用级插件,才能适应新的应用协议。如何实现流过滤技术对应用完全透明,将会是防火墙流过滤技术进一步研究的方向。

参考文献:

[1]东软软件股份有限公司.NetEye Firewall3.2技术白皮书.[2]黎连业,张维,向东明著.防火墙及其技术[M].北京:清华大学出版社出版,2004,223-232.

[3]吴功宜.计算机网络高级教程[M].北京:清华大学出版社,2007.532-539.

[4]巫喜红.

BM模式匹配算法剖析[J].计算机工程,2007,1(1):29-31.

收稿日期:2008-06-26


相关内容

  • 关于计算机网络当前研究方向的通报
  • 关于计算机网络当前研究方向的通报 Updated:2007.3 目 录 一.计算机网络 .......................................................................................................... ...

  • 无锡科技电子政务网络安全建设浅析
  • 摘要:电子政务对安全的特殊需求实际上就是要合理地解决网络开放性与安全性之间的矛盾,探索和研究新的网络安全解决方案和安全新技术是保障科技电子政务安全.提高网络性能和维护科技电子政务稳定运行的迫切需求.本文阐述了现在电子政务系统的安全问题,粗浅的提出了解决办法. 关键词:科技;电子政务;安全 电子政务的 ...

  • 网络安全毕业论文
  • 湖南科技职业学院 毕 业 设 计 题 目: 衡阳二中校园网安全防护设计 专 业: 计算机网络技术 班 级: 网络安全3101 湖南科技职业学院电子信息工程与技术系 二零一二年十二月 目 录 摘 要 ................................................... ...

  • 保险柜密码锁的结构和工作原理
  • 文章由 天猫商城 友情提供 保险柜密码锁的结构和工作原理  多拨式 最简单的密码锁,常见於低安全设定的单车锁,使用多个拨圈.每个圈的中间有凹位.锁的中心的一条轴,上有数个凸出的齿,用来卡住拨圈.当拨圈转到正确的密码组合,锁便可以打开.这种锁是最容易打开的.很多这类锁根本无需知道密码都能开启.除非它 ...

  • 项目评估课程设计(2)
  • 项 目 评 估 课 程 设 计 第 1 页 共 32 页 项目评估课程设计 2013 9月 年 项 目 评 估 课 程 设 计 目录 第 2 页 共 32 页 1 总 论 --------------------------------..4 1.1 项目名称及承办单位 -------------- ...

  • BIAcore技术及其应用
  • BIAcore 技术及其应用 BIA(biomolecular interaction analysis)技术是基于一种称为表面等离子共振(surface plasmon resonance, SPR) 的物理光学现象发展起来的新型生物传感分析技术,自1990年正式出现后,有关该技术利用的研究便迅猛 ...

  • 全方位讲解硬件防火墙的选择
  • 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合.它是不同网络或网络安全域之间信息的唯一出入口,通过监测.限制.更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息.结构和运行状况,有选择地接受外部访问,对内部强化设备监管.控制对服务器与外部网络 ...

  • 变压器的一些技术参数
  • 最佳答案 规格按电压来说分36伏,110伏,0.4千伏,10千伏,22千伏,6千伏,35千伏,110千伏,220千伏,350千伏,200千伏,500千伏,250千伏,600千伏 按容量来说我国现在变压器的额定容量是按照R10优先系数, 即按10的开10次方的倍数来计算,50KVA ,80KVA ,1 ...

  • 变压器(4)
  • 利用电磁感感应的原理来改变交流电压的装置,主要构件是初级线圈.次级线圈和铁心.在电器设备和无线电路中,常用作升降电压.匹配阻抗等. 英文名称:Transformer [编辑本段]变压器的简介 变压器的功能主要有:电压变换:阻抗变换:隔离:稳压(磁饱和变压器)等,变压器常用的铁芯形状一般有E型和C型铁 ...