一种航空机载嵌入式软件安全性评价方法研究

2020-04-07 10:16
计算机测量与控制 2020年3期
关键词:嵌入式软件软件测试分值

(1.西南电子技术研究所 天奥软件测评中心,成都 610036;2.成都中电锦江信息产业有限公司,成都 610051)

0 引言

嵌入式软件以其专用性强、高实时性、可裁剪、重量轻、体积小等特点广泛应用于生产、生活乃至军用航空领域[1]。嵌入式软件作为嵌入式系统的控制中心,其安全性直接关系到系统的使用和人、机安全。由于嵌入式软件的失效引起的安全事故对国家会造成严重的经济和军事影响[2]。随着航空电子技术不断发展,现代飞机的体系架构已由分离式、联合式逐渐向模块化、高度综合化方向发展,系统功能越来越复杂软件实现的功能在航空电子系统中所占的比重越来越大[3]。航空机载软件具有嵌入式、实时性、结构复杂、高关键等级等特点[4]。近年来,由于航空机载软件安全性问题所造成的事故也成逐年上升趋势。2018年10月印尼狮航和2019年3月埃塞俄比亚航空两架波音737 MAX8客机坠毁,造成重大财产损失和人员伤亡。失事原因主要是由于AOA(飞机高迎角传感器)将错误的数据传输给MCAS(操纵辅助系统),MCAS软件未对异常的AOA数据做正确的处理导致的。软件安全性包含很广,既包含软件失效对系统造成故障、危及飞行安全,也包括软件内部数据保护,防止非授权的用户使用、篡改、分析和从中挖掘信息[5]。例如本身涉及国家秘密或商业秘密的数据被破解泄露,软件的程序被逆向,架构被再工程利用。

传统的软件安全性和可靠性利用各种方法去验证满足“安全关键失效率”(λ)。例如在需求分析阶段,一般有失效模式分析(FMEA)、故障树FTA分析等方法,编码阶段使用审查、走查等方法验证。然而航空软件对λ要求很高,一般为10-6到10-9,而可靠性指标一般也为10-3以上,按照理论测试模型推算,收集到足够的失效数据用于参数估计的时间短则一年半载,长则几十年,周期较长,并且“安全关键失效率”λ也不能当做量化指标去测试评估。现有的对嵌入式软件的安全性评估方法较为分散,缺少一种快速并可以量化的安全性评估方法。

本文针对嵌入式软件安全性评价的难题,在软件的全生命周期基于分类模糊综合评价理论,建立了评价模型,提出了一种评价方法,能快速、准确、客观的对嵌入式软件的安全性进行评价。

1 软件生命周期模型

软件开发模型有多种,目前常见的开发模型有增量模型、瀑布模型、螺旋模型、瀑布模型、智能模型等。增量模型的开发过程如图1所示。瀑布模型的开发过程如图2所示。根据实际项目的复杂程度、周期要求等选取不同的模型进行开发。虽然瀑布模型有其缺点,但它有利于大型软件开发过程中人员的组织管理,有利于软件开发方法和工具的研究与使用从而提高了大型软件项目开发的质量和效率[6]。为保证软件质量,软件开发过程和交付过程通常伴随软件测试。结合软件开发的升级瀑布模型形成V模型。由于军用航空软件的特殊性,航空航天领域的机载嵌入式软件开发广泛使用V模型[7]。

图1 软件开发增量模型图

图2 软件开发瀑布模型

软件生命周期V型关系[8]如图3所示。

图3 软件生命周期V型关系图

2 嵌入式软件等级划分

根据软件失效或发生安全性问题可能导致的后果和相关军用标准[9],将嵌入式软件重要性等级分为Ⅰ、Ⅱ、Ⅲ、Ⅳ四个等级。软件等级划分如表1所示。

表1 软件等级划分

3 软件安全性评价过程

3.1 评价方法

对嵌入式软件安全评价采用分类模糊综合评价方法[10],即将评价指标分类,分别有相对的评价人员进行评价,分类评价中又采用模糊综合评价方法进行,最后加权得到总体评价。模糊综合评价法是基于模糊数学模糊集理论,对评价对象作以综合评价的一种方法,它以模糊数学为基础,应用模糊关系合成定理,将一些边界不清、不一定量的因素定量化,符合嵌入式软件安全性评价的特点。

3.2 评价元素

依据软件开发周期的V模型,将嵌入式软件安全评价分为5个阶段,即软件需求阶段、软件设计阶段、软件编码阶段、软件测试阶段,软件使用阶段,对应为A、B、C、D、E五个阶段。每个阶段对应一个评价元素集合{a1,a2,….an},n=11、{b1,b2,….bn},n=12、{c1,c2,….cn},n=8、{d1,d2,….dn},n=26、{e1…en},n=2,共59个评价活动元素。

软件需求阶段评价元素如表2所示。

表2 软件需求阶段评价元素

软件设计阶段评价元素如表3所示。

表3 软件设计阶段评价元素

软件编码阶段评价元素如表4所示。

在软件测试阶段,根据嵌入式软件的等级不同可选择不同的测试级别。软件测试阶段评价元素如表5所示。

软件使用阶段评价元素如表6所示。

嵌入式软件在生命周期的不同阶段对应不同的评价元素,每个评价元素对应的安全分值为[0,100],在5个阶段中选择不同的人员进行评价,在软件需求阶段和软件设计阶段选择项目总体技术人员,软件编码阶段选择编程人员,软件测试阶段选择软件测试人员,软件使用阶段选择使用总体人员。

其中,软件需求阶段、软件设计阶段、软件编码阶段、软件测试阶段对应的评分数值Sij,其中i={a,b,c,d,e},j={1,2…n}。Si乘以相应的权重Qij后相加,得出在

表4 软件编码阶段评价元素

在E阶段,若MTTF值大于设计使用时间的20%,e1值为-10;满足设计时间但小于20%时,分值为0;若不满足设计时间,e1值为10。试用阶段发现的安全问题数按照严重等级计算分值,发现严重安全问题为-5分/个,一般安全问题为-3分/个,轻微安全问题为-2分/个。E阶段的安全分值S2=Se1+Se2,得出嵌入式软件安全分值S的计算公式为:

为降低评价人员的主观性,每个阶段选取k个评价人员,将评价值相加后取平均值,继而得到计算评价结果公式:

3.3 权重的确定

依据行业经验和专家知识,结合航空嵌入式软件的特点,确定A、B、C、D对应的权重值为30%,25%,25%,20%。依据每个评价元素的重要程度和对软件安全性产生的影响,进而明确评价权重矩阵: {Qa1,Qa2,….Qa11}={0.02,0.04,0.04,0.02,0.04,0.02,0.02,0.02,0.03,0.03,0.02};

{Qb1,Qb2,….Qb12}={0.04,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01};

{Qc1,Qc2,….Qc8}={0.04,0.03,0.02,0.03,0.02,0.02,0.02,0.02};

表5 软件测试阶段评价元素

表6 软件使用阶段评价元素

{Qd1,Qd2,….Qd26}={0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.005,0.005,0.005,0.005,0.005,0.005,0.01,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01}。

3.4 评判标准

在评价活动中,根据A、B、C、D、E五个阶段计算出的安全分值应约大越好,但由于项目实际的时间进度限制、人员水平限制、经费限制等因素,软件的安全性往往受到影响。依据航空产品相关标准和不同等级嵌入式软件必须进行和推荐进行的活动划分出不同等级软件的安全分值符合标准,不同重要等级的软件对应的安全分值如表7所示。

4 实验结果与分析

某航空机载设备研制单位采用以上评价模型对3款嵌入式软件产品安全性进行评价,3款嵌入式软件均为某型飞

表7 软件安全分值评价对照表

机通信导航识别系统内的嵌入式软件,分别为CNI(Communication Navigation Identification,CNI)主控软件、通用平台管理软件、音频告警软件。其中CNI主控软件、通用平台管理软件运行在PowerPC芯片上,音频告警软件运行在DSP芯片上,分别记为α、β、γ,其对应的软件重要等级为分别为Ⅰ、Ⅱ、Ⅲ级。

步骤一:

A、B、C、D阶段评价:每个项目在每个阶段分别选择3名负责该项目的项目总体技术人员、软件编程人员、软件测试人员、使用总体人员进行评分。每个评价元素的分值为[0,100],参与评价的人员依照项目的实际情况进行评分后依据安全分值公式计算出3款软件的安全分值S;

步骤二:

E阶段评价:嵌入式软件α在E阶段平均无故障时间满足设计要求但不超过设计时间的20%,并在使用中发现1个轻微安全性问题,E阶段安全分值为-2;嵌入式软件β在E阶段平均无故障时间未达到设计要求,并在使用中发现2个严重安全性问题,E阶段安全分值为-12;嵌入式软件γ在E阶段平均无故障时间超过设计要求的20%,在使用中发现1个轻微安全性问题,E阶段安全分值为8;

步骤三:

将各阶段每个评价元素的评分,利用嵌入式软件安全分值S的计算公式计算出嵌入式软件α、β、γ的安全分值,再对每个阶段3名评价人员总评价分值取平均,得出最总软件的安全分值如表8所示。

表8 阶段评价安全分值表

3款航空嵌入式软件的评价活动结束后获得安全分值S,按照其关键等级依据表7中的评判标准可以得出安全性评价结果为软件α合格,软件β不合格,软件γ合格。

3款软件采用以上评价模型对软件安全性进行了评价,在不同软件阶段均有相对应的安全分值,通过评价结果更易于发现各阶段中的安全性问题,相比传统的安全性评价方法评价过程更加全面,评价结果更准确、直观。

5 结束语

嵌入式软件安全是保证航空机载电子系统安全的重要因素,本文基于嵌入式软件开发V模型在软件整个生命周期提出了一种嵌入式软件安全性评价方法。通过工程实际应用证明,该方法具有评价过程简单、评价元素全面、评价结果直观的特点。由于软件安全性包含的范围较广,评价元素不可能穷举,实际应用中可在该评价模型的基础上对评价元素进行适当增加、修改或删除,权重参考同等重要的评价元素的权重,在后续的研究中也会持续改进。文中的评价方法主要创新点在于:一是采用分类模糊综合评价法将与安全性相关的元素分析、归纳、整理形成每个阶段的评价元素,再结合工程实践经验赋予权重;根据软件的重要性进行分类,制定不同的评价标准;二是评价不单单是软件使用阶段出现安全问题反馈,而是贯穿软件全生命周期,评价更加完整,对航空机载电子系统型号延续的安全性改进提供了帮助。

猜你喜欢
嵌入式软件软件测试分值
软件测试方向人才培养“1+X”融合研究
第15届世界健美操锦标赛五人操成套难度动作分析
大数据背景下软件测试技术的发展
悄悄告诉你:统计这样考
浅析嵌入式软件技术的现状与发展动向
谁是科创板创值全能冠军
关于 Web 应用系统的软件测试的研究
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
软件测试发展现状及前景的探讨