网络安全 频道

提升WEB应用程序安全需要打“组合拳”

  由于WEB应用程序对于当今许多企业的内部和外部操作都极端重要,所以其可用性和安全性既是客户的期望又是其要求。因而,企业应该在WEB应用程序问题上不惜一切代价。同时,WEB应用程序的重要性也给安全专家带来巨大压力,因为没有什么会比企业的关键网站或应用被攻击、破坏更恐怖了。不幸的是,在构建应用程序的竞赛中,许多企业给开发者施加压力,要求其重点关注应用程序的安全。

  安全策略

  在WEB应用程序安全问题上保持前瞻性和主动性应当成为IT的头等大事。如果WEB应用程序遭受破坏,企业往往会遭受极大损失。对于大型企业,丢失的不仅仅是金钱,更重要的是声誉的丧失。重要WEB应用程序经常遭受攻击会使客户和公司的CEO不满。不管是否可以避免攻击,IT往往会遭受谴责,虽然这未必公平。

  在CIO和CFO们谈到“安全”时,他们往往会为高额费用而震惊。但是,企业未必需要将大把的金钱用于强化WEB应用程序。要赢得WEB安全的保卫战,企业需要打“组合拳”:将相关解决安全问题的非常好的方法和工具结合起来。

  你不必请一位资深的CISSP来加固你的WEB应用程序,也不必花太多金钱。但成功地强化企业的WEB应用确实需要花费时间、努力和一些交涉技巧(你对安全的担忧和关注在项目经理眼中也许就是在大惊小怪)。在固化企业的WEB应用程序时,你需要综合利用过程、工具、优化及非常好的方法。一般说来,这些策略就是关于网络、与应用程序和过程相关的性质等。

  WEB应用的非常好的方法应从网络层开始,从WEB应用程序的开发到投入使用的整个过程中,都要将安全性作为头等大事。

  网络:将服务器隐藏在DMZ(隔离区)

  如果你是安全专家,可能会觉得此方法有点儿小儿科。但是,并非人人都是安全专家,而且即使最好的安全专家有时也会犯困。将WEB服务器放在DMZ 不会从技术上使WEB应用或网站更安全,但是一旦WEB服务器被成功攻击或破坏,该方法可以保护基础架构的其余部分免受攻击。

  如果企业网站或WEB应用程序在自己的服务器上,那么,外围防御每天都会遭受各种扫描。你无法阻止攻击者探测外围的开放服务,但你可以在攻击者成功损害了一台WEB服务器后,使他难以造成更大的危害。将面向外部的WEB服务器放在DMZ中的要旨在于,将攻击者限制在一个较小的范围内,在一台服务器被攻克后,这样做可以限制其危害。例如,如果你将所有进入的连接都进行地址转换,使其到达内部网络,那么黑客就可以成功地利用未打补丁的漏洞或使用SQL注入实现特权提升,从而可以无限制地访问内部网络。

  网络:重新审查防火墙规则

  减少WEB应用程序攻击面的最简捷的方法之一就是保证丢弃所有进入WEB服务器群端口的连接。如果你暴露了一个WEB应用,就没有理由在WEB服务器上允许RDP,也没有理由允许ICMP。暴露WEB服务器上的其它TCP/UDP服务可能需要测试或诊断,但除却TCP的80端口或443端口,没有理由允许任何进入的连接到达WEB服务器。安全管理专家应经常检查防火墙的规则的异常情况,特别是如果企业有几个人在管理防火墙,经常审查就尤其重要了。

  工具:保护前端

  如果你要保护内部的WEB应用程序,一般并不需要WEB应用程序防火墙。但是大型企业往往拥有面向外部世界的WEB应用程序,如果这些程序出现问题,企业将丧失大量金钱,因而企业非常需要WEB应用防火墙。

  无疑,一个遵循谨慎原则而开发的应用程序不可能需要WEB应用防火墙级的保护。但是,有时WEB的开发者们不验证用户提供的输入,此时最大敌人恰好是开发者自己。而且,从编码的观点看,WEB开发者也无法保护WEB应用程序免受旷日持久的DoS攻击;虽然我们应当责备开发者因粗心大意而使网站遭受SQL注入攻击,但如果系统管理员没有正确地强化WEB服务器,也没有及时打补丁,是不是也应承担责任呢?在出现问题时,再去探究漏洞是否是人为错误造成的就没有太大意义了。关键的问题是,WEB应用防火墙对于保护WEB应用程序免于遭受各种攻击和漏洞利用可谓意义重大,最根本的问题是防止漏洞被利用。企业需要判定不部署WEB应用防火墙的风险是否超过其益处。

  应用程序:强化WEB服务器

  脆弱的WEB应用程序会将企业暴露在不必要的风险中。将WEB服务器部署在Linux而非Windows上未必会更安全。配置错误的Apache部署与配置错误的IIS一样脆弱。同样的理论也适用于底层的操作系统。

  事实上,如果你仅仅固化WEB服务器自身却没有强化底层的操作系统,那么你就不可能覆盖攻击WEB应用程序的所有漏洞。正如企业应当过滤防火墙上所有不必要的协议一样,移除那些对于WEB应用程序非必需的系统服务也非常重要。

  例如,Windows Server 2008的默认部署包含50个正在运行的服务,而Windows Server Core的默认部署仅包含36个服务。虽然IIS会增加少量服务,但是借助用于部署WEB服务器的方法来进行简单优化,就可以极大地减少WEB应用程序的攻击面。当然,在Linux中,禁用一些不必要的正在运行的进程从而强化底层操作系统,也可以达到同样的优化目的。花时间从服务器中清除不必要的服务是改善WEB应用程序安全状况的最简捷步骤。

  工具:经常使用漏洞扫描器

  不管企业的变更控制过程如何严格,业务的自然过程(无论是否受到控制)都会产生新漏洞。这些漏洞有可能是防火墙变化的结果,也可能是更新WEB应用程序或底层操作系统、新发现的零日漏洞、错误配置的结果。

  新发现漏洞的原因并不重要,因为最重要的问题是能够发现并解决安全问题。不幸的是,你不能依靠某个安全专家甚至不能依靠某个安全团队,去发现WEB应用程序环境中的漏洞。在一个WEB应用程序投入使用时,发现新漏洞的责任最好交给可以主动发现安全问题并在问题发时生发出警告的自动化工具。

  没有什么可以替代一个健全的漏洞扫描器,我们也没有理由不去使用这种工具,因为这种扫描器便宜且易于部署。

 

0
相关文章