专利名称:一种网络应用防火墙的方法和系统的利记博彩app
技术领域:
本发明涉及网络防火墙领域,尤其涉及一种网络应用防火墙的方法和系统。
背景技术:
由于网络的快捷方便等作用,使得它在人们生活、工作中的应用越来越广泛,从而也使得是网络中的各种计算及业务等资源逐渐向其数据中心高度集中,Web (网络、互联网等技术)作为一种普遍适用的网络平台,用户在网络中存储的重要数据也越来越多。在Web的开放性带来丰富的资源、高效率、崭新工作方式的同时,也使得用户的重要数据存在通过网络泄露的危险。随着Web的普遍应用而来的是各种针对Web应用的黑客攻击,就来自Gartner (高德纳咨询公司)的统计数据显示,当前互联网上75%攻击是针对Web应用的,传统的防火墙 只能对网络层的攻击进行检测(即IP地址欺骗),对于应用层次的攻击却无可奈何,因而针对Web应用层次的攻击必须采用专门的工具对其进行有效的检测和防护。参见图1,图I为现有技术中在标准的TCP/IP网络中防火墙的流程,其过程为步骤SlOl :请求数据包;步骤S102 :从等待队列获取请求数据包;步骤S103 :将请求数据包进行规则匹配;步骤S104 :判断规则匹配是否成功;如果匹配成功,执行步骤S105 ;否则,执行步Hf S106 ;步骤S105 :说明此数据包含有恶意信息,丢弃数据包;步骤S106 :放行数据包。为了使数据信息能够快速的通过网络,在传输过程中数据信息被分割成若干个离散的数据包,其中数据信息的应用层信息就分散在离散的数据包中,给对数据包深度解析造成了困难,而且在规则匹配时,由于是对乱序的数据包进行匹配的,同样也给判断获取到的数据包是否安全造成了困难。
发明内容
有鉴于此,本发明实施例提供一种网络应用防火墙的方法和系统,将获取到的乱序传输的数据包进行排序。为实现上述目的,本发明实施例提供如下技术方案获取数据包;判断所述数据包所属的会话是否已包含在会话表中;如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层信息;否则,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息;
对所述应用层信息进行解码,得到解码后的数据;根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。优选的,上述网络应用防火墙的方法中,判断所述数据包是否属于安全信息,包括依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值,;如果匹配成功,则确定所述数据包是安全的;否则,依据应用层规则对所述解码后的数据进行规则匹配;如果应用层规则匹配失败,则确定所述数据包为安全信息,如果应用层规则匹配
成功,则确定所述数据包含有恶意信息。优选的,上述网络应用防火墙的方法中,所述对所述解码后的数据进行规则匹配,如果匹配失败,还包括将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。优选的,上述网络应用防火墙的方法中,其特征在于,每一个会话对应于一个会话处理线程,所述方法还包括判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。一种网络应用防火墙的系统,包括数据包获取模块、会话重组模块、解码模块和匹配模块;所述数据包获取模块用于获取数据包,将所述数据包发送至会话重组模块;所述会话重组模块用于判断所述数据包所属的会话是否已包含在会话表中,如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层信息;否则,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息;所述解码模块用于对所述应用层信息进行解码,得到解码后的数据;所述匹配模块用于根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。优选的,上述网络应用防火墙的系统,所述匹配模块,包括快捷匹配模块和规则匹配模块;所述快捷匹配模块,依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值;如果匹配成功,则确定所述数据包是安全的,放行所述数据包;否则,所述规则匹配模块,依据应用层规则对所述解码后的数据进行规则匹配;如果应用层规则匹配失败,则确定所述数据包为安全信息,放行所述数据包,如果应用层规则匹配成功,则确定所述数据包含有恶意信息,丢弃所述数据包。优选的,上述网络应用防火墙的系统,所述规则匹配模块对所述解码后的数据进行规则匹配,如果匹配失败,还包括将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。优选的,上述网络应用防火墙的系统,其特征在于,每一条会话对应于一个会话处理线程,所述系统还包括休眠模块;所述休眠模块用于判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。本发明实施例提供的网络应用防火墙的方法和系统,通过将所述数据包的载荷重组为应用层信息,将接收到的数据包的应用层信息进行排序,有效地提高了防火墙对数据包进行深度解析和判断所述数据包是否属于安全信息的效率。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为现有技术中在标准的TCP/IP网络中防火墙的流程图;图2为本发明实施例提供的一种网络应用防火墙的方法流程图;图3为本发明提供的实施例中判断数据包是否属于安全信息的流程图;图4为本发明实施例提供的一种网络应用防火墙系统的结构图;图5为本发明提供的实施例中匹配模块的结构图;图6为本发明另一实施例提供的网络应用防火墙系统的结构图。
具体实施例方式为了进一步理解本发明,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图2,图2为本发明实施例提供的一种网络应用防火墙的方法流程图,所述方法可以包括步骤S201 :获取数据包;步骤S202 :判断所述数据包所属的会话是否已包含在会话表中,如果是,执行步骤S203 ;否则执行步骤S106 ;依据所述数据包的头信息,生成所述数据包的头信息哈希值,查找会话表中是否存在头信息哈希值与所述数据包的头信息哈希值相同的会话;步骤S203 :确定所述数据包是所述会话中的一个部分,依据所述的数据包头信息中的序列号,将所述数据包插入所述会话的相应位置,提取所述的数据包的载荷,依据所述数据包头信息中的序列号,将所述数据包的载荷插入到所述会话的应用层信息的相应位置,得到重组后的应用层信息。步骤S204 :确定所述数据包是新会话,从线程池中获取新的会话处理线程,并将所述新会话插入到会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息;
步骤S205 :所述会话处理线程对所述应用层信息进行解码,得到解码后的数据;步骤S206 :所述会话处理线程根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。本实施例中提供的,网络防火墙的方法中,采用了一种基于数据包头信息哈希值和数据包序列号对数据包的载荷进行应用层信息重组的方法。它利用了依据所述数据包头信息哈希值能够快速定位的特征,确定数据包所属的会话,通过数据包头信息中的序列号确定所述数据包在所述会话中的位置,并根据所述数据包的序列号,将所述数据包的载荷插入到所述会话应用层信息的相应位置。有效解决了在判断所述数据包是否属于安全信息的过程中,数据包乱序到达而造成的匹配困难的问题,并且所述方法也有效地提高了应用层信息重组的效率和对数据包进行深度解析的效率。本实施例的网络应用防火墙的方法中,对得到的应用层信息进行了解码,解码后 能够得到数据包括请求头、请求体、参数响应和响应体等。防火墙能够依据所述解码后的数据判断所述数据包是否包含变形攻击的恶意信息,所谓变形攻击通常是指将恶意攻击信息编码或者重组以绕过防火墙的攻击形式,例如数据包的参数是编码传输的,字符串“ 1=1 ”会变成“ l%3dl ”,普通防火墙检测不到这样的攻击信息,而对应用层信息进行解码时,会将应用层信息中的各类参数进行解码,从而可以检测到这种变形攻击。为了提高判断所述数据包是否属于安全信息的效率,在本发明的另一实施例中,判断所述数据包是否属于安全信息,可以包括快捷匹配和规则匹配。图3为本发明提供的实施例中判断数据包是否属于安全信息的流程图。参见图3,本实施例包括步骤S301 :判断快捷规则匹配是否成功,如果是,执行步骤S302,否则,执行步骤S303 ;依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值;步骤S302 :如果匹配成功,则确定所述数据包是安全的,放行所述数据包;步骤S303 :依据应用层规则对所述解码后的数据进行规则匹配,判断快捷规则匹配是否成功,若果是,执行步骤S05,否则,执行步骤S04 ;步骤S304 :如果应用层规则匹配失败,则确定所述数据包为安全信息,放行所述数据包;步骤S305 :如果应用层规则匹配成功,则确定所述数据包含有恶意信息,丢弃所述数据包。在对数据包进行快捷匹配时,依据快捷匹配数据库对所述解码后的数据进行快捷匹配,具体的可以包括依据所述解码后的数据生成第二哈希值,查找所述快捷匹配数据库中是否存在所述第二哈希值,如果存在,则确定所述数据包时安全的,否则依据应用层规则对所述解码后的数据进行规则匹配。可以理解的是,本发明所述网络应用防火墙的方法的另一实施例中,所述对所述解码后的数据进行规则匹配,如果匹配失败,还包括将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。
本实施例中提供的网络应用防火墙的方法,采用基于哈希值的快捷规则匹配方法,充分利用规则匹配的结果,建立快捷匹配数据库,依据快捷匹配数据库对解析后数据的哈希值进行快速匹配,以空间换取时间的方式,降低了规则匹配的数据处理量,提高了处理效率。并且当用户浏览同一网页时,由于获取到的数据包的内容一致,所以就可以将获取到数据包解析后数据的哈希值添加到所述快捷规则数据库中,作为新的快捷规则对数据包进行检测,这样就避免了对同样数据的多次规则匹配从而导致网络防火墙处理效率低的问题。可以理解的是,本发明所有网络应用防火墙的方法的实施例中,可以包括,每一个会话对应于一个会话处理线程,而且所述方法还可以包括判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。所述会话处理线程以线程池的方式进行管理,避免了多会话并发产生的拥塞,使 每个会话都得到适时的处理。下面对本发明实施例提供的网络应用防火墙的系统进行描述,下文所描述的网络应用防火墙的系统与上文所描述的网络应用防火墙的方法对应,两者可相互参照。参见图4,图4为本发明实施例提供的一种网络应用防火墙系统的结构图。一种网络应用防火墙的系统,所述系统可以包括数据包获取模块100、会话重组模块200、解码模块300和匹配模块400 ;所述数据包获取模块100用于获取数据包,将所述数据包发送至会话重组模块200 ;所述会话重组模块200用于判断所述数据包所属的会话是否已包含在会话表中,如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层信息;否则,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息;所述解码模块300用于对所述应用层信息进行解码,得到解码后的数据;所述匹配模块400用于根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。参见图5,图5为本发明提供的实施例中匹配模块的结构图。其中,所述匹配模块400,可以包括快捷匹配模块401和规则匹配模块402 ;所述快捷匹配模块401,依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值;如果匹配成功,则确定所述数据包是安全的,放行所述数据包;否则,所述规则匹配模块402依据应用层规则对所述解码后的数据进行规则匹配;如果应用层规则匹配失败,则确定所述数据包为安全信息,放行所述数据包,如果应用层规则匹配成功,则确定所述数据包含有恶意信息,丢弃所述数据包。其中,所述规则匹配模块402对所述解码后的数据进行规则匹配,如果匹配失败,还可以包括将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。
参见图6,图6为本发明另一实施例提供的一种网络应用防火墙系统的结构图。可以理解的是,本发明实施例中的所述网络应用防火墙的系统还可以包括休眠模块500 ;所述休眠模块500用于判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种网络应用防火墙的方法,其特征在于,所述方法包括 获取数据包; 判断所述数据包所属的会话是否已包含在会话表中; 如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层 目息; 否则,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息; 对所述应用层信息进行解码,得到解码后的数据; 根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。
2.根据权利要求I所述网络应用防火墙的方法,其特征在于,判断所述数据包是否属于安全信息,包括 依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值; 如果匹配成功,则确定所述数据包是安全的;否则,依据应用层规则对所述解码后的数据进行规则匹配; 如果应用层规则匹配失败,则确定所述数据包为安全信息,如果应用层规则匹配成功,则确定所述数据包含有恶意信息。
3.根据权利要求2所述网络应用防火墙的方法,其特征在于,所述对所述解码后的数据进行规则匹配,如果匹配失败,还包括 将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。
4.根据权利要求1-3任意一项所述网络应用防火墙的方法,其特征在于,每一个会话对应于一个会话处理线程,所述方法还包括 判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。
5.一种网络应用防火墙的系统,其特征在于,所述系统包括 数据包获取模块、会话重组模块、解码模块和匹配模块; 所述数据包获取模块用于获取数据包,将所述数据包发送至会话重组模块; 所述会话重组模块用于判断所述数据包所属的会话是否已包含在会话表中,如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层信息;否贝1J,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息; 所述解码模块用于对所述应用层信息进行解码,得到解码后的数据; 所述匹配模块用于根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。
6.根据权利要求5所述网络应用防火墙的系统,其特征在于,所述匹配模块,包括快捷匹配模块和规则匹配模块; 所述快捷匹配模块,依据快捷匹配数据库对所述解码后的数据进行快捷匹配,所述快捷匹配数据库中包含安全数据包应用层信息解码后数据的哈希值;如果匹配成功,则确定所述数据包是安全的,放行所述数据包;否则,所述规则匹配模块依据应用层规则对所述解码后的数据进行规则匹配; 如果应用层规则匹配失败,则确定所述数据包为安全信息,放行所述数据包,如果应用层规则匹配成功,则确定所述数据包含有恶意信息,丢弃所述数据包。
7.根据权利要求6所述网络应用防火墙的系统,其特征在于,所述规则匹配模块对所述解码后的数据进行规则匹配,如果匹配失败,还包括 将所述解码后的数据的哈希值插入到所述快捷匹配数据库中。
8.根据权利要求5-7任意一项所述网络应用防火墙的系统,其特征在于,每一条会话对应于一个会话处理线程,所述系统还包括 休眠模块; 所述休眠模块用于判断所述数据包是否是所述会话的最后一个数据包,如果是,则将所述会话的会话处理线程返回线程池中休眠,否则控制所述会话处理线程继续执行下一条指令。
全文摘要
本发明提供了一种网络应用防火墙的方法和系统。其中所述方法包括获取数据包;判断所述数据包所属的会话是否已包含在会话表中;如果是,则将所述数据包插入所述会话,提取所述数据包的载荷,将所述载荷重组为应用层信息;否则,将所述数据包作为一个新会话插入到所述会话表中,提取所述数据包的载荷,将所述载荷重组为应用层信息;对所述应用层信息进行解码,得到解码后的数据;根据所述解码后的数据判断所述数据包是否属于安全信息,如果是,放行所述数据包,否则丢弃所述数据包。所述方法有效地提高了应用层信息重组的效率和对数据包进行深度解析的效率。
文档编号H04L29/06GK102938771SQ201210516839
公开日2013年2月20日 申请日期2012年12月5日 优先权日2012年12月5日
发明者李若寒, 张洪超, 张标依, 张晓民, 李峰, 张青 申请人:山东中创软件商用中间件股份有限公司