掌桥专利:专业的专利平台
掌桥专利
首页

一种高度综合化复杂软件安全性分析方法

文献发布时间:2023-06-19 11:39:06


一种高度综合化复杂软件安全性分析方法

技术领域

本发明属于软件安全技术领域,具体是指一种高度综合化复杂软件安全性分析方法。

背景技术

软件是各类装备系统的重要组成部分,通过与系统硬件结合,完成各种计算、处理和控制任务,对充分利用硬件设备性能,保证装备的功能、安全性、可靠性具有至关重要作用。伴随装备信息化、现代化的快速推进,装备中软件的使用范围、规模、综合化程度、安全性要求等发生了很大的变化,正逐步成为高度综合化复杂软件。“高度综合”指软件用于完成或提供多重功能,“复杂”指软件的规模在一定的量级以上,并且软件功能及安全性等属性不可能仅通过单一的软件测试证明。

软件安全性是软件产品应具有的不会导致人员伤亡、系统毁坏、重大财产损失或不危及人员健康和环境的能力。作为装备系统重要组成要素,软件不会直接危及生命、财产和环境等安全,但借助软件实现的人机交互却可能因为软件失效而造成人员误操作从而形成危险,对于没有人机交互界面的嵌入式系统,也可能因为软件错误地控制系统而造成灾难性后果。

目前针对高度综合化复杂软件的安全性分析方法主要可分成基于软件本体和基于系统的安全性分析方法两大类。基于软件本体的安全性分析方法的典型思路是必须采用软件工程化方法,确保软件严格按照工程化方法开发,通常采用软件容错、容失效、故障树分析等方法来减少软件失效的概率。然而仅从软件本体出发并不能完全解决安全性问题,例如即便软件不会失效,也可能向系统发送不合适指令导致装备毁坏。软件安全性问题涉及软件、软件所驻留的系统、使用人员、外部环境、时间等复杂因素,软件安全性问题之所以发生,是因为软件触发了系统脆弱性,即系统需求或设计缺陷,而使系统转向不安全的状态。因此软件安全性脱离不开系统,必须从更高的系统层面对其安全性进行分析。

基于系统的安全性分析方法是通过故障树、功能危害分析、马尔可夫分析等技术手段定位系统脆弱性所在,来解决单点故障和可预见的组合故障带来的安全性问题。然而高度综合化复杂软件的密集化程度和系统构件之间的交互过于复杂,导致系统脆弱性难以完全定位和预测。若仅在系统层面进行安全性分析会造成系统反复迭代,极大增加软件和系统的开发成本。同时也忽略了软件本身的独立性和软件内部要素之间的交互,使得分析不充分。

发明内容

为解决上述现有难题,本发明提供了一种采用民机ARP4754A、ARP4761标准中的方法进行系统安全性分析,获取系统安全性需求;将系统安全性需求分配至软件,并设计架构逐层分析至软件代码层次;针对软件内部要素,将软件作为一个系统进行安全性分析;基于DO-178C标准以严格的开发过程保证软件安全性需求的实现的高度综合化复杂软件安全性分析方法。

本发明采用的技术方案如下:一种高度综合化复杂软件安全性分析方法,包括以下步骤:

1)采用民机适航标准ARP4754A、ARP4761中的方法进行系统安全性分析,识别系统安全性需求;

2)将系统安全性需求分配至软件,确定软件安全性需求;

3)从代码层次对软件内部要素进行安全性分析;

4)采用DO-178C中的方法进行软件集成和验证:基于DO-178C标准进行软件集成和验证,检查软件代码之间以及软件代码和硬件之间的协调性,并验证软件是否正确的实现了安全性设计,满足了软件的安全性需求。

进一步地,步骤1)具体包括如下步骤:

1.1)结合系统论整体性原理,从系统角度出发,通过系统安全性的整体分析,将安全性功能分配给各个要素;

1.2)识别系统危险,民机是典型的高度综合化复杂系统,且对安全性有着极高的要求,因此参考民机适航标准ARP4754A、ARP4761中的方法检查系统,识别出系统存在的危险;

1.3)识别出系统存在的危险后,进一步识别用于防止这些危险发生的系统级别的系统安全相关需求和系统安全性约束,系统安全性约束与一般的功能需求一样,只是要求系统进行某种特殊的控制,从而避免进入危险状态;

1.4)识别出系统安全相关需求与系统安全性约束后,根据系统安全相关需求与系统安全性约束设计控制结构对系统进行初步的控制,控制结构设计应满足系统安全性要求,并在设计的细化中不断分析,从而改进控制结构,在定义控制结构时,必须单独定义软件的安全性控制接口,保证软件自身存在一套安全性机制,当软件失效时不会对系统安全性造成影响;

1.5)识别潜在的异常控制行为,一个控制执行器通常可以产生四种类型的控制异常,包括没有提供预期的控制行为、控制行为错误或不安全、控制行为开始过晚及控制行为结束过早,因此根据不同控制执行器识别出相应的异常控制行为,异常控制行为识别主要关注系统与系统、系统与软件、软件与软件之间的接口控制;

1.6)根据控制结构找到异常控制行为发生的原因,异常控制原因分为控制缺陷和不充分的控制行为两类,控制缺陷指异常控制行为是由于控制算法的错误、控制过程的错误、执行器之间不够协调而导致,通过检查过程控制回路来进行识别;不充分的控制行为指异常控制行为是在过程模型正确时由执行器自身的缺陷或错误的传感器、数据造成;

1.7)根据步骤1.5)分析来识别消除异常控制行为的约束条件和设计决策,进一步完善系统安全性需求,定义新的控制结构并再次进行分析。

进一步地,步骤2)具体包括如下步骤:

2.1)根据软件失效对系统安全性的影响程度,将软件进行分级,并基于DO-178C标准确定不同级别软件开发过程所需满足的目标;

2.2)将识别出的系统安全性需求进行分解,查找与软件有关的安全性功能作为软件生命周期过程的输入,进而将系统安全性需求分配至软件;

2.3)进一步细化分配给软件的系统安全性需求,并分析可能引起系统风险的软件失效模式、产生失效的原因以及该失效所产生的影响,提出对应的改进措施,形成软件安全性高层需求;

2.4)根据软件安全性高层需求形成软件层次架构,并针对不同类型的软件失效模式,逐层分析失效模式产生的原因,提出相应改进措施,直至软件代码层次。

进一步地,步骤3)具体包括如下步骤:

3.1)从系统论层次性原理考虑,保证软件要素的独立性,将软件看作一个系统来分析其本体的安全性问题,同时从系统论稳定性和突变性原理角度,考虑软件内部要素之间交互而导致的突变,进一步从代码层次对软件的内部要素进行安全性分析;

3.2)运行模式和运行状态与条件分析,在整个软件需求中查找是否存在可能导致不安全状态的条件和潜在失效隐患,例如不按顺序、错误的事件、不适当的量值、不正确的极性、无意的命令、环境干扰造成的错误、以及指挥失灵模式之类的条件,应对所有的不安全状态的条件和潜在失效隐患,制定适当的响应要求;

3.3)容错和容失效分析,容错系统是为了处理最有可能发生的一些故障以及那些发生概率小但是危险的故障,容失效系统是仅对较高层次的可能导致系统失效的差错进行处理,根据软件安全性等级,确定软件的失效容限要求,制定冗余策略、转换逻辑以及故障检测、隔离和恢复机制;

3.4)危险命令处理分析,识别出能导致严重的或灾难性的危险,对能导致危险控制能力降低的命令进行处理,包括接收、传送、启动关键信号或者危险命令的硬件或者软件功能;

3.5)接口分析,分析接口出错方式及出错概率,并以接口出错方式及出错概率为基础确定通信方法、数据编码、错误检查、同步方法、校验和纠错码方法,在通讯接口数据定义时,确保通讯双方的通讯协议的一致性和完整性;

3.6)数据分析,定义软件所使用的各种数据,包括规定静态数据、动态输入输出数据及内部生成数据的逻辑结构,列出数据清单,说明对数据的约束;规定数据采集的要求,说明被采集数据的特性、要求和范围;建立数据字典,说明数据的来源、处理及目的地;

3.7)定时、吞吐量和软件规模分析,对于安全关键功能,考虑系统资源和时间约束条件,分析与执行时间、I/O数据速率和内存/存储器分配有关的软件需求,如临界时间、自动安全保护时间、采样速率、内存资源等,并设计相应的余量;

3.8)将软件代码层次进行逐层分析设计,形成软件安全性低层需求,然后根据低层需求编写代码,并将编码过程中发现的不充分或不正确的输入反馈给相关软件过程予以澄清或纠正。

进一步地,步骤3.1)所述的安全性分析的重点内部要素包括运行模式及运行状态与条件、容错和容失效、危险命令的处理、接口、数据、定时、吞吐量和软件规模。

采用上述方案本发明取得有益效果如下:本发明一种高度综合化复杂软件安全性分析方法,一方面,从系统论相关原理角度考虑,结合了基于软件本体和基于系统的软件安全性分析方法,提出了从系统层到软件代码层的全方面软件安全性分析流程,有效提高软件安全性需求获取的完整性;另一方面,通过严格的过程控制确保软件安全性需求得以实现,提供了针对具体的软件内部要素的安全性分析和设计思路,对DO-178C标准进行补充,确保软件设计的落实。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

图1为本发明一种高度综合化复杂软件安全性分析方法的软件系统安全性分析流程图。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所述,一种高度综合化复杂软件安全性分析方法,其特征在于,包括如下步骤:

1)采用民机适航标准ARP4754A、ARP4761中的方法进行系统安全性分析,识别系统安全性需求;

2)将系统安全性需求分配至软件,确定软件安全性需求;

3)从代码层次对软件内部要素进行安全性分析;

4)采用DO-178C中的方法进行软件集成和验证:基于DO-178C标准进行软件集成和验证,检查软件代码之间以及软件代码和硬件之间的协调性,并验证软件是否正确的实现了安全性设计,满足了软件的安全性需求。

其中,步骤1)具体包括如下步骤:

1.1)结合系统论整体性原理,从系统角度出发,通过系统安全性的整体分析,将安全性功能分配给各个要素;

1.2)识别系统危险,民机是典型的高度综合化复杂系统,且对安全性有着极高的要求,因此参考民机适航标准ARP4754A、ARP4761中的方法检查系统,识别出系统存在的危险;

1.3)识别出系统存在的危险后,进一步识别用于防止这些危险发生的系统级别的系统安全相关需求和系统安全性约束,系统安全性约束与一般的功能需求一样,只是要求系统进行某种特殊的控制,从而避免进入危险状态;

1.4)识别出系统安全相关需求与系统安全性约束后,根据系统安全相关需求与系统安全性约束设计控制结构对系统进行初步的控制,控制结构设计应满足系统安全性要求,并在设计的细化中不断分析,从而改进控制结构,在定义控制结构时,必须单独定义软件的安全性控制接口,保证软件自身存在一套安全性机制,当软件失效时不会对系统安全性造成影响;

1.5)识别潜在的异常控制行为,一个控制执行器通常可以产生四种类型的控制异常,包括没有提供预期的控制行为、控制行为错误或不安全、控制行为开始过晚及控制行为结束过早,因此根据不同控制执行器识别出相应的异常控制行为,异常控制行为识别主要关注系统与系统、系统与软件、软件与软件之间的接口控制;

1.6)根据控制结构找到异常控制行为发生的原因,异常控制原因分为控制缺陷和不充分的控制行为两类,控制缺陷指异常控制行为是由于控制算法的错误、控制过程的错误、执行器之间不够协调而导致,通过检查过程控制回路来进行识别;不充分的控制行为指异常控制行为是在过程模型正确时由执行器自身的缺陷或错误的传感器、数据造成;

1.7)根据步骤1.5)分析来识别消除异常控制行为的约束条件和设计决策,进一步完善系统安全性需求,定义新的控制结构并再次进行分析。

步骤2)具体包括如下步骤:

2.1)根据软件失效对系统安全性的影响程度,将软件进行分级,并基于DO-178C标准确定不同级别软件开发过程所需满足的目标;

2.2)将识别出的系统安全性需求进行分解,查找与软件有关的安全性功能作为软件生命周期过程的输入,进而将系统安全性需求分配至软件;

2.3)进一步细化分配给软件的系统安全性需求,并分析可能引起系统风险的软件失效模式、产生失效的原因以及该失效所产生的影响,提出对应的改进措施,形成软件安全性高层需求;

2.4)根据软件安全性高层需求形成软件层次架构,并针对不同类型的软件失效模式,逐层分析失效模式产生的原因,提出相应改进措施,直至软件代码层次。

步骤3)具体包括如下步骤:

3.1)从系统论层次性原理考虑,保证软件要素的独立性,将软件看作一个系统来分析其本体的安全性问题,同时从系统论稳定性和突变性原理角度,考虑软件内部要素之间交互而导致的突变,进一步从代码层次对软件的内部要素进行安全性分析,安全性分析的重点内部要素包括运行模式及运行状态与条件、容错和容失效、危险命令的处理、接口、数据、定时、吞吐量和软件规模;

3.2)运行模式和运行状态与条件分析,在整个软件需求中查找是否存在可能导致不安全状态的条件和潜在失效隐患,例如不按顺序、错误的事件、不适当的量值、不正确的极性、无意的命令、环境干扰造成的错误、以及指挥失灵模式之类的条件,应对所有的不安全状态的条件和潜在失效隐患,制定适当的响应要求;

3.3)容错和容失效分析,容错系统是为了处理最有可能发生的一些故障以及那些发生概率小但是危险的故障,容失效系统是仅对较高层次的可能导致系统失效的差错进行处理,根据软件安全性等级,确定软件的失效容限要求,制定冗余策略、转换逻辑以及故障检测、隔离和恢复机制;

3.4)危险命令处理分析,识别出能导致严重的或灾难性的危险,对能导致危险控制能力降低的命令进行处理,包括接收、传送、启动关键信号或者危险命令的硬件或者软件功能;

3.5)接口分析,分析接口出错方式及出错概率,并以接口出错方式及出错概率为基础确定通信方法、数据编码、错误检查、同步方法、校验和纠错码方法,在通讯接口数据定义时,确保通讯双方的通讯协议的一致性和完整性;

3.6)数据分析,定义软件所使用的各种数据,包括规定静态数据、动态输入输出数据及内部生成数据的逻辑结构,列出数据清单,说明对数据的约束;规定数据采集的要求,说明被采集数据的特性、要求和范围;建立数据字典,说明数据的来源、处理及目的地;

3.7)定时、吞吐量和软件规模分析,对于安全关键功能,考虑系统资源和时间约束条件,分析与执行时间、I/O数据速率和内存/存储器分配有关的软件需求,如临界时间、自动安全保护时间、采样速率、内存资源等,并设计相应的余量;

3.8)将软件代码层次进行逐层分析设计,形成软件安全性低层需求,然后根据低层需求编写代码,并将编码过程中发现的不充分或不正确的输入反馈给相关软件过程予以澄清或纠正。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种高度综合化复杂软件安全性分析方法
  • 一种复杂疾病易感性综合遗传分析方法
技术分类

06120113007875