(3)复杂性
影响软件安全的第三个因素是现代信息系统(特别是软件系统)的规模和复杂性毫无节制的增长。一个运行在Winows XP中的桌面系统及其相关的应用程序依赖于内核的正常运转,同时,应用程序应该确保它的弱点不会危害系统的安全。但是,Windows XP本身就至少包含4000万行代码,终端用户的应用程序规模也与此相当,至少不会小于这个数量级。但是,当系统规模如此之大时,缺陷是不可避免的。
下图说明了这些年来Winows的复杂性(按代码行数衡量)是如何增加的。这个图的目的不是要强调数字本身,而是要说明增长速度随着时间的推移而产生的变化。实际上,软件的缺陷的增长速度趋向于岁代码行数的平方而变化。显著影响软件复杂性的其他因素还包括代码集成的紧密程度、补丁与其他部署后所做的修改之间的重叠率,以及严重的体系结构问题。