GJB5000B提出了软件安全性需求开发的要求,而要实施好软件安全性需求开发,首先需要对软件安全性需求的定义有更为清晰、准确的理解。
在GJB438C《系统规格说明》中对安全性需求是这样描述的:
有关防止对人员、财产、环境产生意外危险或者把此类危险降至最低的系统需求。其中包括:危险物品使用的限制;为运输、处理和存储的目的而对爆炸物进行分类;异常中止/异常出口的规定;气体检测和报警设备;电力系统接地;排污;防爆等。
这是站在系统/设备的角度考虑各种常见的危险因素,由此引出的系统安全性需求。
在GJB438C《软件需求规格说明》中对安全性需求是这样描述的:
关于防止或尽可能降低对人员、财产、环境产生意外危险的CSCI需求。例子包括:CSCI必须采取安全措施,以便防止意外动作或无动作。
这是站在软件的角度考虑由于某些功能无法正常运行而造成意外危险,由此引出的软件安全性需求。
除此之外,我们还可以从软件安全性属性来分析软件的安全性需求。
软件安全性的核心安全属性包括保密性、完整性和可用性。
简而言之,软件的核心安全属性就是确保授权用户可以正常使用,未得到授权的用户无法使用(至少核心功能不能使用)。特别是对于军用软件来说,未经授权的非法使用软件,就可能对他人造成巨大的危险。
所以,开发软件的安全性需求,可以从系统可能带来的意外危险因素引出系统安全性需求,再将系统安全性需求分解到软件功能,引出软件的安全性需求;此外,还应考虑这些功能授权用户的正常使用以及杜绝非法用户的使用。