System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Hyperscan的Web应用防火墙规则匹配方法组成比例_技高网

一种基于Hyperscan的Web应用防火墙规则匹配方法组成比例

技术编号:40930196 阅读:2 留言:0更新日期:2024-04-18 14:51
本发明专利技术公开了一种基于Hyperscan的Web应用防火墙规则匹配方法,主要包括以下步骤:步骤一:OpenResty服务器采用Hyperscan正则匹配库来进行规则匹配;步骤二:在OpenResty的Lua模块中新增一个HTTP API接口;步骤三:调用Hyperscan提供的接口编译最新配置中的正则表达式,并继续调用接口将编译结果序列化成字符串后写入共享内存中;步骤四:每个worker在每次请求到来时根据共享内存中的信号量来更新配置到当前worker中;步骤五:将反序列化后的databse指针保存在共享内存中;步骤六:将分配到的scratch内存的指针保存在共享内存中;步骤七:每个worker在完成以上步骤后从共享内存中取出database指针和scrach指针,然后调用Hyperscan提供的scan接口进行扫描和获取匹配结果;步骤八:每个worker根据匹配结果来判断放行还是拦截当次请求。

【技术实现步骤摘要】

本专利技术涉及信息安全技术和计算机,尤其涉及一种基于hyperscan的web应用防火墙规则匹配方法。


技术介绍

1、waf,全称web application firewall,即web应用防火墙,是一种特殊的应用防火墙。它主要用于保护网络应用程序,防止各种类型的攻击,如跨站脚本(xss)、sql注入和跨站点请求伪造(csrf)等。

2、waf的工作原理是在应用程序和互联网之间建立一个保护层,对所有进出的数据进行检查和过滤。它可以识别并阻止那些可能利用应用程序漏洞进行攻击的恶意数据包。

3、目前市面上大多数waf会采用正则匹配来命中规则,常常会用hyperscan来提高规则匹配的效率。

4、hyperscan是一种高效的正则表达式匹配库,它可以处理多个正则表达式和大量数据。hyperscan使用了一种复杂的有限状态机(finite state machine,fsm)和多模式匹配算法,可以在单个扫描过程中匹配多个模式。

5、hyperscan一次完整的匹配流程包括编译期(编译正则表达式)、分配scratch空间和运行期(扫描并报告匹配)。而传统的方案是先将正则表达式的编译结果放在redis数据库中,然后在每次请求到来时再从redis数据库中取出来后进行分配scratch空间和扫描,由于每次请求都需要读取redis和分配scratch空间,并且scratch内存分配不一定是高效的操作,这样会导致waf的匹配效率大大降低,限制了waf的qps。


技术实现思

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、为解决上述技术问题,本专利技术提供如下技术方案:一种基于hyperscan的web应用防火墙规则匹配方法,主要包括:

3、步骤一:openresty服务器采用hyperscan正则匹配库来进行规则匹配;

4、步骤二:在openresty的lua模块中新增一个http api接口;

5、步骤三:将最新配置写入共享内存中后,调用hyperscan提供的接口编译最新配置中的正则表达式,并继续调用接口将编译结果序列化成字符串后写入共享内存中;

6、步骤四:每个worker在每次请求到来时根据共享内存中的信号量来更新配置到当前worker中;

7、步骤五:每个worker取出步骤三中写入共享内存中的序列化字符串,然后调用hyperscan的deserialize_db接口进行反序列化,并将反序列化后的databse指针保存在共享内存中;

8、步骤六:每个worker在反序列化完后再分配scratch内存,并将分配到的scratch内存的指针保存在共享内存中;

9、步骤七:每个worker在完成以上步骤后从共享内存中取出database指针和scrach指针,然后调用hyperscan提供的scan接口进行扫描和获取匹配结果;

10、步骤八:每个worker根据匹配结果来判断放行还是拦截当次请求。

11、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述waf至少包括openresty服务器、agent配置同步组件和管理系统平台;

12、所述agent配置同步组件和管理系统平台可以是任何配置同步系统;

13、所述openresty服务器采用hyperscan正则匹配库来进行规则匹配;

14、所述openresty服务器可以是任何基于nginx的支持lua插件的系统;

15、所述agent组件负责在配置变动时调用openresty的api接口将最新配置同步到openresty中。

16、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述openresty服务器的硬件部分包括处理器、存储设备、输入和输出接口、通信接口以及总线;

17、其中处理器采用中央处理器;

18、存储设备采用随机存取存储器、ssd、hdd中一种;

19、输入和输出接口用于连接输入/输出模块,以实现信息输入及输出,输入/输出模块可以作为组件配置在设备中,也可以外接于设备以提供相应功能,其中输入设备包括键盘、鼠标以及各类传感器,输出设备包括显示器、扬声器以及指示灯;

20、通信接口用于连接通信模块,以实现本设备与其他设备的通信交互,其中通信模块可以通过有线方式实现通信;

21、总线包括一通路,在设备的各个组件之间传输信息。

22、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述hyperscan的匹配流程是一个从编译正则表达式到在输入数据中搜索匹配的模式的过程,hyperscan一次完整的匹配流程包括编译期、分配scratch空间和运行期,运行时包括但不限于一个worker工作进程。

23、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述步骤二中,在openresty的lua模块中新增一个http api接口,便于agent将最新的配置同步到waf中,在api接口中判断如果是配置的增、删、改的时候将当前配置写入openresty的共享内存中,并在共享内存中写入信号量便于其他worker同步最新配置。

24、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述步骤四中,由于openresty的每个worker进程的地址空间是相互独立的,所以采取的方案是在一个worker上进行编译,并将编译后的规则库序列化成字符串保存在共享内存中,其他worker再去共享内存中取出字符串反序列化后使用。

25、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述步骤4中,每个worker在每次请求到来时先去共享内存中获取信号量判断是否需要更新配置,如果需要更新配置,则先从共享内存中获取最新配置并替换当前worker独立内存中的配置。

26、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述步骤五中,由于每个worker的内存空间是独立的,每个worker的database指针都不一样,所以在共享内存中的key按照db_[worker_id]来命名。

27、作为本专利技术所述基于hyperscan的web应用防火墙规则匹配方法的一种优选方案,其中:所述步骤六中,由于每个所述worker的内存空间是独立的,每个worker的scratch指针都不一样,所以在共享内存中的本文档来自技高网...

【技术保护点】

1.一种基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于,包括以下步骤:

2.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述WAF至少包括OpenResty服务器、Agent配置同步组件和管理系统平台;

3.如权利要求2所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述OpenResty服务器的硬件部分包括处理器、存储设备、输入和输出接口、通信接口以及总线;

4.如权利要求2所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述Hyperscan的匹配流程是一个从编译正则表达式到在输入数据中搜索匹配的模式的过程,Hyperscan一次完整的匹配流程包括编译期、分配scratch空间和运行期,运行时包括但不限于一个worker工作进程。

5.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤二中,在OpenResty的Lua模块中新增一个HTTP API接口,便于Agent将最新的配置同步到WAF中,在API接口中判断如果是配置的增、删、改的时候将当前配置写入OpenResty的共享内存中,并在共享内存中写入信号量便于其他worker同步最新配置。

6.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤四中,由于OpenResty的每个worker进程的地址空间是相互独立的,所以采取的方案是在一个worker上进行编译,并将编译后的规则库序列化成字符串保存在共享内存中,其他worker再去共享内存中取出字符串反序列化后使用。

7.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤4中,每个worker在每次请求到来时先去共享内存中获取信号量判断是否需要更新配置,如果需要更新配置,则先从共享内存中获取最新配置并替换当前worker独立内存中的配置。

8.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤五中,由于每个worker的内存空间是独立的,每个worker的database指针都不一样,所以在共享内存中的key按照db_[worker_id]来命名。

9.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤六中,由于每个所述worker的内存空间是独立的,每个worker的scratch指针都不一样,所以在共享内存中的key按照scr_[worker_id]来命名。

10.如权利要求1所述的基于Hyperscan的Web应用防火墙规则匹配方法,其特征在于:所述步骤六,每个worker在反序列化完后,再通过调用Hyperscan的make_scratch接口来分配scratch内存。

...

【技术特征摘要】

1.一种基于hyperscan的web应用防火墙规则匹配方法,其特征在于,包括以下步骤:

2.如权利要求1所述的基于hyperscan的web应用防火墙规则匹配方法,其特征在于:所述waf至少包括openresty服务器、agent配置同步组件和管理系统平台;

3.如权利要求2所述的基于hyperscan的web应用防火墙规则匹配方法,其特征在于:所述openresty服务器的硬件部分包括处理器、存储设备、输入和输出接口、通信接口以及总线;

4.如权利要求2所述的基于hyperscan的web应用防火墙规则匹配方法,其特征在于:所述hyperscan的匹配流程是一个从编译正则表达式到在输入数据中搜索匹配的模式的过程,hyperscan一次完整的匹配流程包括编译期、分配scratch空间和运行期,运行时包括但不限于一个worker工作进程。

5.如权利要求1所述的基于hyperscan的web应用防火墙规则匹配方法,其特征在于:所述步骤二中,在openresty的lua模块中新增一个http api接口,便于agent将最新的配置同步到waf中,在api接口中判断如果是配置的增、删、改的时候将当前配置写入openresty的共享内存中,并在共享内存中写入信号量便于其他worker同步最新配置。

6.如权利要求1所述的基于hyperscan的web应用防火墙规则匹配方法,其特征在于:所述步骤四中,...

【专利技术属性】
技术研发人员:杨洋辛晨吴雷
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1