如何开发软件安全性需求?
开发软件安全性需求,或者说软件的安全性需求分析,在实践中的常用方法有误用用例、滥用用例、威胁建模、经验总结和威胁分析等5种。
对于军用软件安全需求开发来说,可以从滥用用例、威胁建模、经验总结等方法中汲取经验,进行借鉴。
-
滥用用例
所谓滥用用例,是指人为故意或无意使用软件的某些功能,给软件乃至设备带来安全风险。
为了更好地理解滥用用例,可以想像一下偷车者与车主间的博弈过程:偷车者发现车主没有关好车门,可以很轻松地把车开走;偷车者可以破窗撬锁等方式破坏车门,将车偷走。偷车者的行为就是一种滥用用例。进行安全需求分析时,要从偷车者的滥用用例进行分析,并找出应对措施,比如:
| 偷车者的滥用用例 | 应对措施 |
|---|---|
| 偷车 | 锁车 |
| 破坏车门 | 锁变速器 |
-
威胁建模
威胁建模是微软SDL(安全开发生命周期)所使用的安全需求分析方法,威胁建模的⼀般流程为绘制数据流图、识别威胁、提出缓解措施、安全验证。
该⽅法将识别的威胁类型分为Spoofing(仿冒)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄漏)、Denial of Service(拒绝服务)和 Elevation of Privilege(权限提升)等6种。
-
经验总结
IBM公司在其软件安全开发过程中,总结了9类安全需求,分别是:
-
审计和日志记录。IBM要求软件对其保密性、可用性、完整性等安全属性的相关事件在内部日志记录。
-
身份验证。IBM要求大部分软件应具备访问控制限制,确保授权的访问不能被破解,非授权用户不能进行操作。
-
会话管理。IBM要求合法的用户可以正常会话,远程会话应加以监控和限制。
-
输入验证和输出编码。IBM要求所有用户提供的数据都应通过适当的验证。
-
异常处理。因为隐藏详细的异常可以延长恶意攻击的时间,所以IBM要求软件能将异常信息捕获,记录在安全设计日志中。
-
加密技术。使用满足业务需要的加密算法。
-
存储数据。关键/敏感的数据应加密处理。
-
使用数据。对传输的数据应进行加密。
-
配置管理。确保使用正确的、满足安全要求的版本。
对于军用软件,也可以按照领域总结软件的安全需求。GJB5000B三级要求分析领域软件的共性需求,不妨从共性的安全需求开始。
当然,除了借鉴以上方法之外,《军用软件安全性分析指南》也给出来军用软件的安全分析方法——分析系统的危险源,危险的系统分配,系统安全需求的软件分配,使用层次分析、控制流分析等技术确定软件的安全性需求。
这正是:
安全分析有方法,军软分析可借鉴
滥用用例和建模,也可既往做总结
参考书目:软件安全开发,作者:吴世忠 李斌 张晓菲 梁洪亮,出版社:机械工业出版社
夜雨聆风
