一种Web防火墙的数据包处理方法与系统技术方案

技术编号:21899168 阅读:64 留言:0更新日期:2019-08-17 18:31
本发明专利技术公开了一种Web防火墙实现数据包高效处理的方法与系统,包括收包、拆包、缓存、解析、检测、转发六个步骤;首先采用DPDK技术获取数据包,提高了获取效率;然后对数据包头逐层剥离得到应用层数据;最后采用并行检测方式对应用层数据进行规则匹配检测,继而确认数据包是否合法,从而进行放行或阻断;采用数据包的并行存放和检测,即将数据包按照相应的编号收包和发包并交由解析引擎解析,处理效率更加高效,降低了对网络环境的依赖。

A Packet Processing Method and System for Web Firewall

【技术实现步骤摘要】
一种Web防火墙的数据包处理方法与系统
本专利技术属于Web应用防护领域,尤其是涉及一种Web防火墙实现数据包高效处理的方法与系统。
技术介绍
随着Internet的日益普及,用户访问Internet的需求在不断增加,一些企业也需要对外提供诸如WWW页面浏览、HTTP文件传输等服务,这些因素会导致Web服务器的流量剧增,而Web防火墙(WAF)作为Web服务器和用户之间的数据检测通道,如果性能不够,就会成为网络瓶颈,给整个网络的传输效率带来负面影响。目前的Web防火墙采用透明(网桥)代理、反向代理等代理机制对Web服务器进行防护。透明代理模式的基本原理是当客户端对Web服务器有连接请求时,TCP连接请求被WAF截取和监控,WAF代理客户端与服务器之间的会话,所有的会话均被分为两段进行转发,从客户端的角度看,仍然是直接访问服务器,感觉不到WAF的存在;这种模式虽然对网络的改动相对较小但也需要配置映射关系,而且网络的所有流量(包括HTTP和非HTTP)都需要经过WAF,对WAF的处理性能有一定要求。反向代理的基本原理,将真实服务器的地址映射到反向代理服务器上,此时的代理服务器对外表现为一个真实服务器,由于客户端实际访问的就是WAF,因此WAF无需采用特殊处理去劫持客户端与服务器的会话,当代理服务器收到HTTP请求报文后,将该请求转发给对应的真实服务器,服务器接收请求后将响应先发给WAF,再由WAF将应答发送给客户端;这种模式需要对网络进行改动,配置相对比较复杂,比如除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实服务器的地址和虚拟地址的映射关系。可见,代理模式下Web防火墙,大都需要进行比较繁琐的配置,针对网站可能受到的不同种类的攻击需要进行区别设计和部署,有的还需要对网络进行改动,网络适用性较差;而且流量的监控和报警拦截需要较高的性能。根据以上,有必要提高Web防火墙的网络适用性和数据处理性能。
技术实现思路
为了解决上述的问题,本专利技术旨在提供一种非代理模式的web防火墙,包括数据包处理方法与系统,提高网络适用性和数据处理性能。具体的讲,本专利技术一方面提供一种Web防火墙的数据包处理方法,包括以下步骤:S1获取数据包后放入收包队列,所述获取数据包,由网卡采用零拷贝技术进行,优选DPDK。S2循环读取收包队列中的数据包,拆除包头,分别获得IP数据报和TCP数据报的包头,进而得到五元组信息、数据包的TCP序列号与数据包长度。S3对数据包的应用层数据进行缓存,得到完整的HTTP数据包;每缓存完成一个完整的HTTP协议报文或者缓存达到包的数据长度上限,即对缓存数据进行HTTP协议解析。S4对HTTP数据包进行解析得到HTTP数据。S5将HTTP数据与规则库进行匹配,若匹配一致则将数据包丢弃,若匹配不一致则将数据包放入发包队列;规则库包括网络攻击特征,至少包括:SQL注入、XSS攻击、HTTP协议攻击、Web插件、Xpath注入、LDAP攻击、SSI攻击、非法下载、非法上传。S6发包队列将数据包轮询发出。优选的,防火墙设置N个收包队列,每个收包队列对应一个发包队列,收包队列及其发包队列分别编号为0至(N-1);S1中,获取数据包的主机地址,将该主机地址转换为十进制数后对N取余,根据余数将相应的数据包放入对应编号的收包队列;所述N为防火墙的WAF解析引擎的个数,引擎也按0至(N-1)编号。本专利技术还提供一种数据包处理系统,包括电连接的数据解析模块、规则检测模块与数据转发模块:数据解析模块,用于获取数据包并放入收包队列,读取并解析数据包得到HTTP数据;规则检测模块,用于HTTP数据与规则库进行匹配;数据转发模块,用于数据包的转发。所述数据解析模块解析数据包的过程,包括:S21循环读取收包队列中的数据包,拆除包头,分别获得IP数据报和TCP数据报的包头,进而得到五元组信息、数据包的TCP序列号与数据包长度;S31对数据包的应用层数据进行缓存,得到完整的HTTP数据包;S41对HTTP数据包进行解析得到HTTP数据。所述规则检测模块对HTTP数据与规则库进行匹配,若匹配一致则将数据包丢弃,若匹配不一致则将数据包交由数据转发模块进行转发;具体的讲,若HTTP数据解析结果符合网络攻击特征则判断该数据包请求不合法,丢弃该数据包;若HTTP数据解析结果不符合网络攻击特征则判断该数据包请求合法,放入发包队列。所述规则库与数据包处理方法所述规则库一致,均包括网络攻击特征,至少包括:SQL注入、XSS攻击、HTTP协议攻击、Web插件、Xpath注入、LDAP攻击、SSI攻击、非法下载、非法上传。以上技术方案的非代理模式的Web防火墙,不需要改动网络结构,网络适用性更好;在获取数据包时优选DPDK技术,提高了获取效率,同时数据包的收包、解析、发包采用了并行方式,实现对数据进行更高性能的解析、检测,从而降低了设备对网络环境的依赖性。附图说明图1为本专利技术的Web防火墙的数据包处理方法的步骤示意图;图2为本专利技术的Web防火墙对数据包处理的流程图;图3为本专利技术的Web防火墙的数据包处理系统的组成示意图。具体实施方式下面结合附图和实施例对本专利技术的技术方案进行详细说明。如图1所示,Web防火墙的数据包处理方法,包括以下步骤:S1获取数据包后放入收包队列;防火墙设置N个收包队列(如图2),N即为WAF解析引擎的个数,解析引擎按0至(N-1)编号,相应的,收包队列也编号为0至(N-1);可以将同一编号的收包队列与WAF解析引擎对应起来。采用零拷贝技术(优选DPDK)从客户端的网卡获取数据包的主机地址,将该主机地址转换为十进制数后对N取余,根据余数将相应的数据包放入到对应编号的收包队列;这一步中,采用了零拷贝技术(DPDK),对数据包不进行拷贝,以最大的减小对性能的影响。S2循环读取收包队列中的数据包,拆除包头,分别获得IP数据报和TCP数据报的包头,进而得到五元组信息、数据包的TCP序列号与数据包长度。各个解析引擎从收包队列中循环读包,当读取到数据包后,对数据包进行包头的拆除(包括VLAN头、Ethernet头等),得到IP数据报的包头、TCP数据报的包头、数据包的五元组信息(源IP、目的IP、源端口、目的端口、协议类型)、以及数据包的TCP序列号与包长度。S3对数据包的应用层数据进行缓存,得到完整的HTTP数据包;根据S2得到的数据包五元组信息及TCP序列号及包长度信息,对数据包的真实数据即应用层数据进行缓存,当缓存完成一个完整的HTTP协议报文或者缓存达到包的数据长度上限,即对缓存数据进行HTTP协议解析。S4对HTTP数据包进行解析得到HTTP数据。收到缓存后完整的HTTP数据包,进行HTTP协议解析,包括对请求头字段(HOST、URL、COOKIE等)、参数、请求体数据等进行解析,解析后供规则检测。S5将HTTP数据与规则库进行匹配,若匹配一致则将数据包丢弃,若匹配不一致则将数据包放入发包队列;规则库包括网络攻击特征,至少包括:SQL注入、XSS攻击、HTTP协议攻击、Web插件、Xpath注入、LDAP攻击、SSI攻击、非法下载、非法上传;具体的讲,若HTTP数据解析结果符合网络攻击特征则判断该数据包请求不合法,丢弃本文档来自技高网
...

【技术保护点】
1.一种Web防火墙的数据包处理方法,其特征在于,包括以下步骤:S1获取数据包后放入收包队列;S2循环读取收包队列中的数据包,拆除包头,分别获得IP数据报和TCP数据报的包头,进而得到五元组信息、数据包的TCP序列号与数据包长度;S3对数据包的应用层数据进行缓存,得到完整的HTTP数据包;S4对HTTP数据包进行解析得到HTTP数据;S5将HTTP数据与规则库进行匹配,若匹配一致则将数据包丢弃,若匹配不一致则将数据包放入发包队列;S6发包队列将数据包轮询发出。

【技术特征摘要】
1.一种Web防火墙的数据包处理方法,其特征在于,包括以下步骤:S1获取数据包后放入收包队列;S2循环读取收包队列中的数据包,拆除包头,分别获得IP数据报和TCP数据报的包头,进而得到五元组信息、数据包的TCP序列号与数据包长度;S3对数据包的应用层数据进行缓存,得到完整的HTTP数据包;S4对HTTP数据包进行解析得到HTTP数据;S5将HTTP数据与规则库进行匹配,若匹配一致则将数据包丢弃,若匹配不一致则将数据包放入发包队列;S6发包队列将数据包轮询发出。2.根据权利要求1所述Web防火墙的数据包处理方法,其特征在于,S1所述获取数据包,由网卡采用零拷贝技术进行,优选DPDK。3.根据权利要求1所述Web防火墙的数据包处理方法,其特征在于,防火墙设置N个收包队列,每个收包队列对应一个发包队列,收包队列与发包队列分别编号为0至(N-1);S1中,获取数据包的主机地址,将该主机地址转换为十进制数后对N取余,根据余数将相应的数据包放入对应编号的收包队列。4.根据权利要求3所述Web防火墙的数据包处理方法,其特征在于,所述N为防火墙的WAF解析引擎的个数,引擎也按0至(N-1)编号。5.根据权利要求1所述Web防火墙的数据包处理方法,其特征在于,S3所述应用层数据缓存,每缓存完成一个完整的HTTP协议报文或者缓存达到包的数据长度上限,即对缓存数据进行HTTP协议解析。6.根据权利要求1所述Web防火墙的数据包处理方法,其特征在于,S5所述规则库包括...

【专利技术属性】
技术研发人员:何建锋陈宏伟
申请(专利权)人:西安交大捷普网络科技有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1