软件系统工程安全管理及测试分析

时间:2022-09-16 05:53:43

软件系统工程安全管理及测试分析

【摘 要】软件系统的安全是一项复杂的系统工程,它的实现不仅是纯粹的技术方面的问题,而且需要法律、管理和社会因素的配合。本文侧重讨论安全管理分析和设计准则。除了在正常状态下进行测试,还要在异常的环境和异常的输入状态下测试软件,确保软件在这些状态下仍能安全运行;进行软件强度测试,确保软件安全运行,确保外购软件安全运行。

【关键词】软件工程;系统管理;安全测试

1、软件系统的安全性工作

软件系统的安全性工作主要归结为如下9项:

①确定系统及系统中软件的安全性要求;②系统安全性说明中的要求准确地转化为系统或系统说明的要求、转化为软件需求说明的要求,并将这些要求在软件设计及编码中实现;③在系统、分系统说明及软件需求说明中确定当可能发生安全事故时的系统对策,这些对策包括失效安全、失效降级使用、失效容错使用等;④确定软件系统中的安全关键单元,安全关键单元是指那些对系统安全性有关键性影响的程序、分程序和模块;⑤对软件的安全关键单元进行分析;⑥通过分析、验证,确保软件系统安全性要求的实现,验证不存在有损于安全性的单个或多个失效事件,保证系缉的安全性要求不致引起新的危险;⑦确保编出的程序不会因为触发危险功能,或阻碍正常的功能的执行而使系统处于危险状态;⑧保证系统中的软件能有效地减少硬件的安全风险;⑨保证对系统进行充分的安全测试,包括失效事件发生的测试。

2、软件系统安全性分析项目

软件系统的安全性分析是整个系统安全性分析的一个组成部分,系统安全性分析的工作项目包括制定初步危险表、初步危险分析、子系统危险分析、系统危险分析、使用保障危险分析、职业健康危险分析和工程更改建议的安全性评审等。软件安全性分析必须利用整个系统安全性分析的结果,并安排在系统安全性分析之后进行。

2.1软件需求危险分析

软件需求危险分析是利用系统初步危险分析的结果,初步确定软件的安全关键单元。这个项目的工作要点是:

①建立软件安全典型需求的跟踪系统,记录每个需求的实现情况;②从安全性的角度评审系统说明和分系统说明、评审软件需求说明、接口说明,以及其他有关系统方案和要求等文件;③将系统安全性要求分配到软件;④由系统的初步危险导出软件的危险;⑤分析功能流程图、编程语言、数据流图、存储和时序分配图表及其他的程序文档,以确保满足安全性的要求。

2.2概要设计危险分析

概要设计危险分析在软件需求说明评审后开始,是软件需求危险分析的深人和继续。分析的结果提交给初步设计评审,作为初步设计评审的内容。这个工作项目的要点是:

①从软件的危险表出发,分析其中的危险事件与软件的组成单元的关系,将与这些危险事件有关的软件单元确定为软件安全关键单元;②检查软件,确定软件的各个单元、模块、表、变量之间是否相关,确定其相关的程度,凡是对软件安全关键单元有直接和间接影响的其他单元,也要确定为软件安全关键单元,并且分析它们对安全的影响;③分析软件安全关键单元的概要设计是否符合安全性的要求,分析的结果应送交软件设计人员和项目主管。

2.3详细设计危险分析

详细设计危险分析安排在初步设计评审之后进行,它是概要设计危险分析的深入和继续。详细设计危险分析应在软件编码之前完成,分析的结果提交给关键设计评审,作为关键设计评审的内容。这个项目的工作要点是:

①根据需求危险分析、概要设计危险分析确定的危险事件,分析这些事件与低层次的软件单元的关系,将对危险事件有影响的单元确定为软件安全关键单元,分析这些单元对危险事件影响的方式和途径;②在低结构层次上考察软件的各个单元、模块、表、变量之间的相关程度,将直接和间接影响软件安全关键单元的其他单元确定为安全单元,分析它们对安全的影响;③分析软件安全关键单元的详细设计是否符合安全性设计的要求,分析的结果应送交软件设计人员和项目主管;④确定在测试计划、说明和规程中需要包含的安全性要求;⑤确定在系统操作员手册、软件用户手册、系统诊断手册及其他手册中需要包含的安全性要求;⑥确保编程人员了解安全关键单元,向编程人员提供有关安全性的编程建议和要求。

2.4软件编程危险分析

这项分析是用来考察软件的安全关键单元以及其他单元的源程序和目标程序是否实现了安全性设计的要求。这项工作应与编程同时进行,应该按照安全性设计的要求不断修改程序,一直持续到测试完成,分析确定危险事件发生的可能性所降低的程度≥分析人员还应参加程序的走查和评审。这个项目的工作要点是:

①考察软件安全关键单元的正确性,考察它们对输入或输出时序、多重事件、错误事件、失序事件、恶劣环境、死锁及输人数据错误的敏感性;②考察程序、模块或单元中是否存在影响安全性的编程错误;③考察安全关键单元是否符合系统说明、分系统说明和软件需求说明中提出的安全性对策。这种考察必须在源程序和目标程序中进行;④考察软件安全关键单元的安全性设计要求的实现情况,确保达到所要求的目标,确保硬件和其他模块的失效不致影响软件的安全性特征;⑤使系统在危险状态下运行,并考察硬件或软件失效、单个或多重事件、失序事件、程序的非正常转移对安全性的影响;⑥考察超界、过载输人对安全性的影响;⑦评审正在制订的软件文档,确保这些文档包含了软件的安全性的要求。

3、软件安全性测试

这个项目的工作要点是:

①对安全关键单元进行安全性测试,保证使危险事件发生的可能性降低到可以接受的水平;②向测试人员提供软件安全关键单元的安全性测试案例;③确保所有的软件安全关键单元按预定的测试方案进行安全性测试,准确地记录测试结果;④除了在正常状态下进行测试,还要在异常的环境和异常的输入状态下测试软件,确保软件在这些状态下仍能安全运行;⑤进行软件强度测试,确保软件安全运行;⑥确保外购软件安全运行;⑦订购方所提供的软件,不管是否进行了修改,都需要进行测试,以保证这些软件在系统中安全运行;⑧确保在系统综合测试和系统验收测试中所发现的危险事件已经得到纠正,确保对这些事件进行了重新测试,没有遗留问题。

参考文献

[1]贾晶,陈元,王丽娜编著.信息系统的安全与保密[M].北京.清华大学出版社.1999

[2]李代平编著.软件工程[M].北京.冶金工业出版社.2002

上一篇:浅议建筑工程全过程造价控制理论 下一篇:中小企业财务管理模式存在的问题及对策