为什么软件质量保证和 IT 安全需要协作

本文将介绍一种实现安全性的新方法,如果让软件开发团队和软件质量保证团队进行协作,那么效率会呈指数级增长。本文将解释质量保证流程如何帮助使 IT 更安全,以及 IT 安全性如何帮助更有效地保障测试环境。读者还将了解如何将安全性测试更好地融入软件开发生命周期。

Jeff Laskowski, 高级 IT 专家, IBM

Jeff Laskowski 照片Jeff Laskowski 是 IBM 软件部的一名高级 IT 专家,他是一名 Certified Ethical Hacker,并且是 Agile IT Security Implementation Methodologies(PACKT,2012)的作者,同时也是 IBM developerWorks 的自由撰稿人。他有将近 20 年的 IT 从业经验,在安全和质量保证方面有很强的背景。



2012 年 3 月 12 日

免费下载:IBM® Rational® Requirements Composer 试用版|IBM® Rational® AppScan 试用版
     IBM® Rational® Quality Manager 试用版|IBM® Rational® Team Concert 试用版
     IBM® Rational® Functional Tester 试用版|IBM® Rational® Performance Tester 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

软件质量保证(QA)和 IT 安全性的统一将会形成一种共生关系,但只有少数组织开始认识到这两个独立团队进行合作的好处。质量保证和 IT 安全性的结盟是自然而然形成的,因为在质量保证的基层,IT 安全性是一种质量保证形式。任何形式的安全风险都是一个质量保证问题。

IT 安全性和质量保证都关注消除风险。IT 安全团队致力于消除安全方面的风险,而质量保证团队则致力于消除影响质量的风险。其实,这种协调应该在很多年前就开始了。本文将解释了这两个部门之间的自然行为整合,以及 IBM® Rational®、Information Management、WebSphere® 和 Tivoli® Security 软件产品家族之间的整合会带来怎样的帮助。

访问控制

IT 安全性和质量保证的合作能获得成倍增加的成效。其结果将是一个更加面向安全的质量保证部门和更加面向质量的 IT 安全部门,这将有助于消除更多风险,并提供更好的连续性。

质量保证和 IT 安全性之间的第一个关注领域与访问控制有关。基于组织内部标准和外部的合规性变化或 IT 安全策略的原因,访问控制一直在不断改变和发展。通常情况下,访问控制一直由软件开发团队负责。它的待遇和任何需求一样,并且必须和其他需求进行竞争,才能在应用程序中得到实现。这种实践为 IT 安全和审计团队带来了困难,无法跟踪并随 SOX、HIPAA 和 PCI 等合规性要求的变化而尽快修改访问控制策略。

在将访问控制策略写入应用程序时,这些政策必须与应用程序的增强和改进争夺相同的资源。应用程序所有者可能更愿意把钱花在应用的改进和增强上,而不是花在更新访问控制策略上。最终,这会导致需要将访问控制策略从应用程序移到外部。此外,合规性的多变特性使外部访问控制的需求更加复杂。组织意识到,外部访问控制难免会出现问题。

那么,我们如何将访问控制从应用程序移到外部呢?您需要在软件开发生命周期(SDLC)中考虑到 IT 安全性。

策略需要采用与其他需求同样的方式获得批准。您需要在需求文档中列出安全策略,理想情况下,可以使用 IBM® Rational® DOORS®、Rational® RequisitePro® 或 Rational® Requirements Composer 来完成这项工作。这很重要,因为随着安全策略的改变,访问控制也会发生改变。了解和跟踪这些变化,是一种最佳实践。质量保证团队与应用程序所有者始终保持配合,并有可能为访问控制策略提供这种级别的支持。

如今,在访问控制中新兴的标准是 Extensible Access Control Markup Language(可扩展访问控制标记语言),也称为 XACML,这是一个用于访问控制的、可重用的、基于 XML 的标准。XACML 的目的就是在正确的时间向正确的人提供正确的信息。许多企业采用 XACML 时并未考虑成功实现 XACML 所需的流程。通过在 SDLC 中构建 XACML 流程,您就能建立与软件开发团队的一致性。这种方法对于已经将应用程序策略管理安全性内置到应用程序中的组织来主说非常适合。

从原有应用程序中删除所有现有安全策略,并用 XACML 重新创建这些策略,这样做是不切实际的。这种概念往往会使考虑采用 XACML 方法实现安全策略管理的组织打退堂鼓。其实,这种方法使企业能够维持其现有的安全策略,同时使用 XACML 创建新的安全策略。通过与质量保证团队合作,事实上,您是在将 XACML 流程嵌入您的 SDLC 中,这意味着可以按需同时在应用程序和 XACML 架构中进行修改。这消除了从原有应用程序中删除所有安全策略的需要,并使您能够采取更灵活的方法。然后,您可以决定是否修改原有策略或使用一个新的、可重用的 XACML 策略。

如果您正在考虑使用 IBM® Tivoli® Security Policy Manager 作为一个 XACML 策略编写工具,那么可以使用 IBM® Rational® ClearCase® 和 IBM® Rational Team Concert™ 等软件作为访问控制资产的源控制。Tivoli Security Policy Manager 资产是基于 XML 的,并且可以轻松地存储在任何上述工具中。您可以使用 IBM® Rational® Functional Tester 和 IBM® Rational® Performance Tester 创建自动测试。然后,可以在需要发布新版本产品时自动测试 XACML 脚本的行为。此外,DOORS、RequisitePro 和 Rational Requirements Composer 等工具可以根据 Tivoli Security Policy Manager 资产的需求实现可追溯性。图 1 展示了为某个系统管理非功能性 XACML 需求的 Rational Requirements Composer。

IBM® WebSphere® ILOG 的功能,使业务规则管理系统可以为 Rational Requirements Composer 引擎和 Tivoli Security Policy Manager 产品提供数据,实现高层次的抽象并在整个企业内提高可追溯性。同时使用这些产品,组织不仅可以外部化访问控制,还能够以可重复的、可持续的、自然的方式来完成该项工作,从而适应增长和变化。

图 1. 非功能性需求的 Rational Requirements Composer 视图
HIPAA 需求的屏幕显示

图 1 的大图


应用程序安全

现在,组织往往没有考虑安全性就开始开发应用程序,直到应用程序的开发完成时才想起这件事。这就是“让我们把安全性扔给了墙那边的 IT 安全团队”的典型情景。这种情况下的问题是,在部署之前,才确定所有安全问题,这些问题让开发团队或 IT 安全团队都感到非常头痛。要么是部署存在安全漏洞的产品,要么是推迟应用程序的部署,因为需要经过多次循环,才能通过 SDLC 解决安全风险问题。

很久以前,QA 团队就明白,基于几个原因,质量保证专业人员需要参与软件开发生命周期早期的一些工作。这样做的第一个原因是,在部署导致大麻烦之前就发现质量问题。但是,QA 还发现,在需求收集阶段发现问题要容易得多,并且与在开发人员已经编写出部分代码之后进行修改相比,在需求阶段完成修正更具成本效益。参与 SDLC 的早期工作也很有帮助,可以使质量保证团队可以软件构建之前开始构建测试用例和测试脚本。

安全团队需要做同样的事情,与 QA 团队、系统分析员、开发人员联手全作,帮助系统分析员收集需求,并在软件设计中构建安全设计。IT 安全分析师还需要设计每个阶段需要运行的测试类型。IT 安全专业人士与质量保证团队一起,需要为 IT 安全团队希望执行的每个测试编写测试用例和测试计划。

在过去五年里,黑客已经开始攻击 Web 应用程序,这是因为质量保证团队和 IT 安全团队没有合作,在应用程序中留下了巨大的漏洞。黑客社区的这一行为迫使质量保证和 IT 安全性之间出现了另一个合作点。这里的想法是在软件开发生命周期中更早启动安全测试。质量保证和安全团队将定义开发人员需要遵守的非功能性需求。这些非功能性需求是建设具安全意识的开发团队的基础,QA 团队需要与 IT 安全团队从一开始就联手合作。IT 安全团队与质量保证团队共同携手,帮助建立一个卓越的中心,以便定义标准安全编码实践和安全测试,以及定义程序员的教育水平和安全培训。

道理很简单,更早发现安全漏洞,组织的修复成本就越低,从业务角度考虑,这样做非常有意义。另一方面,等待应用程序部署,或者发现安全漏洞之前已接近部署时间,这些都是糟糕的实践。质量保证团队一直在努力构建安全测试,因为安全测试不同于功能和性能测试。在功能和性能测试中,在测试开始之前,需要先记录预期的结果,而质量保证团队则是负责查看预期结果与实际结果之间的匹配程度。在安全测试中,质量保证团队只关心预期外的结果和对未知情况的测试。IT 安全团队可以帮助 QA 团队构建这些测试。IBM® Rational® AppScan® 安全软件系列产品对于 QA 团队快速开始进入应用程序漏洞测试阶段非常有帮助​​。Rational AppScan 可以针对应用程序运行,并发现应用程序或基础架构级别的安全漏洞。


企业单点登录

如今许多组织已经开始踏上企业单点登录的旅程,原因有二,由于访问数据所需的时间减少,导致成本减少;而在密码管理方面,则提高了安全性。企业单点登录的挑战之一是分析组织内与各种应用配合的客户端。由于登录屏幕的动态性质,企业单一登录 ESSO 客户端可能难以识别 IBM® Tivoli® Access Manager for Enterprise Single Sign-On(TA MESSO)所使用的屏幕和字段。

安全团队可以求助于质量保证自动化团队,让他们来处理更加困难的分析。在许多方面,创建高级分析的过程和创建自动化测试脚本的过程是相似的。使用自动化脚本的质量保证团队对窗口系统的工作方式有更好的理解,所以他们能够对屏幕行为方式提供洞察力。此外,因为自动化软件测试人员每周花费了很多时间来了解应用程序屏幕的行为,所以测试人员可以提供务实的方法来调试复杂的登录屏幕。

此外,可以在故障排除中使用 IBM® Rational® Functional Tester 和 IBM® Rational® Robot 等工具找出屏幕行为有误的原因。在功能测试工具中选择的验证点对于了解特定字段的哪些属性发生了变化非常有帮助。图 2 是一个 Rational Functional Tester 截屏,通过属性验证检查并突出显示正在变化的属性,还显示了重要的登录窗口属性。图 2 中所显示的信息对于安全团队可能是难以理解的,但对于 Rational Functional Tester 这样的工具,却是易于识别的。自动化软件测试工具有许多技巧,如 WinSpy 和其他工具,对于调试不断变化的窗口非常有用。组织可以利用相同的资源执行自动化测试和企业单点登录。

图 2. Rational Functional Tester 属性验证示例
截屏显示 Login(登录)字段信息

图 2 的大图


测试数据管理

在测试中的另一个挑战是非生产环境中的数据安全。如今许多组织都使用生产数据的副本来填充开发和测试阶段的环境。这种实践的问题是,如果在测试和开发环境中加载生产数据,则会在测试和开发区域中暴露社会安全号码和出生日期等个人身份信息 (PII)。在将 PII 加载到非生产系统时,系统必须符合满足 SOX、HIPAA 和 PCI 等所有法规,并承受相同的审计风险及罚款。这种实践使得许多组织无法通过安全审计,并且导致许多罚款。

IT 安全性的另一个交汇点是要帮助质量保证团队构建可重复的流程,将清理过的数据填充到企业的非生产环境中。IT 安全团队需要帮助构建脚本,在数据进入测试和开发环境之前将净化 PII。IT 安全团队可以帮助开发团队构建一个可重复的流程,利用该流程来填充数据并确保所用数据是净化过的数据。

IBM Rational、Information Management 和 Tivoli 软件可以为创建这种环境提供工具级的支持,从而帮助再进一步推进该工作。IBM® Optim™ Integrated Data Management 可以整合到 Rational Quality Manager 产品中,以实现在测试开始之前,将最新的净化数据填充到系统中。该流程还可以帮助质量保证团队,它建立了一个稳定的测试床,以确保应用程序处于让供质量保证团队更容易创建自动化测试脚本的状态。Tivoli® Security Information and Event Manager 也可以用来监测净化过程,帮助确保系统正在加载适当的净化数据,并在该过程中检测到错误时发送警告。


结束语

IT 安全性和质量保证团队需要在应用程序安全、访问管理、企业单点登录、测试数据管理方面合作。这两个业务单元的合作可以使效率呈指数级增长。其结果会是产生一个更加面向安全的质量保证部门,以及一个更加面向质量的 IT 安全部门,这会有助于消除更多风险,提供更好的持续性。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational, Tivoli, WebSphere
ArticleID=801583
ArticleTitle=为什么软件质量保证和 IT 安全需要协作
publish-date=03122012