【IT168 资讯】以“互联网安全新思维”为主题的OWASP2011亚洲峰会在11月8日-9日成功举办。本届大会以“网络安全产品测评”、“OWASP应用安全技术”“业务安全发展新思路”“云安全”等多个角度展开深入的讨论。Trustwave公司“斯派特实验室”的高级安全顾问Jonathan Werrett先生为大家带来演讲——WAFS:Patch First,aAsk Questions Later。
▲Trustwave公司“斯派特实验室”的高级安全顾问Jonathan Werrett先生
Web应用防火墙
它是专用在Web应用程序层的安全设备,它与很多防火墙有一点不同的,它是针对网络应用系统做保护。它可以是远程,也可以安装在设备上面的。它也可以提供Web流量内容的特定保护。Web应用防火墙的正面的好处是拥有对Web的高等级的“知识”、集中控制、成熟的反逃避侦查。Web应用防火墙的负面问题,如果有问题的话,根源的问题在源码上面的问题没有解决。你不能把Web防火墙配置以后,可以保护所有的问题,非常具体的,无法解决业务逻辑和其他类似的缺陷。
使用Web应用防火墙的理由:标准告诉你(如PCI DSS的要求6.6Web防火墙);为了避免主动测试;为了避免应付开发人员;你的审计人员/供应商建议你的。
使用Web应用防火墙的原因:将安全与开发功能分离;尽量减少暴露的空窗期;提供“基础安全”给多个应用程序。如果你们的网站有很多不同的应用形式,防火墙可以保护不同的攻击。
虚拟补丁
虚拟补丁解决WAF层的具体缺陷,及时修补。很多的问题由于漏洞,我们要做一些补丁,把这些漏洞补好,在Web防火墙下面我们有虚拟补丁。它有很多的好处:及时补丁、弹性、可扩展性、处理遗留代码、处理外包代码、减少暴露、带补丁、可利用的补丁、减少对开发员的依赖、避免“重新创建”补丁。
ModSecurity,它是开源Web性防火墙、免费使用、最大的安装量,也有很多许多成熟的特点。但是用Modsecurity有很多技术方面的问题。
建立虚拟补丁
关键步骤:
准备:确保运行ModSecurity、明确建立角色、创建一个合适的测试环境;
识别与分析:来源(主动的评估、脆弱性通知),识别关键功能。
Jonathan谈到:“你们找到很多问题的时候,你们有一个列表,在列表可以用不同的方法来做补丁,可以用白名单或黑名单的方法,我们做白名单或黑名单的时候,我们要做一些测试,因为它有时候不可以阻止合法的流量。我们来做一个演示,比较简单的演示。这是网站的应用系统,我们登录一下应用系统,我们在下面打印一些数据。应用系统是里面很多不同网站的问题,我们在网站上面打印课本。建立虚拟补丁保护跨站点(如图):这就是刚才的虚拟补丁,我们来到应用系统再做攻击,因为我们做课本的虚拟,做虚拟补丁之后,我们就不可以进去了。”
我们另外一个问题是SQL注入,我们来到网站,我们在表格上面做SQL注入的问题。我刚才用SQL注入在网站,我可以拿到数据库里面的一些数据。我们看一下SQL注入虚拟补丁,我们把所有符合的都屏掉,虚拟的补丁,我们可以用OWASP共同规则,针对各种问题的众多的通用规则。行之有效的和全面的。仅SQL注入有179测试。精准的评分过程,而不是直接配对。很多时候在源码发现不同SQL注入,你们开发人要做很多次的测试,很多的源码的改动。我们用不同区域的补丁,文档里面有很多的未知。在演示里面我们有两个SQL注入的问题。
现在我们说跨站请求伪造,大家可以看到这个网站是用SQL,我们利用这个漏洞来做SQL。我们看一下怎么把这个问题来改变,不是太困难,是很简单的。这里面有两个部分,第一个部分,看一下所述的栏上面是“保护”。第二个部分,找一下ARGS:tk的符号。序列的补丁要在控制的规则里面的。我刚才已经做好虚拟的补丁再回到这个网站,我们把参数改动之后,这个网站就不允许我们进去了。
最后,Jonathan还介绍了SQL注入挑战赛的结果。ModLecurity的SQL注入挑战,650人参与,测试OWASP的ModSecurity的核心规则集,4个供应商的演示网站(Acunetix、Cenzic、Hp、IBM),9个赢家,对核心规则集进行了修改。
结论是建立黑名单非常困难,Web应用防火墙对黑客增加“阻力”,但绝不会终止黑客攻击。里面有很多例子,你们可以到我们http://ModSecurity.org来看一下。摘要:虚拟补丁有助于快速确保安全、减少你的曝光、留给开发员空间和时间去找最好的解决办法,集中的安全性,并提供一个全球性的基地。
相关链接:
OWASP2011演讲PPT下载专辑http://topic.it168.com/factory/owasp_2011/index.html
OWASP2011专题报道http://safe.it168.com/topic/2011/11-7/OWASP2011/index.html