一种安全攸关系统的软件安全性保证的实现方法

xiaoxiao2020-7-22  8

一种安全攸关系统的软件安全性保证的实现方法
【专利摘要】一种安全攸关系统的软件安全性保证的实现方法,(1)定义系统的软件安全设计要求,包括软件需求阶段安全性设计要求、软件设计阶段安全性设计要求、软件编码阶段安全性设计要求、软件测试阶段安全性设计要求;(2)根据软件安全性等级,对(1)中的安全性设计要求进行裁剪,并按各项要求实施软件需求、软件设计、软件编码、软件测试的安全性设计;(3)获取软件安全证据,判断安全证据是否满足(2)中各项安全性设计要求;(4)获取系统的软件安全性风险规避措施;(5)验证软件安全性风险规避措施是否可追踪到软件需求、软件设计、软件编码、软件测试。本发明提升了软件安全性保障能力,填补了航天重大工程软件安全性保证的技术空白。
【专利说明】一种安全攸关系统的软件安全性保证的实现方法
【技术领域】
[0001]本发明涉及软件安全性【技术领域】,特别是涉及一种安全攸关系统的软件安全性实现方法。
【背景技术】
[0002]软件安全性software safety是“软件运行不引起系统事故的能力”(引自《GJB/Z102A-2012军用软件安全性设计指南》)。软件的安全性直接会影响到系统的安全性,保障软件的安全是确保系统安全的关键环节。
[0003]美国军方1971年推出MIL-STD-882A “系统安全性大纲”,1984年做了修订,推出了 MIL-STD-882B,其最大的特点就是提出了软件安全性的问题,增添了软件风险分析的有关工作,之后又在1993年推出了 MIL-STD-882C,2000年又进行了修订,完成了MIL-STD-882D。2005年形成第五版,即MIL-STD-882E。美国航空航天局NASA很早就重视系统的安全性及软件的安全性,制定了多项标准及配套的技术指南。1997年发布了自己的软件安全性技术标准NASA-STD-8719.13A《软件安全性指南》,并于2004年进行了更新,形成NASA-STD-8719.13B,充分说明NASA对软件安全在飞行任务中的重要性的认识。他们在软件安全性标准中定义软件安全性是“在整个软件生命周期,运用系统安全性工程技术来确保软件采用提高系统安全性的有效措施,并确保那些可能降低系统安全性的错误均已被排除,或控制在可接受的风险水平”,同时定义系统安全性为“在系统生命周期各阶段运用工程和管理原理、准则和技术,以便在使用效率、时间和费用的约束范围内使安全性最优,并且风险降低”。
[0004]我国的GJB-900 (1991) “系统安全性通用大纲”把软件的安全性分析作为系统的安全性分析的重要内容。GJB/Z102-97《软件可靠性和安全性设计准则》中定义软件安全性是“软件运行不引起系统事故的能力”。GJB142-2004《军用软件安全性分析指南》中定义软件安全性为“软件具有的不导致事故发生的能力。但是这些标准中都还缺乏对安全性实现技术的完整介绍,以及安全性分析技术的具体规定。
[0005]在国内研究领域,1992年航天204所的王纬针对航天系统的特点,提出需要重点关注软件的安全性问题,并简要介绍了软件安全性工程需要解决的基本问题。也有专家通过建立时间条件状态的Petri网,借助Petri网的状态可达空间分析来研究软件的安全性问题。电子科技大学的杨仕平使用贝叶斯函数动态地表示软件失效率的密度函数,提出了一种增量记忆型的安全性测试方法。同济大学计算机系的郦萌等人、信息与控制工程系的吴芳美等人也对软件安全性的评估及测试方法做了一些卓有成效的研究工作。
[0006]在航天领域,921工程的《软件安全性分析与设计》(2002.1)己经提出了初步的安全性总体技术指导框架。它从软件安全性的要求、设计、分析以及检查这几个方面,对软件生命周期的各阶段的各项工作做了初步的论述。其中还列举出了一些供参考使用的安全性设计方法,但是还缺乏对实际工作如何开展,以及开展过程中的如何评估的明确指导。
[0007]目前国内外软件安全性研究的大体现状是:虽然提出了软件安全性纲领,但缺乏具体的实现过程和方法,只是停留在知识的概述和理论。针对军事和航空航天领域众多的安全关键软件的安全性分析评估,尤其是对重点型号系统而言,缺乏具体的框架和方法指导。因此,有必要在现有工作成果的基础上,继续做深入的研究,针对安全关键性软件的特点,提出一套相对完整的评估方法,支撑对软件安全性的分析评估工作。

【发明内容】

[0008]本发明的技术解决问题是:针对现有技术的不足,提供了一种安全攸关系统的软件安全性实现方法,通过系统的开展软件风险分析、软件安全风险验证等过程,具体实现了软件安全性的保证。
[0009]本发明的技术解决方案是:
[0010]一种安全攸关系统的软件安全性保证的实现方法,包括步骤如下:
[0011]步骤一、定义系统的软件安全设计要求集合四元组SD = 0?,00,^,了0),其中所述的RD是软件需求阶段安全性设计要求,RD = {性能需求安全性设计要求,功能需求安全性设计要求,数据需求安全性设计要求、接口需求安全性设计要求};
[0012]所述DD是软件设计阶段安全性设计要求,DD = {逻辑设计安全性设计要求,数据设计安全性设计要求,接口设计安全性设计要求,中断设计安全性设计要求,冗余设计安全性设计要求,查错设计安全性设计要求,改错设计安全性设计要求,容错设计安全性设计要求,指针设计安全性设计要求};
[0013]所述⑶是软件编码阶段安全性设计要求,⑶={代码数据安全性设计要求,代码接口安全性设计要求,代码中断安全性设计要求,代码逻辑安全性设计要求,资源使用安全性设计要求};
[0014]所述TD是软件测试阶段安全性设计要求,TD = {安全性测试的覆盖性要求、安全性测试的充分性要求};
[0015]步骤二、在软件需求、软件设计、软件编码、软件测试过程中,对于软件安全性等级为A、B级的软件,软件需求、软件设计、软件编码、软件测试过程中的安全性要求应满足步骤(一)中RD、DD、⑶、TD集合中的各项安全性要求;对于软件安全性等级为C、D级软件,可根据实际情况部分满足对RD、DD、CD、TD集合中的安全性要求,并根据RD、DD、CD、TD集合中各项要求实施软件需求、软件设计、软件编码、软件测试的安全性设计;
[0016]步骤三、软件安全性验证;所述的软件安全性验证具体步骤如下:
[0017](I)获取安全证据集合ES,ES表示软件需求、软件设计、软件编码、软件测试各阶段所完成的安全性设计工作,ES = (RE, DE, CE, TE),其中RE是软件需求阶段证据,DE是软件设计阶段证据,CE是软件开发阶段证据,TE是软件测试阶段证据。
[0018]RE = {性能需求安全性证据项,功能需求安全性证据项,数据需求安全性证据项、接口需求安全性证据项};
[0019]DE = {逻辑设计安全性证据项,数据设计安全性证据项,接口设计安全性证据项,中断设计安全性证据项,冗余设计安全性证据项,查错设计安全性证据项,改错设计安全性证据项,容错设计安全性证据项,指针设计安全性证据项};
[0020]CE = {代码数据安全性证据项,代码接口安全性证据项,代码中断安全性证据项,代码逻辑安全性证据项,资源使用安全性证据项};[0021]TE = {安全性测试的覆盖性证据项、安全性测试的充分性证据项};
[0022](2)判断安全证据是否满足步骤(二)中RD、DD、⑶、TD集合中的各项安全性要求,若满足说明软件需求、软件设计、软件编码、软件测试满足安全性要求进入步骤(四),否则重新修改软件需求、软件设计、软件编码、软件测试的安全性设计直至满足并进入步骤(四);;
[0023]步骤四、获取系统的软件安全性风险规避措施,所述软件安全性风险规避措施的获取步骤如下:
[0024](I)获取系统级危险事件;通过应用PHA(初步危险分析)完成系统级危险分析,获取系统级危险事件集SysHESet ;
[0025](2)获取系统中的单机危险事件;将系统级危险事件集SysHESet中的危险事件作为顶事件,并通过FTA (故障树分析)获取单机危险事件集CHESet ;
[0026](3)获取单机中的软件配置项危险事件;通过HSIA(硬软件接口)获得软件失效模式,进而获取单机中的软件配置项危险事件集SCHESet (软件失效模式组成危险事件集);
[0027](4)进行软件配置项风险分析;软件配置项风险分析具体步骤如下:基于危险事件发生的严重程度和软件控制分类,通过风险评价矩阵确定软件配置项危险事件集SCHESet中各危险事件的风险指数;
[0028]所述的风险指数表示软件的安全性关键级别,指数值越小代表该软件引发的风险越闻,其安全性关键等级就越闻;
[0029]所述的风险评价矩阵如下表所示:
[0030]
【权利要求】
1.一种安全攸关系统的软件安全性保证的实现方法,其特征在于步骤如下: 步骤一、定义系统的软件安全设计要求集合四元组SD = (RD, DD,⑶,TD),其中所述的RD是软件需求阶段安全性设计要求,RD= {性能需求安全性设计要求,功能需求安全性设计要求,数据需求安全性设计要求、接口需求安全性设计要求}; 所述DD是软件设计阶段安全性设计要求,DD = {逻辑设计安全性设计要求,数据设计安全性设计要求,接口设计安全性设计要求,中断设计安全性设计要求,冗余设计安全性设计要求,查错设计安全性设计要求,改错设计安全性设计要求,容错设计安全性设计要求,指针设计安全性设计要求}; 所述CD是软件编码阶段安全性设计要求,CD = {代码数据安全性设计要求,代码接口安全性设计要求,代码中断安全性设计要求,代码逻辑安全性设计要求,资源使用安全性设计要求}; 所述TD是软件测试阶段安全性设计要求,TD = {安全性测试的覆盖性要求、安全性测试的充分性要求}; 步骤二、在软件需求、软件设计、软件编码、软件测试过程中,对于软件安全性等级为A、B级的软件,软件需求、软件设计、软件编码、软件测试过程中的安全性要求应满足步骤(一)中RD、DD、⑶、TD集合中的各项安全性要求;对于软件安全性等级为C、D级软件,可根据实际情况部分满足对RD、DD、CD、TD集合中的安全性要求,并根据RD、DD、CD、TD集合中各项要求实施软件需求、软件设计、软件编码、软件测试的安全性设计; 步骤三、软件安全性验证;所述的软件安全性验证具体步骤如下: (1)获取安全证据集合ES,ES表示软件需求、软件设计、软件编码、软件测试各阶段所完成的安全性设计工作,ES = (RE, DE, CE, TE),其中RE是软件需求阶段证据,DE是软件设计阶段证据,CE是软件开发阶段证据,TE是软件测试阶段证据; RE = {性能需求安全性证据项,功能需求安全性证据项,数据需求安全性证据项、接口需求安全性证据项}; DE = {逻辑设计安全性证据项,数据设计安全性证据项,接口设计安全性证据项,中断设计安全性证据项,冗余设计安全性证据项,查错设计安全性证据项,改错设计安全性证据项,容错设计安全性证据项,指针设计安全性证据项}; CE = {代码数据安全性证据项,代码接口安全性证据项,代码中断安全性证据项,代码逻辑安全性证据项,资源使用安全性证据项}; TE = {安全性测试的覆盖性证据项、安全性测试的充分性证据项}; (2)判断安全证据是否满足步骤(二)中RD、DD、⑶、TD集合中的各项安全性要求,若满足说明软件需求、软件设计、软件编码、软件测试满足安全性要求进入步骤(四),否则重新修改软件需求、软件设计、软件编码、软件测试的安全性设计直至满足并进入步骤(四); 步骤四、获取系统的软件安全性风险规避措施,所述软件安全性风险规避措施的获取步骤如下: (1)获取系统级危险事件;通过应用PHA(初步危险分析)完成系统级危险分析,获取系统级危险事件集SysHESet ; (2)获取系统中的单机危险事件;将系统级危险事件集SysHESet中的危险事件作为顶事件,并通过FTA (故障树分析)获取单机危险事件集CHESet ;(3)获取单机中的软件配置项危险事件;通过HSIA(硬软件接口)获得软件失效模式,进而获取单机中的软件配置项危险事件集SCHESet (软件失效模式组成危险事件集); (4)进行软件配置项风险分析;软件配置项风险分析具体步骤如下:基于危险事件发生的严重程度和软件控制分类,通过风险评价矩阵确定软件配置项危险事件集SCHESet中各危险事件的风险指数; 所述的风险指数表示软件的安全性关键级别,指数值越小代表该软件引发的风险越闻,其安全性关键等级就越闻; 所述的风险评价矩阵如下表所示:
【文档编号】G06F11/36GK103955427SQ201410178300
【公开日】2014年7月30日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】赵文波, 庞涪川, 张伟, 经小川, 詹海潭, 高金梁, 张玮, 海卫华 申请人:探月与航天工程中心, 北京信息控制研究所

最新回复(0)