制作安全的软件应该采取的若干步骤
作者:Colleen Frye 来源:IT专家网 添加时间:2006-5-26 13:40:14其它类型的工具是做统计分析的代码扫描工具,用于检查你的代码本身。他们要做的事情是在开发人员编写代码的时候提供帮助,并且汇编一些代码来发现和清除普通的软件安全瑕疵。我的观点是,如果你没有使用这种工具,你实际上就是在玩忽职守。
问:哪些其它的接触点更容易采用?
McGraw:另一个容易使用的接触点不是为开发人员提供的,而是为软件设计师提供的。这个接触点包括架构风险分析。我们需要让设计师知道他们的架构决策对软件的安全有巨大的影响。因此,他们需要从软件安全的角度考虑问题,使用类似微软STRIDE模型(一种通用安全框架)那样的工具或者我们的架构风险分析接触点,设法了解在某些攻击是如何在他们的架构中实施的。
他们必须要改变自己的想法。但是,软件设计师的工作方式应该允许进行架构风险分析。他们正在制作能够接受检查的正确的作品,而且,我的接触点就是要检查你将制作的作品。
第三个接触点时突破性测试。目前采用的突破性测试的问题之一是人们把这种测试当作是一种错误计量器。这个问题是,突破性测试同人们做这个测试一样有效。因此,如果你仅使用一种刻板的工具,这种测试就不是很高级的。突破性测试是一种最有效的方法,可以帮助你确认你没有把你放入安全软件的环境搞乱。遗憾的是许多人把使用突破性测试当成是安全领域中的一种感觉良好的练习。
另一种测试,也就是第四个接触点,是基于风险的安全测试。我们说,你已经完成了一个风险分析。你可以使用这个分析的结果推动一个有效率的安全测试计划。这个测试计划不仅要测试你的安全机制,而且还要根据软件架构检查你的系统,就像黑客侦察你的漏洞一样。你需要像黑客一样行动并且像黑客一样探索这个软件。
问:这种做法很容易与目前人们的做事方法结合在一起吗?
McGraw:前三种接触点时非常容易的。从那以后就复杂一些,需要做更多的工作。我建议首先从使用工具检查代码开始,随后进行架构风险分析。我认为,这是每一个人目前都应该做的两件事情。因此,如果你只能做两件事的话,就做这两件事吧。
问:另一个更难的接触点是什么?
McGraw:接下来要出现的就是滥用案例开发。(使用和滥用案例开发是接触点5和6)。这意味着知道谁是你的敌人。许多制作软件的人不知道他们有敌人。滥用案例有助于你提前考虑这些可能性。
问:最后一个接触点是什么?
McGraw: 安全操作。这是正常的安全人员都很擅长的事情。这是关于防火墙、环境的问题,是关于用补丁修复你的系统的问题,是关于正确设置入侵检测系统、了解你的敌人、提高警惕实施监视和循环反馈等问题。所有这些东西对于软件的安全都是非常重要的。这个问题就是我们光这样做还不能完全解决这个问题。
问:制定一个成功的安全计划靠什么?
McGraw:你需要把两件事情结合在一起。一个是公司上层的真正的领导。这样,你就会有执行目标、明确的方法和预算。你还需要来自下面的草根的支持,因此你需要让有激情和准备好的开发人员做这个事情。你把这两方面结合在一起,你就会制作出一种非常安全的软件程序。