1.3 解决问题:软件安全的三根支柱
软件安全是一种正在进行的要求文化变革的活动。遗憾的是,并不存在一种能够产生安全的软件的魔术工具或者简单快速的方法。软件安全需要进行大量的工作。这是一个坏消息。好消息是,任何正在开发软件的组织,不论遵循了何种软件开发方法论(如果遵循了某种方法论的话!),遵循本书所展示的方案都能取得明确有效的进展。
软件安全很自然地从软件工程、编程语言和安全工程中借用了大量的内容。软件安全的三根支柱为应用风险管理、软件安全接触点和知识(参见图1-8)。以渐进的方式来同步地应用这三种方法,就能得到合理的、成本效率高的软件安全计划。在本书的其余篇幅中,我将详细地讨论这三根支柱以及它们的组成部分。
图1-8 软件安全的三根支柱:应用风险管理、软件安全接触点和知识。
1.3.1 支柱之一:应用风险管理
没有考虑风险管理的任何关于安全的论述都是不完整的,这种说法也同样适用于软件安全。要在软件安全中采用风险管理方法,就有必要明确在体系结构级上进行的风险分析应用(有时称为威胁建模,threat modeling,或者安全设计分析,security design analysis)和将追踪和减轻风险作为一种贯穿整个生命周期活动的方法之间的差别。体系结构的风险分析是一种最优方法和一种主要的接触点(参见第5章)。但是,在整个软件开发生命周期(SDLC)中,安全风险都可能突然出现;因此,将风险管理作为基本原理的完整方法的一部分也是非常重要的。我把这种基础的方法叫做风险管理框架(RMF,Risk Management Framework)。
风险管理也经常被看成一种“妖术”,即一种有些像算命,也有些像数学的方法。但是,成功的风险管理其实就是一种业务级中的决策支持工具;一种收集必需的数据并基于弱点、威胁、影响和概率的知识作出正确判断的方法。风险管理的历史非常悠久。Dan Geer曾写过一份非常优秀的综述[Geer,1998]。他说要进行有效的软件风险评估,就必须具备在软件设计中应用经典风险分析的能力,以获取减轻风险的精确条件。
第2章将讨论一种RMF,并将实用的风险管理看成一种确认和减轻重复的风险的高级方法,这种方法深入地集成在整个SDLC中。从本质上来说,为解决软件安全问题而实施完整的生命周期风险管理方法是支撑所有软件安全工作的基本方法。其基本思想是,在接触点应用于整个SDLC的过程时,对软件安全风险进行确定、评级、追踪和理解。
第5章讨论体系结构的风险管理。在这一章中,我简要地介绍了一些在设计和建造软件的过程中应用风险分析技术的实用方法。有许多不同的建造方法论,每一种都具有明显的优点和缺点。
| 回书目 上一节 下一节 |