网络应用防护系统(又称网络应用级入侵防护系统)。英语:网络应用防火墙(或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