整合方法的好处

当来自不同小组的开发人员作为一个团队协同工作时,就会造就Web应用程序开发过程的高效率。虽然安全专业人员常常慨叹商务主管完全不理解软件风险,但是安全专业人员熟悉商业风险也很重要。通过适当的软件担保水平来构建Web应用程序,要求在商业需要、可用性和安全性之间进行风险管理权衡。为了达到适当的平衡,必须收集所有开发人员的需求。

从软件开发的开始阶段,需求定义和应用程序的设计就应当考虑安全需求以及功能需求和商业需要。在编写代码之前,这种信息就应当传达给设计师和软件开发人员。这种方法可以防止多数甚至是全部安全设计漏洞和架构漏洞。

然而,关注安全的软件设计并不是排除与Web应用程序相关的所有漏洞。开发人员自身必须接受关于安全编码技术的培训,以确保在应用程序的设计期间,并不 会带来安全漏洞。让开发人员洞察开发语言和运行环境的安全方法可以支持更好的编码实践,并会使最终的Web应用程序出现的错误更少。将安全性纳入到设计过程中的另一个效率上的利益是,能够在需求和设计期间建立误用情形。在测试和接收阶段这样做可以节省时间,并有助于消除瓶颈。

整合性合成测试的好处

软件测试的整合性的合成分析方法可以更大地提升效率。集成开发环境的特定插件在发现用户的编码错误时会向编码人员发出警告。静态分析,也称为“白盒”测试,在将不同的模块组装成最终的产品之前,开发人员和审计人员就对其使用此技术。静态分析在代码水平上提供了一种内部人员对应用程序的检查分析。静态分析对于发现语法错误和代码水平的缺陷是很有效的,但并不适于决定一个缺陷是否会导致可利用的漏洞。

动态分析和人工***测试对于验证应用程序是否容易受到***是有效的。它也被称为“黑盒测试”,主要展示的是外部人员对应用程序的检查分析,可以对投入生产的应用程序进行深入检查,查看***者是否容易利用其漏洞。然而,动态测试技术仅能用于软件开发的后期,只能在生成后阶段。动态测试的另一个局限性是它很难找出代码中导致漏洞的代码源。

这就是将静态测试和动态测试结合起来以“灰盒”或组合的方法进行混合测试的原因。通过将代码水平的内部检查和动态的外部检查结果结合起来,就可以充分利用两种技术的长处。使用静态和动态评估工具可以使管理人员和开发人员区分应用程序、模块、漏洞的优先次序,并首先处理影响最大的问题。组合分析方法的另外一个好处是动态测试确认的漏洞可 以用静态工具追溯到特定的代码行或代码块。这便有利于测试和开发团队进行合作×××流,并使得安全和测试专家更容易向开发人员提供具体的可操作的纠错指导。