软件安全性浅析[2] 软件测试
评审和评价:
管理者应对安全性分析及其输出的软件产品进行评价,以便使软件安全性分析达到目标,完成计划。
结束(收尾阶段):管理者应根据合同或任务书中的准则,确定软件安全性分析的是否完成,并应核查软件安全性分析中产生的软件产品和记录是否完整。
上文将软件安全分析在一个典型的项目中各个阶段所要做的工作做了一个总结,每个阶段都有侧重的工作重点。我们在实际工作中,应调动所有有关人员,努力完成各阶段的任务。
三、 软件安全性分析的任务
根据上面所总结的各阶段需要做的安全分析重点,可以相应地总结出以下七种需要做的分析工作。在这里为抛砖引玉,再对相应的应用分析技术作一些介绍:
1. 软件需求安全性分析——对分配给软件的系统级安全性需求进行分析
做软件需求安全性分析需要对分配给软件的系统级安全性需求进行分析,规定软件的安全性需求,保证规定必要的软件安全功能和软件安全完整性。
评测人员需要根据软件安全性分析准备的结果和系统的初步结构设计文档,包括系统分配的软件需求、接口需求,完成对系统安全性需求的映射,以安全相关性分析和对软件需求的安全性评价。有了这些积累,评测人员才有把握对软件在系统中的安全性需求作出一个综合性的评价,更好地提交对后续的软件设计和测试的建议。
2. 软件结构设计安全性分析——评价结构设计的安全性,以保证软件安全功能的完整性
从安全角度讲,软件结构设计是制定软件基本安全性策略的阶段,因为这一阶段负责定义主要软件部件,以及它们如何交互,如何获得所要求的属性,特别是安全完整性,是软件安全性需求在结构定义中实现的阶段。对结构设计进行安全性分析要做到将全部软件安全性需求综合到软件的体系结构设计中,确定结构中与安全性相关的部分,并评价结构设计的安全性。
结构设计是开发人员对系统期望功能和功能实现方式的表示方法,但是沟通的一致性,和设计的合理性,通常会影响到安全完整性,这里可以借助一些技术来验证:用动画/仿真技术证实功能的实现状态;借助接口分析技术分析安全相关部件与其他部件的相互依赖关系和独立性。等等。
3. 软件编程安全性分析——选择合适的编程语言
所有编程语言无论在其定义还是在其实现中都有其不安全性。这通常汇号称程序员对语言的误用,而对这些误解,一些相对开放的语言又缺乏相应的解释。现举例如下:
a) 未初始化的变量。
除非进行特别的检查,否则单元测试不会发现他们。而这将导致,一个程序在不同的环境下虽然运行成功,但运行结果却不是期望值。
文章来源于领测软件测试网 https://www.ltesting.net/