工件:代码
发现的风险的例子:在代码的第42行中发现缓冲区溢出
 
    所有的软件都会至少产生一种工件——代码。这个事实使得代码审核成为我们的清单的第一个条目。在代码级中,关注的焦点是实现缺陷,特别是那些静态分析工具就更是如此,它们通过扫描源代码能发现一般的弱点。在第12章中可以找到这些缺陷的一种分类法。现在有多个工具供应商涉足这个领域。代码审核是一种实现安全的软件的必要而不充分的方法。安全缺陷(特别是在C和C++中的安全缺陷)是显而易见的,而体系结构瑕疵则是真正棘手的问题。在第4章中,你将学习如何用静态分析工具来进行代码审核。
    单独进行代码审核是一种特别有用的方法,但是,由于这种类型的审核只能确定缺陷,因此,即使是最好的代码审核也只能发现大约50%的安全问题。仅仅盯着代码是很难(并且几乎是不可能)发现体系结构问题的。现代的系统都由数百万行代码构成,这种方法就更不能奏效了。实现软件安全的完整方法是包括代码审核和体系结构分析的有机组合。
 
本文节选自电子工业出版社2008年4月出版的 《软件安全——使安全成为软件开发必需的部分》