这篇文章关注开发人员在提高 Web 应用程序的安全性方面所应担当的角色,并细述了 IBM® Rational® AppScan® Developer Edition 如何帮助他们做到这一点。Rational AppScan Developer Edition 是第一个在一个产品中提供所有的主要安全性分析技术(动态分析,静态分析,运行时分析,以及字符串分析)的工具,也是首次将这些技术集成在一起(综合分析)以发挥其巨大潜能。
最大的挑战是,在当今的 Web 应用程序中这些缺陷都太常见。这样的例子之一就是 Web 页面的代码中的一个安全漏洞,它可以允许一个在线银行客户看到其它客户的数据。这些缺陷可以让黑客在这个应用程序 的后台数据库上运行查询程序,很可能替代这个 Web 服务器本身。Web 应用程序的安全问题非常紧急并且正构成威胁,它们主要由这个应用程序代码中的安全故障导致产生的。
另一个挑战是最新发现这些问题的成本。大多数机构将这个 Web 应用程序安全性问题的发现留给专注安全的小组来做,他们在这些应用程序生效之前进行测试。找到并修复这些问题,然后要求开发和质量保证测试的人员对最新代码变更进行完整的迭代。这样修复很常见的最简单安全故障也会产生很高的成本。
此外,安全专家远远多于开发人员的数量。这些安全小组就会努力跟上新的以及变更的应用程序的节奏。这样通常会导致只有十分紧急的应用程序才会被测试。其它自检的应用程序就很可能出问题,因为在它们被执行之前并没有进行安全性测试。
这种状况已经变得越来越恶劣,因为 Web 应用程序在绝大多数商业中扮演者越来越重要甚至是前所未有的重要角色。这种破坏和黑客的影响继续在增长,然而安全性问题还没有被当作这些 Web 应用程序开发过程的一部分。
要解决这个问题,要求这个 Web 应用程序开发中所有不同小组的参与,但主要是开发和质量保证小组。最后,潜在造成这些问题的原因是不安全编码介入了 Web 应用程序的安全缺陷中。这篇文章集中强调开发人员的角色应该主要致力于这个问题的解决,以及 IBM® Rational® AppScan® Developer Edition 该如何使他们这样做的具体细节。
|
开发过程首先要测试和修正这些安全性问题,您的小组必须首先了解您的开发和安全性小组之间的差异。当今可利用的技术主要为安全专家所使用,通常并没有满足开发的需求和用例。
表格 1提供了这些小组之间差别的一些例子。
表格 1. 角色和职责
安全小组 | 开发小组 |
安全是他们的主要工作。 | 交付软件是他们的主要工作:安全是众多职责之一。 |
他们带着证明这些应用程序是安全的目标进行测试,因此会尝试找出一个应用程序中所有的问题。 | 他们测试这些应用程序,都带着尽早找出简单问题的目的,而不是证实不安全性。他们不需要找出所有的问题。 |
如果有一个很难理解的问题,或者这个问题很可能会失败地报告为(一个假阳性的),他们通常将花一些时间来理解它,因为它可能会导致一个安全风险。 | 如果一个问题很难理解,或者这个问题很可能会失败地报告为((一个假阳性的),他们将会忽略从而避免浪费时间。 |
他们利用所包含的充分的功能来处理完整应用程序。 | 他们不完全处理开发的应用程序。 |
他们测试大量不同应用程序的安全性问题:他们并不需要很好地理解每个应用程序。 | 他们测试一个(或者几个)应用程序的许多不同问题:他们并不需要很好地理解安全性问题。 |
每次审核通常都仅仅由一个(或者几个)审核人员完成的。 | 每个应用程序通常都是由多个(通常是许多)不同的开发人员进行开发的。 |
因为这两个小组是不同的,因此每个小组的产品设计也应该不同。正如 Rational AppScan Standard Edition 是为安全审核人员设计的,而 Rational AppScan Developer Edition 是为开发人员设计的,并且要记住他们自己特殊的用例:
本文转自IBM Developerworks中国