65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Web 应用程序开发生命周期中实施有效的漏洞修复策略

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2007年7月10日

8分钟阅读

viewsIcon

27923

在 Web 应用程序开发生命周期中进行安全评估后,了解如何解决和修复发现的任何应用程序漏洞非常重要。

引言

完成 Web 应用程序开发中的安全评估后,就该着手修复您发现的所有安全问题了。此时,您的开发人员、质量保证测试人员、审计员和安全经理都应紧密合作,将安全性融入软件开发生命周期的当前流程中,以消除应用程序漏洞。并且,手中持有 Web 应用程序安全评估报告,您可能会有一长串需要解决的安全问题:低、中、高风险的应用程序漏洞;配置错误;以及业务逻辑错误造成的安全风险。有关如何进行 Web 应用程序安全评估的详细概述,请参阅本系列文章中的第一篇文章,“Web 应用程序漏洞评估:打造高度安全网站的第一步”。

首先:对您的应用程序漏洞进行分类和优先级排序

Web 应用程序开发中修复过程的第一阶段是对应用程序或网站中需要修复的所有内容进行分类和优先级排序。从宏观层面看,应用程序漏洞分为两大类:开发错误和配置错误。顾名思义,Web 应用程序开发漏洞是指在应用程序的概念化和编码过程中产生的漏洞。这些是实际代码或应用程序工作流程中的问题,开发人员需要解决。通常,但并非总是,这类错误可能需要更多的思考、时间和资源来修复。配置错误是指需要更改系统设置、关闭服务等。根据您组织的结构,这些应用程序漏洞可能由您的开发人员处理,也可能不处理。通常可以由应用程序或基础设施经理处理。无论如何,在许多情况下,配置错误可以迅速得到纠正。

在 Web 应用程序开发和修复过程的此时,是时候对评估中发现的所有技术和业务逻辑漏洞进行优先级排序了。在这个直接的过程中,您首先列出对您组织最重要的系统具有最高潜在负面影响的最关键应用程序漏洞,然后根据风险和业务影响按降序排列其他应用程序漏洞。

制定可行的修复路线图

一旦应用程序漏洞被分类和优先排序,Web 应用程序开发的下一步就是估算实施修复所需的时间。如果您不熟悉 Web 应用程序开发和修订周期,最好在讨论中引入您的开发人员。这里不要过于细致。目的是了解过程需要多长时间,并根据最耗时和最关键的应用程序漏洞开始修复工作。时间或难度估算可以很简单,如容易、中等和困难。修复将不仅从风险最大的应用程序漏洞开始,而且从纠正起来最耗时的漏洞开始。例如,先着手修复可能需要大量时间才能修复的复杂应用程序漏洞,然后等待处理那些可以在一下午纠正的半打中等缺陷。通过在 Web 应用程序开发过程中遵循此过程,您将不会陷入因修复所有与安全相关的缺陷所需时间超出预期而不得不延长开发时间或延迟应用程序推出的陷阱。

此过程还为 Web 应用程序开发过程中的审计员和开发人员提供了出色的跟进:您现在拥有一个可行的路线图来跟踪。这种进展将减少安全漏洞,同时确保开发顺利进行。

值得指出的是,在 Web 应用程序开发的优先级排序阶段,需要仔细考虑在评估过程中发现的任何业务逻辑问题。很多时候,因为您处理的是逻辑 - 应用程序实际运行的方式 - 您需要仔细考虑如何解决这些应用程序漏洞。看似简单的修复可能结果非常复杂。因此,您需要与开发人员、安全团队和顾问密切合作,制定最佳的业务逻辑错误修复方案,并准确估算修复所需的时间。

此外,在 Web 应用程序开发中对修复的应用程序漏洞进行优先级排序和分类是顾问可以发挥关键作用的领域,帮助您的组织走向成功的道路。一些企业发现,让安全顾问就如何修复应用程序漏洞提供几个小时的建议会更具成本效益;这些建议通常可以为 Web 应用程序开发过程中的修复过程节省数百小时。

然而,在使用顾问进行 Web 应用程序开发时,您想要避免的一个陷阱是未能建立适当的期望。虽然许多顾问会提供需要修复的应用程序漏洞列表,但他们通常会忽略提供组织在如何修复问题上所需的信息。与您的专家(无论是内部的还是外包的)建立期望,让他们提供修复安全缺陷的详细信息非常重要。然而,缺乏适当的细节、教育和指导的挑战在于,在 Web 应用程序开发周期中创建易受攻击代码的开发人员可能不知道如何修复问题。这就是为什么让该应用程序安全顾问为开发人员或您的安全团队成员提供支持至关重要,以确保他们走在正确的道路上。这样,您的 Web 应用程序开发时间表就能得到满足,安全问题也能得到解决。

测试和验证:独立确保应用程序漏洞已修复

当 Web 应用程序开发生命周期的下一个阶段到来,并且之前识别出的应用程序漏洞(希望)已被开发人员修复后,就是时候通过重新评估或回归测试来验证应用程序的安全性了。对于这次评估,至关重要的是开发人员不应是唯一负责评估自己代码的人。他们应该已经完成了自己的验证。这一点值得提出,因为许多公司都会犯一个错误,即允许开发人员在 Web 应用程序开发生命周期的重新评估阶段测试自己的应用程序。在验证进展后,通常会发现开发人员不仅未能修复计划修复的缺陷,而且还引入了额外的应用程序漏洞和许多其他需要修复的错误。这就是为什么至关重要要让一个独立实体,无论是内部团队还是外包顾问,审查代码以确保一切都已正确完成。

应用程序风险缓解的其他领域

虽然您在 Web 应用程序开发过程中可以完全控制访问自定义应用程序,但并非所有应用程序漏洞都能足够快地修复以满足不可更改的部署截止日期。在已投入生产的应用程序中发现一个需要数周才能修复的漏洞会令人紧张。在这些情况下,您将无法完全控制降低您的 Web 应用程序安全风险。对于您购买的应用程序尤其如此;将会存在供应商长时间不修补的应用程序漏洞。为了避免高风险运行,我们建议您考虑其他风险缓解方法。这些方法包括将应用程序与您网络的其他区域隔离,尽可能限制对受影响应用程序的访问,或者在可能的情况下更改应用程序的配置。想法是查看应用程序和您的系统架构,在等待修复的同时寻找其他降低风险的方法。您甚至可以考虑安装 Web 应用程序防火墙(一种专门设计的防火墙,用于保护 Web 应用程序并强制执行其安全策略),它可以为您提供合理的临时解决方案。虽然您不能无限期地依赖此类防火墙来降低所有风险,但它们可以提供足够的保护,为您争取时间,同时 Web 应用程序开发团队创建修复。

正如您所见,在 Web 应用程序开发生命周期中修复 Web 应用程序漏洞需要您的开发人员、QA 测试人员、安全经理和应用程序团队之间的协作。相关过程看起来可能很辛苦,但事实是,通过实施这些过程,您将经济高效地降低应用程序级别攻击的风险。Web 应用程序开发是复杂的,并且这种方法比在应用程序及相关系统部署到生产环境后对其进行重新设计要便宜。

这就是为什么 Web 应用程序安全最佳方法是在开发人员和质量保证测试人员之间建立安全意识,并在整个 Web 应用程序开发生命周期中灌输最佳实践 - 从其架构到其在生产环境中的整个生命周期。达到这种成熟度水平将是下一期“实现持续应用程序安全的有效控制”的重点。第三篇也是最后一篇文章将为您提供构建开发文化所需的框架,该文化能够始终如一地开发和部署高度安全且可用的应用程序。

关于Caleb Sima

Caleb Sima 是 SPI Dynamics 的联合创始人,这是一家 Web 应用程序安全产品公司。他目前担任 SPI Dynamics 的 CTO 和 SPI Labs(SPI Dynamics 的研发安全团队)的董事。在联合创立 SPI Dynamics 之前,Caleb 是 Internet Security Systems 的精英 X-Force R&D 团队成员,并在 S1 Corporation 担任安全工程师。Caleb 是 Web 应用程序安全测试方法的常任演讲者和媒体资源,并且是《Hacking Exposed Web Applications: Web Security Secrets & Solutions, Second Edition》一书的合著者。

关于 Vincent Liu

Vincent Liu,CISSP、CCNA,是 Stach & Liu 的管理总监,这是一家提供高级 IT 安全解决方案的专业服务公司。在创立 Stach & Liu 之前,Vincent 曾领导 Honeywell International 全球安全部门的攻击与渗透和逆向工程团队。Vincent 是一位经验丰富的演讲者,曾在 BlackHat、ToorCon 和 Microsoft BlueHat 等会议上发表过他的研究成果。他的作品被收录在访谈、期刊和书籍中,其中包括:“Penetration Tester's Open Source Toolkit; Writing Security Tools and Exploits; Sockets, Shellcode, Porting, and Coding; 以及即将出版的 Hacking Exposed: Wireless”。

© . All rights reserved.