Web应用防火墙入门( 二 )


因此 , 为了获得最好的效果 , 我们需要双管齐下:一方面 , 必须提高管理者和开发者的安全意识;另一方面 , 尽可能提高应用系统的安全性 。
Web应用防火墙的特点 Web应用防火墙的一些常见特点如下 。
异常检测协议
如果阅读过各种RFC , 就会发现一个被反复强调的主题 。大多数RFC建议应用自己使用协议时要保守 , 而对于接受其他发送者的协议时可以自由些 。Web服务器就是这样做的 , 但这样的行为也给所有的攻击者打开了大门 。几乎所有的WAF对HTTP的请求执行某种异常检测 , 拒绝不符合Http标准的请求 。并且 , 它也可以只允许HTTP协议的部分选项通过 , 从而减少攻击的影响范围 。甚至 , 一些WAF还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项 。
增强的输入验证
就频繁发生的Web安全问题而言 , 有些是源于对Web设计模型的误解 , 有些则来自于程序师认为浏览器是可信的 。很多WEB程序员用JavaScript在浏览器上实现输入验证 。而浏览器只是一个用户控制的简单工具 , 因此攻击者可以非常容易地绕过输入验证 , 直接将恶意代码输入到WEB应用服务器 。
有一个解决上述问题的正确方法 , 就是在服务端进行输入验证 。如果这个方法不能实现 , 还可以通过在客户和应用服务器之间增加代理 , 让代理去执行Web页面上嵌入的JavaScript , 实现输入验证 。
消极的安全模型VS积极的安全模型
曾经设置过防火墙规则的人 , 可能会碰到这样的建议:允许已知安全的流量 , 拒绝其他一切访问 。这就是一种很好的积极安全模型 。恰恰相反 , 消极安全模型则是默认允许一切访问 , 只拒绝一些已知危险的流量模式 。
每种安全模型方式都存在各自的问题:
消极安全模型:什么是危险的?
积极安全模型:什么是安全的?
消极安全模式通常使用的更多 。识别出一种危险的模式并且配置自己的系统禁止它 。这个操作简单而有趣 , 却不十分安全 。它依赖于人们对于危险的认识 , 如果问题存在 , 却没有被意识到(这种情况很常见) , 就会为攻击者留下可趁之机 。
积极安全模式(又称为白名单模式)看上去是一种制定策略的更好方式,非常适于配置防火墙策略 。在Web应用安全领域中 , 积极安全模式通常被概括成对应用中的每一个脚本的枚举 。对枚举的每一个脚本 , 需要建立一个相应列表 , 表中内容如下所示:
* 允许的请求方式(比如 , GET/POST或者只POST)
;* 允许的Content-Type
;* 允许的Content-Length
;* 允许的参数
;* 指定参数和可选参数
;* 参数类型(比如 , 文本或整数)
;* 附加参数限制
上述列表仅仅是个例子 , 实际的积极安全模式通常包括更多的要素 。它试图从外部完成程序员本应从内部完成的工作:为提交到Web应用的信息验证每一个比特 。如果肯花时间的话 , 使用积极安全模式就是一个比较好的选择 。这个模式的难点之一 , 在于应用模式会随着应用的发展而改变 。每当应用中添加新脚本或更改旧脚本 , 就需要更新模式 。但是 , 它适用于保护那些稳定的、无人维护的旧应用 。
自动开发策略可以解决以上问题:
* 一些WAF能够监视流量 , 并根据这些流量数据自动配置策略 , 有些产品可以实时进行这样的工作 。
;* 通过白名单 , 可以标识特定的IP地址是可信的 , 然后 , 依据观察的流量 , 配置WAF , 更新安全策略 。
;* 如果通过一个全面的衰减测试 , (仿真正确的行为 , )来创建一个应用 , 并且在WAF处于监控状态时执行测试 , 那么WAF可以自动生成策略 。

推荐阅读