在软件开发生命周期中的安全性

本文介绍了CLASP,一个应用软件安全性过程和对Rational统一过程(RUP)的插件,由Secure Software开发的环境。CLASP提供给组织一种结构化的方法,在软件开发生命周期过程中处理应用软件安全性所关注的事情。

应用程序安全是在软件开发中正在形成的一个重要的需求。严重的品牌破坏,可能的财务损失,以及秘密问题,风险敏感客户--例如金融机构和政府组织--正在寻找方法来评估他们构建或购买的产品的安全情况,并计划最终保证销售商对他们的软件中的安全问题负责任。这个问题进一步加剧了开发的风险,也如同源程序的共享或开放。

最大的独立软件开发商已经开始关注这个问题的严重性。在2002年,微软开始致力于通过它自己的开发过程提高软件的安全性,包括培训和过程的改进。在这件工作开始的两个月,它的整个开发工作都被禁止对任何产品进行变更,除非有特定目的变更改进了安全性。很多其他的销售商,例如Oracle,也采用类似的方式高度重视软件安全性的影响。

本文介绍了CLASP,一个应用软件安全性过程和对Rational统一过程(RUP)的插件,由Secure Software开发的环境。CLASP提供给组织一种结构化的方法,在软件开发生命周期过程中处理应用软件安全性所关注的事情。

安全性的唯一困难

有效地定位软件安全问题是困难的,因为传统的软件开发生命周期(SDLC)并没有很好地处理这些问题。这是因为软件开发者缺乏结构化的指导;很少有比较新的这方面的书籍,他们只有收集最佳实践。

另外,安全性不是一个较普遍的特性。开发组织通常更倾向于关注核心功能属性,然后在开发过程中以一种特殊的方式处理安全性。但是开发者在安全性方面缺乏经验,只会提供服务的最小集。这通常导致了理解安全技术很匮乏。这样通常会导致过分依赖于糟糕的、大家都知道的安全技术。

比如,SSL是为在网络中传输数据提供数据机密性和完整性服务的最流行的方式。然而,大多数SSL部署会受到网络攻击的影响,因为这项技术普遍地都认识不清。特别是,人们倾向于把SSL看成是传统socket的补充,但是当运用这种方法时,关键服务器验证步骤被忽略了。执行合适的验证通常是一个高度复杂的过程。

开发技术是SSL或Java的组织经常对软件的安全性产生失败的感觉。例如,安全软件是一个非正式的Java程序,安全风险显现了出来,平均起来,一旦有千行的代码,就是一个非常大的数量。

对软件安全性的通常的小规模的方法是,组织经过了他们的认可,希望安全性问题将不会再自己出席,将大多数安全问题推延到他们出现时处理,经常是在软件部署之后进行。这就是所谓的被称为“透过和补丁”模型。

当然,当问题找到后,避免安全解决方案就是在软件开发后,增加一个可靠的模型来修复问题。实际上,IBM研究了在不同情况下选择安全问题的代价。





回页首


介绍CLASP

CLASP(Comprehensive, Lightweight Application Security Process)提供了一个组织好的架构。这项技术反映了开发团队六年来处理安全问题的经验,包括Building Secure Software 1 Secure Programming Cookbook。 2

CLASP实际上是一组过程的片断,可以集成到任何软件开发过程。它设计得既高效且容易接受。它采用说明性的手段,证明组织将会采取这样的活动。并且他提供了一个广泛的安全资源,介绍工具用以实现自动过程。

CLASP既可以从一个单独的过程,也可以从RUP环境的一个插件中得到。你可以从http://www.securesoftware.com/CLASP/上找到更多的信息。





回页首


一个以活动为中心的方法

在CLASP的核心有三十个新的活动,他们可以集成到一个软件开发过程。表1列出了这些活动的顺序。这项活动描绘了标准的角色,在最右端列出来。

上方的活动属于项目经理。虽然这些职责没有组成一个及其重要的时间承诺,他们反映了CLASP哲学,即有效的安全性实践需要组织极的买入。例如,建立一个安全性敏感程序,应当要比简单的培训将会直接处理安全性功能的开发人员多。在开发生命周期中列出的每个人,应当接受基本的培训,这样将会使他们理解可以影响业务的宏观级问题。很明显,人民需要理解与安全相关活动相关联的直接成本,对一个已改进安全情况的长期利益也一样。否则,当一个项目开始出现问题时,如果他们没有对核心特性集有一个具体影响,安全性活动将会最先被延迟。


表1:在CLASP的核心有三十个新的活动,可以集成到一个软件开发过程
Table 1: At the core of CLASP are thirty new activities that can be integrated into a software development process.




回页首


在CLASP中新的安全活动

对需求最主要的安全责任是为应用程序定义一个高水平的核心安全模型。例如,需求定义了确定什么资源困难存在风险,潜在的结果。不仅做这些活动解决特定的安全问题,而且他们也定义了一个项目经历能够应用的框架。

大多数安全活动通常绑定了软件的架构和设计。通过将安全性问题做为架构和设计的一部分,构架不仅仅节约了时间和金钱;他还能够将安全问题集中在几个最集中的开发组织。

正如在表1中注明的,一个安全稽查员拥有几个关键的任务,这在CLASP里是一个新的角色。开发团队能够更接近他们自己的系统来分析他们自己的效率。

CLASP在一些关键的传统软件工程活动里有影响,例如需求分析。CLASP从本质上改变了包含在这些活动里的步骤。

CLASP过程也介绍了一些新的活动,这些工件是完全文档化的,支持样例和模板。





回页首


CLASP实施指南

对于那些从来不用正常的方式解决安全问题的组织,CLASP的三十个活动可能看上去是很可怕的。但是,做为RUP的用户会期望,组织不需要执行CLASP定义的所有活动。要减轻负担,CLASP提供了一个实施指南,帮助项目经理来确认是否通过为每个活动提供如下信息来采用特殊的活动:

  • 关于活动适用性的信息例如,当进行公共政府事项,或者当构建了将会使用后端数据库的程序,只有几个活动可应用。
  • 与没有执行活动相关的风险的讨论相对于其他的CLASP活动,它包括了活动的影响。活动提供了很多价值,反之降低了很多组织里可能执行的活动。
  • 指出实施成本根据活动的频率,日历时间,和工时。在很多情况下,活动包括非关键的任务步骤,但能提供更高的保障。另外,资源方面的指南包括指出自动技术的影响。
  • 依赖关系的讨论在不同过程片断之间。

为了更进一步帮助浏览活动,CLASP包含了几个样例路标,集中在公共组织的需求。比如,这里有一个“light”路标,帮助组织查找对已有开发影响最小的过程。此外,还有一个对那些构建构建软件的组织的“C+A”路标,软件将进行标准U.S.的政府证明和委派过程。





回页首


支持工件

CLASP的活动文档能为组织提供一个灵活的框架。然而,有效的执行活动需要很多人都缺乏的安全经验。

安全性资源。CLASP提供了很多资源,支持所有安全的活动。包括了一个扩展的术语表和更多重要概念、原理的详细描述。这里也提供关于弱点的类的详细的信息。很大程度区别于传统的“弱点数据库”。代替的,这里是一个“root cause”数据库,提供了关于潜在问题的详细信息。

Root-cause数据库CLASP root-cause数据库为每一类问题都提供了全面的背景知识。它显示了阐明问题的代码样例,也给出了关于避免、检测和修复问题的详细信息。CLASP将会阶段性的更新以反映研究员可能发现的任何新类。 Root-cause数据库提供了一个对过程其余部分的强大的基础。还有大量的检查单和支持不同的CLASP定义的活动,并且这些检查单会广泛地影响到root-cause数据库。例如,CLASP为开发人员提供了一个安全代码指南的例子。单独的指南对于那些需要详细信息的人,会影响到root-cause数据库。

代码检查工作表CLASP包含一个详细的工作表,它能帮助产生可重复的检查。此工作表不仅仅为安全稽核员提供方法记录一个应用程序的关键数据,它也提供一个检查列表指导检查员通过整个过程。当root-case数据库为发现特殊的弱点提供了详细的指导,代码检查原工作表帮助他确定需要包含哪些root cause

附加的工件。CLASP提供了大量附加的工件来帮助实施,包括:

  • 一个公共安全需求的详细清单,需求指定者可以直接合并到他们的工作,但是安全性的检查单涉及到何时构建新的需求。
  • 构建补充规约环境安全的指南,包括商业规则的例子和一般的约束。
  • 一个应用软件安全情况的调查问卷表,是一个详细的工作表,可以帮助解析出架下的安全性情况的关键信息。对评估技术和如何安全地集成他们是有用的工具,提取关于设计,构建和开发的关键信息,并且常常不是立即可见的。
  • 执行构架安全评估指南(常常被称为威胁模型),包括一个详细的检查单,以及一个将映射到CLASP root-cause数据库的一个公共威胁的数据库。
  • 一个安全测试检查单,覆盖了所有公共的安全测试方法。
  • 一组工具提供了可用工具的指南。集中在开源技术上,而不是检查安全软件的代码保证产品线。
  • 一个可视化表示一个系统属性的指南。CLASP提供了一个简单的符号系统。

来自CLASP过程的支持工件提供了丰富的资源来文档化和评估软件的安全属性,这是向传统软件安全迈出的重要一步。





回页首


CLASP 状态

在十一月十五日,源程序会发布为RUP发布一个CLASP插件,与核心的CLASP过程文档1.0相符。RUP插件可用从IBM开发者网站下载(http://www.ibm.com/developerworks/rational/products/rup)。插件可用为RUP的用户免费使用。

关于CLASP应用程序安全过程的更多信息可以从这里得到:http://www.securesoftware.com/CLASP。





回页首

注释

 

1关于这些服务包的详细信息,例如数据表和价格,请联系你的本地供应商。一般信息可以在以下得到:"http://www-306.ibm.com/software/rational/services/professional/"

2有关IBM Rational技术的CMM/CMMI方面的背景知识,请参见IBM开发者网站的Rational主页:"http://www.ibm.com/developerworks/rational/products/rup/"

3 Barry Boehm,在他的书Software Engineering Economics中,将"diseconomy of scale"定义为,由于一个项目规模的扩大和项目团队成员的数量增加而引起的生产率下降。





回页首


参考文献

Enhanced Telecom Operations Map (eTOM) Version 3.0. The Business Process Framework from the TeleManagement Forum Consortium (在http://www.tmforum.com中可得到)

Walker Royce. "Improving Software Development Economics Part I: Current Trends." The Rational Edge, April 2001.

Tom Peters. Thriving on Chaos: Handbook for a Management Revolution. HarperPerennial: 1991

Barry Boehm et al. Software Cost Estimation with Cocomo II. Prentice Hall PTR: 2000

John P. Kotter. Leading Change. Harvard Business School Press: 1996

1John Viega 和 Gary McGrawBuilding Secure Software: How to Avoid Security Problems the Right Way,Addison-Wesley: 2001。

2John Viega 和 Matt Messier,Secure Programming Cookbook for C and C++,O’Reilly: 2003。



关于作者

Author photo

John Viega 是国际上公认的在软件安全方面的领导者和专家。在这个领域已有三本著作,包括构建安全软件(Addison Wesley, 2001),开放SSL的网络安全(O'Reilly,2002)和安全过程指南(O'Reilly, July 2003)。做为CTO,John为安全软件的核心过程和安全分析的规则负责。他也致力于提高开发者的安全经验,在这个主题上做了大量的演讲。

http://www.ibm.com/developerworks/cn/rational/rationaledge/content/jan05/viega/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值