主页
软件技术
返回
保证软件的安全的最佳做法
来源:名易软件保证软件的安全不需要完全改变你的软件开发生命周期。《SoftwareSecurity:BuildingSecurityIn》(软件安全:内建安全)一书的作者GaryMcGraw日前接受了SearchAppSecurity.com网站的采访,谈了有关软件安全的最佳做法。这些最佳做法能够很容易地添加到你的软件开发生命周期中。

问:你是一个建立安全软件概念的早期宣传者。你认为安全行业取得了什么进步?

McGraw:我们已经取得了很多进步。我对我们这个行业的发展轨迹感到很乐观。最初,我们很难说服任何人相信软件是计算机安全的大问题。现在,每一个人都相信了。后来,我们很难说服人们相信谁能够解决这个问题。现在,每一个人都认识到只有软件人员才能解决这个问题。这两件事情是非常好的趋势。

问:关于在软件开发生命周期中建立安全的事情,这方面有什么进展?

McGraw:你可以把机构按照其特点分为三个成熟的阶段。第一个阶段是人们完全不知道这个问题。在这种机构中,只有一个做软件安全的人。他有3万美元的预算,他负责管理这个大约有2万员工的公司的软件安全。他在设法保证这个机构的软件安全。这种类型的公司非常普遍。

第二个阶段是我称作“软件安全消防队”的地方。这种机构有大约有20至30人负责软件安全问题。他们的工作就是使用工具软件测试代码的性能,并且在人们制作查找软件瑕疵的软件时提供帮助。这是一件好事情,但是,这是一种事后的反应。就像在一个消防队那样,非常重要的事情是教会你的开发人员如何自己处理安全问题,而不是等到发生火灾的时候跑来跑去地救火。

第三个阶段是企业开始在整个开发机构中采用软件安全的最佳做法,使用最佳做法调整软件开发生命周期,就像我在书中介绍的那样。我想,处在这个阶段的机构是极少的。但是,很明显的事情是每一个结构都需要达到这个水平。

问:在你最新出版的《SoftwareSecurity:BuildingSecurityIn》一书中,你写到了软件安全的最佳做法,叫做“接触点”。这种最佳做法能不能在没有较大改变的情况下应用到机构的工作方式中?

McGraw:我曾努力找出不需要你完全改变你的软件开发生命周期的一些做法。软件开发过程就像宗教信仰一样。你最不该做的事就是设法说服人们相信他们首先要做的事情就是改变信仰,然后他们需要增加更多的材料。这些最佳做法是“接触点”的原因是它暗示着光明。无论你信奉什么宗教,这些方法都适用。

问:你的第一个接触点是使用工具审查代码。让我们谈谈这个工具领域的话题吧。

McGraw:目前有两种应用广泛的基本的软件安全工具。安全测试工具能够显示你出了故障。他们用这些刻板的黑匣子进行测试。但是,如果你运行了这些测试并且没有发现问题,那并不意味着你就是安全的。那仅仅是表示你没有发现任何问题。我喜欢把这些工具称作“错误计量器”。我希望每一个人都使用这些工具,因为大多数人都不知道他们陷入了巨大的麻烦之中并且不知道他们的软件需要修复。如果你把这些错误计量器当作安全计量器(其实它们并不是),他们就可能得到一种事情已经完成的假象。

其它类型的工具是做统计分析的代码扫描工具,用于检查你的代码本身。他们要做的事情是在开发人员编写代码的时候提供帮助,并且汇编一些代码来发现和清除普通的软件安全瑕疵。我的观点是,如果你没有使用这种工具,你实际上就是在玩忽职守。

问:哪些其它的接触点更容易采用?

McGraw:另一个容易使用的接触点不是为开发人员提供的,而是为软件设计师提供的。这个接触点包括架构风险分析。我们需要让设计师知道他们的架构决策对软件的安全有巨大的影响。因此,他们需要从软件安全的角度考虑问题,使用类似微软STRIDE模型(一种通用安全框架)那样的工具或者我们的架构风险分析接触点,设法了解在某些攻击是如何在他们的架构中实施的。

他们必须要改变自己的想法。但是,软件设计师的工作方式应该允许进行架构风险分析。他们正在制作能够接受检查的正确的作品,而且,我的接触点就是要检查你将制作的作品。

第三个接触点时突破性测试。目前采用的突破性测试的问题之一是人们把这种测试当作是一种错误计量器。这个问题是,突破性测试同人们做这个测试一样有效。因此,如果你仅使用一种刻板的工具,这种测试就不是很高级的。突破性测试是一种最有效的方法,可以帮助你确认你没有把你放入安全软件的环境搞乱。遗憾的是许多人把使用突破性测试当成是安全领域中的一种感觉良好的练习。

另一种测试,也就是第四个接触点,是基于风险的安全测试。我们说,你已经完成了一个风险分析。你可以使用这个分析的结果推动一个有效率的安全测试计划。这个测试计划不仅要测试你的安全机制,而且还要根据软件架构检查你的系统,就像黑客侦察你的漏洞一样。你需要像黑客一样行动并且像黑客一样探索这个软件。

问:这种做法很容易与目前人们的做事方法结合在一起吗?

McGraw:前三种接触点时非常容易的。从那以后就复杂一些,需要做更多的工作。我建议首先从使用工具检查代码开始,随后进行架构风险分析。我认为,这是每一个人目前都应该做的两件事情。因此,如果你只能做两件事的话,就做这两件事吧。

问:另一个更难的接触点是什么?

McGraw:接下来要出现的就是滥用案例开发。(使用和滥用案例开发是接触点5和6)。这意味着知道谁是你的敌人。许多制作软件的人不知道他们有敌人。滥用案例有助于你提前考虑这些可能性。

问:最后一个接触点是什么?

McGraw:安全操作。这是正常的安全人员都很擅长的事情。这是关于防火墙、环境的问题,是关于用补丁修复你的系统的问题,是关于正确设置入侵检测系统、了解你的敌人、提高警惕实施监视和循环反馈等问题。所有这些东西对于软件的安全都是非常重要的。这个问题就是我们光这样做还不能完全解决这个问题。

问:制定一个成功的安全计划靠什么?

McGraw:你需要把两件事情结合在一起。一个是公司上层的真正的领导。这样,你就会有执行目标、明确的方法和预算。你还需要来自下面的草根的支持,因此你需要让有激情和准备好的开发人员做这个事情。你把这两方面结合在一起,你就会制作出一种非常安全的软件程序。(techtarget)


文档管理软件免费生鲜-蔬果的加工,看起来简单,做起来难!
文档管理软件免费采购-卖场采购者应该掌握的六项基本要务
知识经济下的电子文档管理系统
文档管理软件免费防损-如果您的收银员有这些行为,可要留心了!
文档管理软件免费培训-采购人才必备的几种素质
文档管理软件免费营运-重新发现销售技巧
文档管理软件免费陈列-卖得好的陈列怎么做(六)
电子文档管理系统不是“雾里看花”
信息发布:名易软件http://www.myidp.net