最新版的ModSecurity(一个开源的Web应用防火墙,即WAF)开始支持核心规则集(Core Rule Set,即CRS,可用于定义旨在保护Web应用免受零日及其他安全攻击的规则)了。ModSecurity团队发布的2.5.10版还包含了其他一些特性,如并行文本匹配、Geo IP解析和信用卡号检测等,同时还支持内容注入、自动化的规则更新和脚本等内容。
我们可以通过ModSecurity手工创建安全过滤器、定义攻击并实现主动的安全输入验证。此外,它还提供了一个面向Lua语言的新的API,为开发者提供一个脚本平台以实现用于保护Web应用的复杂逻辑。
ModSecurity Core Rules 2.0于上个月发布,这是一个基于事件的编程语言,包含了用于事务查询的各个步骤、能够转换数据以进行辨别、还可以将多个规则合成起来以形成复杂逻辑。其他的入侵检测(IDS)与防御系统(IPS)根据特定于攻击的签名来实施防范,而核心规则集却是根据一般的规则来防范常发生在Web应用中的安全攻击,这种攻击在大多数情况下都是自定义的,换句话说,攻击代码是无章可循的。核心规则集框架通过以下技术来保护Web应用的安全:
- HTTP防护——对违背HTTP协议与本地定义的使用策略的行为进行检测。
- 常见的Web攻击防护——对常见的Web应用安全攻击进行检测。
- 自动检测——对机器人、爬虫、扫描及其他恶意行为进行检测。
- 特洛伊木马防护——对特洛伊木马进行检测。
- 错误隐藏——伪装成服务器发出的错误消息。
InfoQ有幸采访到了Breach Security应用安全研究院主管及ModSecurity项目领导Ryan Barnett以了解ModSecurity的新特性及与其他Web应用防火墙产品相比ModSecurity有哪些与众不同之处。
Q:与其他Web应用防火墙产品,尤其是那些基于硬件的设备,如Cisco、Imperva与Breach等相比,ModSecurity Framework有何与众不同之处?
A:开源的ModSecurity与那些商业产品相比有太多不同之处了。
硬件设备对比软件方案:ModSecurity是一个软件Web应用防火墙引擎,本质上是个Apache module。这意味着它是嵌入在目标Web服务器当中的,而并非部署在单独的设备中。然而,我们也可以将Apache配置成一个反向代理并达到类似的目的,但要知道ModSecurity本身并不会处理这个方面。
软件WAF方案的优势:有些情况需要进行大规模的部署,在这种情况下,将WAF分布在目标Web服务器当中要比从垂直方向上增加外部硬件设备实际的多。嵌入式部署的另一个好处是无需再去处理SSL解码了,因为Web服务器会进行预处理并将数据回传给ModSecurity。
软件WAF方案也并非完美无缺,其缺点如下:
· 可能无法将新的软件加到Web服务器当中。
· 会使用到本地资源。
· 反应时间的影响——很多商业WAF设备可以在Sniff模式下进行非线性部署,这样就无法评估在线性情况下对HTTP事务的访问所需的反应时间了。
商业与开源产品高级功能对比:ModSecurity拥有一个高级的规则语言和Lua API以编写复杂逻辑。我们既可以创建消极安全规则(寻找已知的坏输入),也可以创建积极安全规则(只允许已知的好输入)以规定输入验证的防护类型。这种方式的主要限制在于ModSecurity无法自动化创建这些规则,所以必须手工创建。但只在以下两种场合之一才行:
A.如果Web应用不经常变化
B.响应攻击扫描报告,在这种情况下可以使用目标的积极安全规则
如果将ModSecurity作为一个对已知问题的虚拟修补方案,那么它就不太适合于B了。高端的商业WAF都具有自动化的学习和分析机制以创建这些积极安全规则,同时还能够从客户端与Web应用之间的交互中进行学习。
Q:对于安全管理来说,网络路由器要比Web服务器(Apache)更棒么?
A:这取决于实际情况。安全策略、日志分析与报告的中心化实现是个不错的主义。然而从技术角度来说,你需要确保在相同的上下文中去评估数据,因为受保护的Web应用处于临界环境下,因此理想的情况是越接近应用越好,在应用中就更棒了,这么做会减少错误的消息规则出现的可能性。
Q:除了Apache以外,ModSecurity还能运行在其他的Web服务器上么,如微软的IIS?
A:现在还不行,但未来会实现的。我们的首要目标是让ModSecurity成为IIS的插件(以ISAPI filter的形式)。
Q:能否详细谈谈核心规则集项目有哪些新特性,这些新特性是如何帮助开发者和Web管理员保护Web应用免受安全攻击的困扰。
A:新的核心规则集(CRS)有很多更新:
· Snort Web攻击签名——拥有很大的一个规则集,里面包含了Emerging Threat Snort Web攻击签名,同时Breach安全实验室还会不断发布新的签名。
· 协作规则——现在协作已经是个潮流了,所有的CRS规则都可以设定事务性变量以指定匹配的规则、匹配的位置及匹配的负载数据。
· 不规则分数——现在每个规则都会在总的不规则分数中占据一定的比重,用户可以为其站点指定恰当的极限分数。
· 更简单的异常处理——现在用户可以添加自己的本地异常以覆盖CRS检查而无需编辑规则自身。
Q:在寻求Web应用防火墙方案时的最佳实践是什么?网络管理员与开发者需要牢记哪些内容?
A:检视OWASP的最佳实践:仔细阅读Web应用防火墙文档。它含有大量的信息来评估一个WAF是否/何时/如何能帮助你的组织。
检视WASC Web应用评估标准(WAFEC)文档。该文档概览了不同的WAF功能。你应该着重看那些对你来说很重要的特性,然后将其作为WAF评估的一个标准。
根据WAF搜集的数据建立一个针对事件处理的流程。既然已经对HTTP的通信堵塞有了深入的了解,你会发现之前所遗漏的内容。需要确保有一个计划以应付新接收的数据。
Q:ModSecurity项目未来的路线图如何?
A:从长远来看,我们希望ModSecurity成为一个自我包含的程序库,这样就能插入到任何应用当中了。Breach Security正积极地参与到Open Information Security Foundation(OISF)的项目中以创建新式的网络入侵检测系统,同时我们还继续在HTTP引擎上进行着艰苦卓绝的努力。这些工作成果的大部分都将融合到ModSecurity中。
查看英文原文:ModSecurity Framework Supports Web Application Security Core Rule Set