软件安全保障体系架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

PREFACE
前言

软件规模的不断扩大,导致软件的开发、集成和维护日益复杂,与此同时,与软件安全相关的理论研究还远未成熟,软件开发还依赖于科学、实践和艺术的结合,因此,软件缺陷和漏洞无法避免;而计算机网络的迅速发展,软件运行环境的开放性、动态性、复杂性等问题日益突出,又使软件面临着严重的外部威胁,所以,构建一个安全的系统成为目前软件安全应用的当务之急。

在现实世界中,几乎没有一个软件能够证明其在任何时候都是安全的。虽然软件开发商经常会在其开发的系统上冠以“安全”的名字,以表明系统中有或多或少的安全性,但人们对于开发商所声称的“安全”往往是抱有疑问的。

对软件的信任应建立在系统的设计、实现和维护真正满足了安全需求的基础之上。对于“信任”,最直观的理解是,软件能够有效地保护资源,可以抵御预期的威胁。为了确定软件可信任的程度,需要使用一些方法和尺度,即软件安全保障。

软件安全保障是对软件满足安全需求的信心。该信心是建立在软件开发商所提供的证据基础上的,证据可以通过使用多种多样的保障技术和措施而获得,包括需求的正确性及设计、实现和维护的有效性等相关证据。这些证据可以是简单的,也可以是复杂和细粒度化的。

本书主要阐述软件安全保障相关的原理和技术,简单介绍软件安全与信息安全、硬件安全、系统安全的关系,并详细介绍软件安全开发生命周期过程中需要考虑的安全要素,包括安全需求、安全设计原则、安全编码、安全测试、安全交付和维护等。这些安全要素是目前公认的提高软件安全保障水平的有效技术措施,也是通用评估准则(CC)中安全保障组件的核心内容。本书旨在阐明软件安全保障的原则和思路,帮助软件开发人员和评估人员更好地理解通用评估准则中的安全保障要求,为软件安全开发提供有益参考。由于软件技术本身在快速发展,人们对软件安全的认知也在不断深入,因此,本书无法完全罗列软件安全相关的所有保障要素。

尽管通过反复讨论修改,但限于编者水平和其他客观条件限制,本书难免存在不足和有待商榷之处,敬请广大读者批评指正。

编者