[发明专利]基于nginx+lua的web应用防火墙系统及其实现方法在审
申请号: | 201510678051.4 | 申请日: | 2015-10-20 |
公开(公告)号: | CN105227571A | 公开(公告)日: | 2016-01-06 |
发明(设计)人: | 王琦;张木连;刘坤朋;张冬青 | 申请(专利权)人: | 福建六壬网安股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 蔡学俊 |
地址: | 350000 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 nginx lua web 应用 防火墙 系统 及其 实现 方法 | ||
技术领域
本发明涉及网络安全入侵检测领域,特别是一种基于nginx+lua的web应用防火墙系统及其实现方法。
背景技术
Web应用防火墙(waf)的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击。目前世界第一大web服务器非apache莫属,它的发展时间很长。也正是因为这个原因,目前市面主流web防火墙一般使用apache+modsecurity的技术方案。modsecurity作为一个开源的项目可以作为ApacheWeb服务器的一个模块或单独的应用程序来运。
但是,apache+modsecurity的模式存在以下几个问题:
首先,apacheweb服务器性能存在瓶颈。Apache服务器出现的时间太长,在它兴起的年代,互联网的规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的web服务器。在apache服务器上,如果有数以万计的并发http请求同时访问,就会导致服务器上消耗大量的内存,操作系统内核对成百上千的Apache进程做进程间切换也会消耗大量的CPU资源,并导致http请求的平均响应速度降低,这些都决定了它不可能成为高性能的web服务器,在一些响应业务性能需求极高的网站,若web应用防火墙性能不够高,则很有可能影响受防护站点的业务。
其次,modsecurity提供的规则语法不够灵活,导致规则的配置较为复杂,且扩展性不高,若要实现某些需求则需要改动核心引擎代码。比如modsecurity语法中有一种最常用的设置规则的配置接口叫
SecRule
Syntax:SecRuleVARIABLESOPERATOR[ACTIONS]
ExampleUsage:SecRuleREQUEST_URIaa.GIFphase:1,log,deny,id:1
该这句话表明,当请求的URL参数中有aa.GIF时,则触发规则指定的动作,也就是deny,阻断请求。
ExampleUsage:SecRuleREQUEST_HEADERS:Refererxxx.comphase:1,log,deny,id:2
这句话表明,当请求头中的Referer中包含xxx.com时,则触发规则制定的动作。
如果现在有某种防盗链需求需要在同时满足Referer的值为xxx.com,并且REQUEST_URI含有aa.GIF的情景下,才触发规则。使用modsecuriy默认语法的话,只能使用规则链将这两条规则组成一个规则链,把第一条规则作为第二条规则的一个条件。但是如果需要实现更复杂的逻辑,比如当url中含aa.GIF,refer需要为xxx.com则才触发规则,而当url中含有bbb.GIF时,refer又需要为yyy.com时才触发规则,又比如当源ip为地址为192.168.1.*时,则以上规则又都不触发,当请求源ip地址为192.168.*.*时,只触发第一条,等等。这些个性化的定制,在modsucrity默认语法中就很难通过配置实现。
另外modsecurity天生作为apache的一个模块,其所有代码设计均是基于apache,所以能跟apache很好的配合工作。但同时也带来了一个问题就是可移植性不高,将modsecurity移植到其他web服务器会有很多不兼容问题。
不难发现,nginx天生为性能而生,在性能上做到极致。它使用基于事件驱动的架构能够处理百万级别的tcp连接,高度模块化的设计和自由的许可证使得扩展nginx的第三方模块层出不穷,而且优秀的设计带来了极佳的稳定性,因此其作为web服务器被广泛应用到大流量网站上,包括腾讯,新浪,网易淘宝等访问量巨大的网站。使用nginx作为web应用防火墙的代理服务,从根本上解决web服务器的性能瓶颈问题。并且高度模块化的设计,使得模块的开发非常方便。同时nginx还是一个跨平台的web服务器,可以运行在linux,freebsd,solaris,aix,macos,windows等操作系统上,并且他还可以使用当前操作系统特有的一些高效api来提高自己的性能。例如对于处理高效处理大规模并发连接,它支持linux上的epoll,solaris上的eventports和freebsd上的kqueue等。
同时,lua语言以小巧轻便著称,并且在目前所有脚本引擎中,lua的速度是最快的。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行,具备了良好的跨平台性。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建六壬网安股份有限公司,未经福建六壬网安股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510678051.4/2.html,转载请声明来源钻瓜专利网。