扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
提问:在努力倡导软件实施开发安全最佳做法的过程中,我遇到了一个障碍:我的高级开发经理表示,我们已经部署了Web应用防火墙(WAF),它完全能够发现所有开发人员遗漏的Web应用安全漏洞。你能为我提供一些很好的反驳意见,来向他说明我们不能简单地依靠WAF来防止糟糕的编码吗?
你的经理可能是看了PCI数据安全标准(PCI DSS)6.6要求,该要求为企业提供了两种选择来保护Web应用程序抵御已知攻击,第一种是检查所有在企业内部开发的web应用代码,第二种是在web应用和客户端之间安装Web应用防火墙。你应该告诉他,该法规的补充信息中提到,“恰当地部署这两种方法能够提供最佳的多层防御”。在现代威胁环境中,我们完全有必要同时部署WAF以及分配资源和时间来改善软件开发安全。
虽然WAF提供了一条重要的防线来防御已知攻击和一些未知攻击,但没有哪个单一的技术能够“包治百病”。例如,WAF不能帮助企业避免应用逻辑错误,然而,对于运行很多动态代码的复杂Web 2.0应用,或者底层网络和操作系统级漏洞,这是很容易出现的错误。但它还有后续成本。WAF具有广泛的日志记录功能,管理员需要登录分析仪来利用这些日志信息。
这正是安全编码和编码审查发挥价值的地方。通过在代码水平解决问题,不仅降低了任何与安全有关的设计和编码缺陷的数量和严重程度,而且显著提高了整体应用安全性。虽然未来的代码修订版仍然需要审查,但采用安全开发做法开发的应用不需要与那些完全依赖于防火墙保护的应用一样持续维护。
在这种情况下,也许最好的反驳是:微软在推出其安全开发生命周期(SDL)后,显著提高了其产品安全性。SDL为整个软件行业制定了标准,很多其他公司(包括思科和Adobe)都采用SDL或者基于SDL建立起安全开发的做法。我们可以从很多方面感受到微软取得的成功,比如在推出产品一年后产品中发现的漏洞数量的变化。在Windows Vista(Vista是第一个使用SDL开发的微软操作系统)推出一年后,与未采用SDL的Windows XP的漏洞要少了45%;SQL Server 2005比未采用SDL的SQL Server 2000的漏洞要少91%。
在部署更好的内部软件开发安全最佳做法后,企业不需要完全依赖WAF来成功阻止针对其应用的攻击。从安全的角度进行编码让应用更加强大,这降低了攻击面,并提高了抵御攻击的能力。WAF永远无法防止每一个漏洞被攻击者利用,而对于攻击者而言,编码漏洞更少的应用不再那么有吸引力。
如果你的经理仍然不相信,那么,能够很好地说明需要安全应用开发的方法就是:攻击你们自己的应用。最安全的演示方法是在虚拟实验室运行应用,使用Metasploit等工具来攻击它。当发现一个漏洞时,概念证明可用于显示攻击者可以如何建立一个反向shell或者其他后门来进入应用和运行应用的系统。这将清楚地展示你的应用中的漏洞将如何被利用,而防火墙根本无法阻止这一切。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者