一种基于网络应用层安全网关的流文件系统实现方法

文档序号:7856730阅读:325来源:国知局
专利名称:一种基于网络应用层安全网关的流文件系统实现方法
技术领域
本发明涉及一种基于网络应用层安全网关的流文件系统实现方法。
背景技术
随着电脑的广泛应用和网络的不断普及,来自网络内部和外部的病毒程序也日益增多。目前,人们通常在内部网和外部网之间或专用网与公共网之间建立一个应用层安全网关,从而保护内部网或专用网免受非法用户的入侵和病毒程序的破坏。应用层安全网关在防黑客攻击、防病毒、反垃圾邮件和网络应用流量管理等方面起到重要的作用,应用层安全网关通常包括IPS设备、AV设备、反垃圾邮件设备、应用控制网关、应用层网关、应用带宽
管理设备和统一威胁管理等设备。OSI协议是由IS0(国际标准化组织)制定的,它有三个基本的功能提供给开发者一个必须的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。OSI将计算机网络体系结构(architecture)从上到下划分为以下七层7应用层,6表示层,5会话层,4传输层,3网络层,2数据链路层,I物理层。目前人们普遍使用的防火墙主要在第二层至第三层起作用,而防火墙的作用在第四层至第七层却很微弱。而病毒软体则主要在第五层到第七层起作用。现有的应用层安全网关主要是通过读取相应的接口 socket,将相关的报文全部读取出来放入缓存;读取完成后,再按照类似文件的方式,进行字符串匹配和正则表达式匹配,来进行防黑客攻击、防病毒、反垃圾邮件和网络应用流量管理等后续处理。在处理过程中,存在大量的报文拷贝以及用户空间和内核的交互,因此时延和性能都比较低。

发明内容
本发明的目的是提供一种基于网络应用层安全网关的流文件系统实现方法,能够虚拟一个流文件系统,减小缓存中的报文数量,提高系统处理的速度和效率。本发明采用下述技术方案
一种基于网络应用层安全网关的流文件系统实现方法,包括以下步骤
A :当流文件系统检测到一个新建的应用层连接时,创建一个流文件,并将报文应用层数据通过流文件系统写入流文件;
B:安全网关的检测模块通过流文件的读取接口读取指定的报文数据,并通过字符串匹配和正则表达式匹配对报文数据进行检测;
C:当前检测完成后,安全网关的检测模块继续对下一个流文件内的报文数据进行检测。所述的B步骤还包括以下步骤
BI:流文件系统检测并判断接收到的第一个报文中是否包含完整的字段,即第一个报文中是否包含分割符且分割符后无报文数据,如果是,则进入步骤B2 ;如果否,则进入步骤B3 ;B2:流文件系统直接将映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6;
B3:流文件系统将第一个报文中的数据储存在缓存中,然后检测并判断接收到的后续报文中是否包含分割符,当流文件系统遍历到后续报文数据中的最后一个分割符时,如果分割符后无报文数据,则进入步骤B4 ;如果分割符后有报文数据,则进入步骤B5 ;
B4:流文件系统直接将缓存中的第一个报文中的数据和映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6 ;
B5:流文件系统直接将缓存中的第一个报文中的数据和多个映射区内最后一个分割符前的整个字段数据通过指针映射的方式交给安全网关的检测模块,清空缓存,并通过文件同步操作将分割符后的安全网关检测模块未检测的报文数据存储在缓存中,然后进入步骤B6 ;
B6:安全网关的检测模块通过流文件的读取接口读取指定的报文数据,并通过字符串匹配和正则表达式匹配对报文数据进行检测,然后进入步骤C。本发明主要在内核中虚拟一个类似文件的流文件系统,通过流文件系统只通过缓存存储报文中的少量数据并且对外提供统一的操作接口,将缓存中的少量报文数据和映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块进行检测,提高系统处理的速度和效率;同时,可使安全网关的检测模块同时适应报文的MBUFFER和SKBUFFER结构,提高软件的可移植性和复用性。


图I为本发明的流程 图2、图3和图4分别为基于解析SMTP的方式下三种不同结构的报文应用层数据处理方法示意图。
具体实施例方式本发明所述的流是指通过设备的一系列数据报文;流文件指的是存储这些报文相应的数据结构;流文件系统是指由字符串或二进制组成的一类存储方式。如图I所示,本发明包括以下步骤
A :当流文件系统检测到一个新建的应用层连接时,创建一个流文件,并将报文应用层数据通过流文件系统写入流文件;
BI:流文件系统检测并判断接收到的第一个报文中是否包含完整的字段,即第一个报文中是否包含分割符且分割符后无报文数据,如果是,则进入步骤B2 ;如果否,则进入步骤B3 ;
B2:流文件系统直接将映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6;
B3:流文件系统将第一个报文中的数据储存在缓存中,然后检测并判断接收到的后续报文中是否包含分割符,当流文件系统遍历到后续报文数据中的最后一个分割符时,如果分割符后无报文数据,则进入步骤B4 ;如果分割符后有报文数据,则进入步骤B5 ;
B4:流文件系统直接将缓存中的第一个报文中的数据和多个映射区内的完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6 ;
B5:流文件系统直接将缓存中的第一个报文中的数据和多个映射区内最后一个分割符前的完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后清空缓存,并通过文件同步操作将分割符后的安全网关检测模块未检测的报文数据存储在缓存中,然后进入步骤B6 ;
B6:安全网关的检测模块通过流文件的读取接口读取指定的报文数据,并通过字符串匹配和正则表达式匹配对报文数据进行检测,然后进入步骤C ;
C当前检测完成后,安全网关的 检测模块继续对下一个流文件内的报文数据进行检测。本发明中,当新报文写入流文件时,并不直接拷贝,而是将流文件中的映射区指向报文的应用层数据,可通过多个映射区分别处理网络层分片和应用层分段的报文。由于没有拷贝操作,且不需要处理网络层分片和应用层分段的重组,能够极大地提升性能和减小延时。下面以基于解析SMTP的方式进行实例说明
如图2所示,当应用层报文包含整个字段,即第一个报文中是否包含分割符且分割符后无报文数据,第一个报文中包含有分割符“\n”,且分割符“\n”后无报文数据,因此,第一个报文中包含整个字段“abcd”,流文件系统直接将映射区整个字段数据“abed”通过指针映射的方式交给安全网关的检测模块,由检测模块进行字符串匹配和正则表达式匹配检测。如图3所示,当第一个应用层报文abed不包含分割符“\n”时,流文件系统将第一个应用层报文中的数据“abed”储存在缓存中,然后检测并判断接收到的后续报文中是否包含分割符,流文件系统遍历到第二个应用层报文数据中包含的最后一个分割符“\n”,且分割符“\n”后无报文数据,此时,流文件系统直接将缓存中的第一个应用层报文中的数据“abed”和映射区整个字段数据“efgh”通过指针映射的方式交给安全网关的检测模块,由检测模块进行字符串匹配和正则表达式匹配检测。如图4所示,当第一个应用层报文“abed”不包含分割符“\n”时,流文件系统将第一个应用层报文中的数据“abed”储存在缓存中,并将流文件中的多个映射区分别指向后续报文的应用层数据“ef”、“gh”和“st”,然后检测并判断接收到的后续报文中是否包含分割符“\n”,流文件系统遍历到应用层第二个应用层报文数据中包含的最后一个分割符“\n”,且分割符“\n”后还有报文数据“st”,此时,流文件系统直接将缓存中的第一个应用层报文中的数据“abed”和两个映射区中“ef”和“gh”整个字段数据(即最后一个分割符前的整个字段数据)通过指针映射的方式交给安全网关的检测模块,由检测模块进行字符串匹配和正则表达式匹配检测。随后,流文件系统清空缓存中的第一个报文中的数据“abed”,并通过文件同步操作将分割符“\n”后的安全网关检测模块未检测的报文数据“st”存储在缓存中,与下一个通过流文件系统写入流文件的报文应用层数据进行处理。
权利要求
1.ー种基于网络应用层安全网关的流文件系统实现方法,其特征在于包括以下步骤 A :当流文件系统检测到一个新建的应用层连接时,创建一个流文件,并将报文应用层数据通过流文件系统写入流文件; B:安全网关的检测模块通过流文件的读取接ロ读取指定的报文数据,并通过字符串匹配和正则表达式匹配对报文数据进行检测; C:当前检测完成后,安全网关的检测模块继续对下ー个流文件内的报文数据进行检測。
2.根据权利要求I所述的基于网络应用层安全网关的流文件系统实现方法,其特征在于所述的B步骤还包括以下步骤 BI:流文件系统检测并判断接收到的第一个报文中是否包含完整的字段,即第一个报文中是否包含分割符且分割符后无报文数据,如果是,则进入步骤B2 ;如果否,则进入步骤B3 ; B2:流文件系统直接将映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6; B3:流文件系统将第一个报文中的数据储存在缓存中,然后检测并判断接收到的后续报文中是否包含分割符,当流文件系统遍历到后续报文数据中的最后ー个分割符时,如果分割符后无报文数据,则进入步骤B4 ;如果分割符后有报文数据,则进入步骤B5 ; B4:流文件系统直接将缓存中的第一个报文中的数据和映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块,然后进入步骤B6 ; B5:流文件系统直接将缓存中的第一个报文中的数据和多个映射区内最后ー个分割符前的整个字段数据通过指针映射的方式交给安全网关的检测模块,清空缓存,并通过文件同步操作将分割符后的安全网关检测模块未检测的报文数据存储在缓存中,然后进入步骤B6 ; B6:安全网关的检测模块通过流文件的读取接ロ读取指定的报文数据,并通过字符串匹配和正则表达式匹配对报文数据进行检测,然后进入步骤C。
全文摘要
本发明公开了一种基于网络应用层安全网关的流文件系统实现方法,能够虚拟一个流文件系统,减小缓存中的报文数量,提高系统处理的速度和效率。本发明主要在内核中虚拟一个类似文件的流文件系统,通过流文件系统只通过缓存存储报文中的少量数据并且对外提供统一的操作接口,将缓存中的少量报文数据和映射区完整的字段数据通过指针映射的方式交给安全网关的检测模块进行检测,提高系统处理的速度和效率;同时,可使安全网关的检测模块同时适应报文的MBUFFER和SKBUFFER结构,提高软件的可移植性和复用性。
文档编号H04L29/06GK102821100SQ20121025925
公开日2012年12月12日 申请日期2012年7月25日 优先权日2012年7月25日
发明者陈国斌, 宋苏宇, 于颖, 王智辉, 管勇, 赵满满, 时兴华, 王利娟 申请人:河南省信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1