Lua中的正则表达式 在WAF中工作的原理

         outputo-20210606-151851-821-buhg.png

网络应用防护系统(又称网络应用级入侵防护系统)。英语:网络应用防火墙(或WAF)。在一个国际公认的说法中:Web应用防火墙是一种通过在HTTP/HTTPS上执行一系列安全策略而保护Web应用的产品。

1.2芯片的作用。

为IP白名单和黑名单功能提供支持,直接拒绝IP进入黑名单。

对于URL白名单,定义了无需过滤的URL。

在定制规则中,支持用户代理过滤和匹配条目,然后处理这些条目(返回403)。

支援CC攻击防御。如单一URL访问超出设定值,则直接返回403。

对cookie过滤的支持,在定制规则中匹配条目并对其进行处理(返回403)。

在自定义规则中支持网址过滤以匹配项。如使用者要求的网址包含这些,则传回403。

基于相同原则,支持URL参数过滤。

在日志中支持日志记录和记录所有被拒绝的操作。

例外检测协议。

WebApplicationFirewall可以对HTTP请求进行异常检测,拒绝不符合HTTP标准的请求。HTTP协议的某些选项也可以使用,从而缩小了攻击范围。即使是一些web应用的防火墙也可以严格限制HTTP协议中的过于松散或不完全公式化选项。

加强输入确认功能。

增强输入验证能有效防止网页篡改、信息泄露、木马、木马入侵等恶意攻击。这样就减少了Web服务器受到攻击的可能性。

适时修补

补丁网络安全漏洞是Web应用开发人员最头疼的事,没人知道下一秒会出现什么漏洞,对Web应用造成危害。WAF能为我们做这些工作——WAF能在不到一小时内屏蔽这个漏洞,只要有完整的漏洞信息。这种屏蔽漏洞的方法当然并不完美,没有安装相应的补丁本身就是一个安全威胁,但如果我们不去选择,任何保护措施都好过没有。

保护原则的基础是保护的例外情况。

以规则为基础的保护能提供各种网络应用的安全规则。硅片制造商将保持这个规则基础,并不时进行更新。根据这些规则,用户可以检测应用程序的各个方面。其它产品可以根据合法的应用数据建立模型,并根据模型对应用数据进行异常判断。但必须彻底理解用户企业的应用程序,这在现实中是很难做到的。

政府管理。

WAF能够判断用户是否是第一次访问,并记录事件将请求重定向到默认登录页面。利用用户操作行为的整体信息,可以更容易识别攻击。该模式还能检测到异常事件(例如登录失败),并在达到极限时处理。对暴力袭击进行识别和应对是十分有利的。

其它防护技术

WAF还提供了一些安全性增强,可用于解决WEB程序员对输入数据的过度信任。例如隐藏的表单域保护,防入侵回避技术,响应监测,信息泄漏保护等等。

1.3WAF和网络防火墙的区别。

作为一种访问控制设备,网络防火墙主要工作在OT模型的第三层和第四层,基于IP消息进行检测。只要限制端口,阻塞TCP协议就行了。其产品设计不需要了解HTTP会话,这导致它不能理解HTML、SQL等Web应用程序语言。这样,HTTP通信就不能进行输入验证或攻击规则分析。大部分对站点的恶意攻击都会封装成HTTP请求,这些请求会通过端口80或443的阻断墙成功检测到。

有些防火墙设置全面,功能丰富,也具有一定的应用层防护能力。例如他们可以根据TCP会话异常和攻击的特点来防御网络层的攻击,或者通过IP分割的组合来判断多个包中是否隐藏了攻击。但是,从根本上说,他们仍然不能理解HTTP会话,也不能应对SQL注入、跨站点脚本、cookie窃取和网页篡权等应用层攻击。

Web应用防火墙可以理解和分析应用层的HTTP会话,从而有效地防御各种应用层攻击。并与网络防火墙相兼容,实现功能。

第二,使用nginx配置实现403和404很简单。

2.1重回403,进行一次技能测试。

请修改nginx配置文件,然后向服务器添加以下内容。

设定$byk_user_agent0;

($http_user_agent~"Wget|AgentBench"){

安装$block_user_agent1;

}

if($block_user_agent=1)

收回403;

}

用其它机器将wget移开。

2转404,小技能考试。

在nginx配置文件中添加以下内容,并让请求访问sql|bak|zip|tgz|tar.gz返回404。

地点:*\(sql|bak|zip|tgz|tar.gz)$

回到404

}

将tar.gz下放到网站的根目录。

[root@iz28tsvpczwww]#tarzvfabc.tar.gzWlacontent/

以下是通过浏览器访问的结果,404已经生效。

三是WAF的深入实施。

3.1芯片的执行计划。

下面的分析步骤是:分析HTTP请求==>匹配规则==>防御动作==>记录日志。

执行情况如下:

TCP请求的解析:协议解析模块。

配对规则:规则检测模块,配对规则库。

防御性行为:回到403或者跳到定制的界面。

记录:在记录,画一个饼状图。推荐json格式。

3.2nginx+Lua安装

因为nginx配置文件编写不方便,白名单功能复杂,nginx白名单不适合CC攻击,我们使用nginx+lua实现WAF。在编译nginx时,如果希望使用lua,请确保配置lua,或者与OpenResty组合。在编译nginx时,此方法无需指定lua

分享: