王洪坡,周红建,王洪雷
(1.95899部队软件测评中心,北京 100076;2.93619部队自动化站,天津 301716)
基于S曲线模型的航空装备嵌入式软件量化安全评估
王洪坡1,2,周红建1,王洪雷2
(1.95899部队软件测评中心,北京 100076;2.93619部队自动化站,天津 301716)
软件测试是航空装备嵌入式软件生命周期中的重要环节,如何评估软件测试的效果是一个难题。以软件测试为基础,讨论了航空装备嵌入式软件的生命周期过程中安全缺陷出现的规律,认为它的安全缺陷同样满足S曲线。引入了AML建模理论,基于软件测试数据,建立了某航空嵌入式软件的S曲线模型,预测了软件的总安全缺陷数。对AML理论进行了拓展,讨论了转折点的选取原则。最后,通过卡方检验和预测检验的方法,验证了预测模型与测试数据的匹配性。检验结果表明,AML模型能够很好地模拟实际测试情况,一定程度上消除了数据随机性的影响,其模型具有一定可信度,能够用于航空装备嵌入式软件的安全性分析。
航空装备嵌入式软件;S曲线模型;安全缺陷发掘;量化
软件安全性早在20世纪90年代就被计算机科学家们公认为21世纪软件研究与发展的重要战略方向之一。软件安全性可简单概括为:软件在任何情形下不能使其控制的系统对人们的生命、财产及其所处的自然环境造成危害[1]。
软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。软件缺陷是导致相关系统出错、失效、崩溃甚至机毁人亡的潜在根源。例如,2007年2月11日,12架F-22在穿越国际日期变更线时,因软件缺陷问题造成导航故障,战机被迫在无导航和通信能力下危险返航[2]。1996年6月,欧洲“阿丽亚娜”号火箭因导航系统的计算机软件出现故障,致使火箭坠毁,造成数亿美元的巨大损失;2005年3月31日,欧空局的SMART-1月球探测器和NASA的雨燕太空望远镜的实验状态均因软件故障而受到了很大影响[3]。
软件安全缺陷伴随软件的整个生命周期,如何在软件发布前,根据已有的软件实验与测试数据来预测软件的安全性成为研究的一个重点。文献[3]将软件预测技术划分为静态和动态两大类。静态预测以软件的固有参数为基础进行预测,如软件规模、复杂度,动态技术引入了时间变量,研究软件缺陷与发现时间的关系。Rescorla E[4]提出了Rescorla二项式模型和指数模型,试图通过统计实验的方法来确定软件安全缺陷发掘的趋势。Joh H等人[5]于2008年提出了一种基于Weibull分布的软件安全缺陷发掘模型,假设其发现率服从Weibull密度函数。Alhazmi O H等人[6~9]认为软件缺陷发掘满足S曲线模型,针对操作系统软件的弱点数,提出了AML(Alhazmi-Malaiya Logistic)模型,通过曲线拟合的方式建立了操作系统的缺陷发掘模型,取得了很好的拟合效果。Wang Hong-po等人[10]在研究一类缺陷不可移除的软件安全缺陷时引入了有限状态机的方法,采用markov链技术来预测软件的缺陷残留。曾福萍等人[11]通过分析积累的软件缺陷数据对缺陷模式的所属分类进行了划分,给出了软件需求分析、设计和编码各阶段的软件缺陷模式。郭丽娜等人[12]在已有的基于模糊支持向量机的不平衡数据分类方法的基础上,结合抽样技术,提出了基于模糊支持向量机的不平衡数据分类算法和基于模糊支持向量机的不平衡数据分类集成算法。赵亮等人[13]提出基于度量组合的方法来分析各种度量在缺陷预测中的作用, 并用试验的方法证明了在缺陷预测中使用有限的度量可以达到与使用所有度量相近的预测效果。
航空装备嵌入式软件因其特殊的应用环境,对软件安全性有更加苛刻的要求,在产品发布前需要对其进行安全性测试,并验证测试效果。但是,现有的验证方法无法克服数据随机性的影响。本文采用AML模型作为建模理论基础,基于软件测试过程中的数据对系统进行建模和分析。第2节介绍软件安全缺陷发掘模型,在AML模型的基础上讨论了转折点的选择过程;第3节基于测试数据进行系统建模;第4节检验模型的匹配性;最后给出结论。
2.1 S曲线模型
在软件可靠性工程中,使用可靠性增长模型成为分析软件可靠性的有效方法[14]。软件可靠性增长模型模拟测试过程中软件缺陷发现和移除的过程,这个过程使软件中的缺陷越来越少,缺陷发现率不断降低,累计发现的缺陷数最终趋于饱和。在软件即将发布并投入使用时,使用增长模型来确定发布后软件可能存在的软件缺陷规律。
安全缺陷发掘模型与可靠性增长模型有直接的关系,是可靠性增长模型的发展。安全缺陷是软件缺陷中的一种,它在制定软件顶层规划时被定义和分级,在开发、测试和使用过程中被发现和处理。目前已发表了多种安全缺陷发掘模型,这些模型大多以单位时间内的累计缺陷数作为数据来源来进行分析,是一种基于时间的模型。对操作系统软件来说,随着时间的增长,累计发现的安全缺陷数量曲线呈现出包括三个阶段的S形状,这就是著名的S曲线,如图1所示。
Figure 1 S-curve of accumulating safety defects图1 累计发现安全缺陷数量的S形曲线
这三个阶段因使用环境的变化,导致安全缺陷的检测情况受到影响。第一阶段对应着操作系统的早期生命周期,此时软件专业测试人员以及用户开始关注该操作系统,并为寻找它的安全缺陷而收集数据,准备相关知识。第二阶段称为线性阶段,经过早期的学习,软件专业测试人员以及用户对操作系统的熟悉度增加,软件安全缺陷被不断发现,累计发现的安全缺陷数目呈线性增长的趋势,这一过程一直持续到软件被新的版本替代。第三阶段中,操作系统被新版软件替代,缺陷发掘工作转移到新版本中,旧版本软件累计发现的安全缺陷数量逐渐停止增长[6]。
S曲线虽然是针对操作系统提出的,但对航空装备嵌入式软件同样适用。航空装备嵌入式软件因其特殊的应用环境,要求在产品正式发布使用的阶段,绝大部分软件安全缺陷都已被发现和修复,这就要求在软件发布前对其进行充分的实验和测试,尽量在发布前发现安全缺陷。对照图1的S曲线,第一阶段是在软件开发的末期或已完成软件开发,此时软件专业测试人员以及用户开始关注该软件,通过收集软件资料、数据,对软件开始有所了解,并为寻找软件安全缺陷做准备。第二阶段是软件开发人员已发布了软件的测试版本,测试人员对软件系统已经有了一定程度的了解,软件安全缺陷被不断发现,累计发现的安全缺陷数目呈线性增长的趋势,这一阶段一直持续到软件的回归测试阶段。第三阶段经过回归测试,软件中已发现的安全缺陷被全部修复,在回归测试版本基础上形成发布版本,这一阶段虽然受测试工作的局限性影响,软件中依然潜伏着安全缺陷,但数量急剧减少。在用户使用过程中潜藏的缺陷被不断修复,缺陷数逐渐趋于稳定,直至该软件被新版本取代。
如果软件规模较小,学习阶段可能很短暂,不太明显。线性阶段发现软件的大部分安全缺陷,这一阶段是最重要的。如果软件的测试、验证不充分,在成熟阶段仍然会陆续发现大量安全缺陷,成熟阶段曲线可能不明显。
这里我们假设:(1)航空装备嵌入式软件的测试、验证、发布等生命周期过程严格按照有关规定、标准进行;(2)软件缺陷发现后就被修复,且修复过程不会引入新的缺陷;(3)缺陷修复的时间可以忽略不计。这样,软件的安全缺陷发掘过程可近似认为满足S曲线。
这里,我们引入Alhazimi O H和Malaiya Y K于2005年提出的AML模型[6],该模型能够很好地模拟S曲线,具有较高的匹配度。该模型虽然给出了转折点的概念,但未指出如何选取,本文也对这个问题进行讨论。
2.2 AML模型
AML模型[6~8]假设安全缺陷累计和变化率y取决于以下两个因素:(1)与软件中剩余的未被检测出的缺陷数目相关,并随着未被检测出的缺陷数目的减少而变小;(2)由该软件运行的时间决定,且随着此时间的增加而变大。
缺陷发现率可由如下微分方程得到:
(1)
其中,y为累计发现的缺陷数,t为日历时间,初值t=0。A和B是根据经验方法由具体应用中收集到的数据确定。
解式(1),我们得到累计发现的安全缺陷数量为:
(2)
其中,C为解式(2)时引入的常量。
从式(2)中可以看出,当t趋向于无穷时,y(t)=B。因此,软件中累计发现的最大安全缺陷数为B。
在参数A、B、C已知的情况下绘制式(2)时间曲线,可以得到类似于图1的曲线。分析式(2)可知[5]:对式(2)一阶微分,可以得到缺陷发现率的变化情况。
(3)
根据式(3),最大缺陷发现率出现在中点:
(4)
将式(4)代入式(3),得到缺陷发现率的最大值为AB2/4。
2.3 转折点的选择
转折点是三个阶段划分的标志,得到转折点,我们就可以据此判断软件测试是否已达到了测试要求,软件产品是否可以发布。
GJB/Z102-97[15]将软件缺陷的安全级别定义为四级,IEC 61508[16]对不同级别的缺陷给出了允许的出现概率,如表1所示。
Table 1 Safety level of software defects
令不同等级的缺陷出现概率为p,已知软件的使用寿命为Tl(工作小时),则软件运行允许的剩余缺陷数为:
ys=pTl
(5)
则有:
ys≥B-Bs
(6)
即测试后剩余的缺陷数应不大于标准允许的缺陷数。这里Bs为测试阶段发现的缺陷总数。
显然,若测试和预测结果满足式(6),则测试终止时间即为二、三阶段转折点的下边界。不失一般性,可以将其看做二、三阶段的转折点,其时间T2,3=TBS,这里TBS为测试终止时间。
若式(6)不满足,说明软件测试还未达到规定的要求。
因式(3)对应的曲线相对于Tm对称,一、二阶段的转折点时刻T1,2与T2,3相对于Tm对称,其时间T1,2=Tm-(TBS-Tm)=2Tm-TBS。若T1,2<0,说明学习阶段不明显,S曲线模型仅存在线性段和成熟段。
本节根据某航电系统的测试数据,研究针对该软件的AML模型。
已知某航电系统实现飞机对各子系统的控制和显示,表2列出了软件测试、实验阶段各时段发现的软件缺陷数,各时段以周为单位。
Table 2 Software defects distribution of testing phase
表2中,根据对飞机安全性的影响将缺陷划分为A、B两类。A类缺陷对飞机飞行安全和任务实现有轻微影响,可能影响任务执行,与表1中的III类缺陷对应。B类缺陷影响软件部分功能的实现,对飞行安全和任务实现有影响轻微,对应表1中的IV类缺陷,表1中规定的I、II类缺陷在测试过程中未发现。
图2和图3给出了两类缺陷的拟合曲线图。根据拟合曲线,我们确定了式(2)的两组参数,分别为A类缺陷参数:AA=0.014,BA=64,CA=3.2,B类缺陷参数BB=390,AB=0.00148,CB=0.081。根据式(4),两类缺陷的最大缺陷率分别出现在Tma=5.94和Tmb=5.98时刻,近似为第6周,与单周发现的缺陷最大值一致。由曲线不难发现,S曲线缺陷发掘模型能够很好地拟合线性阶段的缺陷发现过程。模型还预测出了A类缺陷和B类缺陷的总数,A类缺陷还遗留0个,占缺陷总数的0%,B类缺陷遗留10个,占缺陷总数的2.56%。预测出软件的缺陷总数对后续的软件安全性的研究有重要意义。
Figure 2 Fitting curve of A class defects图2 A类缺陷拟合曲线图
Figure 3 Fitting curve of B class defects图3 B类缺陷拟合曲线图
根据2.3节的讨论,A、B类缺陷的出现概率分别应为[10-7,10-6)、[10-6,10-5)。可以估计出该航电软件的使用寿命为Tl=105小时,则在软件的整个生命周期中出现A、B类缺陷的个数分别为[0.01,0.1)、[0.1,1)个。显然,预测模型表明,软件测试发现的A类缺陷达到了测试的要求,两个转折点分别为T1,2=0周和T2,3=12周,A类缺陷的学习阶段不明显。预测的剩余B类缺陷为10,大于期望的要求,经过测试后,软件仍未达到成熟阶段。
表1给出的缺陷出现概率对III、IV级安全缺陷的要求是比较苛刻的,在一般的测试过程中还引入了千行代码缺陷率的概念,若测试过程中千行代码发现的缺陷数小于给定量级,则认为软件测试达到测试要求。
本节我们引入卡方分析,量化分析拟合曲线与采集数据的拟合情况。
4.1 基于卡方检验的匹配性检验
(7)
其中,oi和ei分别为观测值和期望值。考虑重要度等级为5%,有如下假设:
Table 3 χ2 testing result of AML model
S曲线模型满足给定的缺陷数据集,因为这些数据与学习阶段和成熟阶段吻合,并能够适应线性阶段数据的变化。
4.2 预测偏差检验
这里引入预测偏差PE(Prediction Error)方法[17]来预测准确度。PE法能够检验整个测试阶段预测模型和实际参数的偏离情况,给出模型的一般偏差,暗示与实际情况相比,预测值是过大还是过小。计算公式如下所示:
(8)
其中,n为预测过程的实际数据点数,Ω为实际安全缺陷数,Ωt为t时刻的预测缺陷数。
Figure 4 Deviation curve of prediction defect图4 缺陷预测偏差曲线曲线图
曲线表明,预测偏差开始比较大,这主要是由于测试缺陷数据的随机性引起的。随着时间的推移,偏差接近于0,说明数据随机性被不断地弱化,AML的预测与实际情况基本吻合。计算得到两类曲线的PE值分别为-0.035和0.093,暗示A类缺陷的估计值偏小,B类缺陷的估计值偏大。
AML模型最初用于操作系统的缺陷数据分析,并取得了较好的拟合效果。航空装备嵌入式软件的安全性要求更高,对软件的安全性进行分析的要求更为迫切,现有的研究方法还不能很好地解决软件遗留缺陷的预测问题。
易知,实测缺陷数据具有很大的随机性,图4曲线的前段也说明了这一点。文中对AML模型的分析表明,该模型能够弱化原始数据随机性的影响,对转折点的选取的讨论和在模型中引入软件缺陷等级的概念丰富了该理论应用。本方法能够在软件测试数据比较充足的前提下对不同等级的软件遗留缺陷进行预测,对航空装备软件具有较好的适应性。
当然,本方法并不仅仅局限于航空装备嵌入式软件,对其他对安全性有较高要求的软件的安全性分析,只要数据完备,都可以进行类似的安全性建模和分析。
基于S曲线的软件安全缺陷发掘模型为软件开发人员、测试人员和用户提供了一种定量评估软件安全状况的方法,利用该模型,人们能够有效地预测航空装备嵌入式软件中不同严重等级的安全缺陷发现率、累计发现的安全缺陷数量、剩余安全缺陷的数量等与软件安全性能评估密切相关的指标,以及这些指标随时间推移的变化趋势,针对性更强。文章讨论了曲线转折点的选取,给转折点赋予了物理意义。文中引入的AML模型较好地拟合了测试过程的实际数据,弱化了数据随机性的影响,对拟合曲线和实际数据的对比分析也证明了这一点。通过对预测模型的分析,我们可以定量地判断软件测试是否达到要求,被测软件是否处于成熟阶段,是否可以发布。
参考文献:
[1] Zhu Hong. Discussion on improving the twenty-first century computer science and software industry development strategy of software quality assurance software security[EB/OL].[2010-09-01]. http://www2.ccw.com.cn/1995/37/135973.html.(in Chinese)
[2] Defense Industry Daily. F-22 squadron shot down by the International date line[EB/OL].[2007-03-01].http://defenseindustrydaily.com/ F-22-squadro-shot-down-by-the-International-Date-Line -03087/.
[3] Wang Qing, Wu Shu-jian, Li Ming-shu. Software defect prediction[J]. Journal of Software, 2008,19(7):1565-1580.(in Chinese)
[4] Rescorla E. Security holes…Who cares? [C]∥Proc of the 12th USENIX Security Symposium, 2003:75-90.
[5] Joh H C, Kim J, Malaiya Y K. Vulnerability discovery modeling using Weibull distribution[C]∥Proc of the 19th Symposium on Software Reliability Engineer, 2008:299-300.
[6] Alhazmi O H,Malaiya Y K. Quantitative vulnerability assessment of systems software[C]∥Proc of Annual Reliability and Maintainability Symposium,2005:615-620.
[7] Alhazmi O H, Malaiya Y K, Ray I. Measuring, analyzing and predicting security vulnerabilities in software systems[J]. Computers & Security, 2007,26(3):219-228.
[8] Alhazmi O H, Malaiya Y K. Application of vulnerability discovery models to major operating systems[J].IEEE Transactions on Reliability, 2008,57(1):1358-1364.
[9] Alhazmi O H, Malaiya Y K. Modeling the vulnerability discovery process[C]∥Proc of the 16th IEEE International Symposium on Software Reliability Engineering (ISSRE’05), 2005:129-138.
[10] Wang Hong-po,Zhou Hong-jian,Wang Hong-lei. Quantitative safety analysis of a kind of embedded software[C]∥Proc of IEEE International Conference on Computer Science and Automation Engineering,2011:391-397.
[11] Zeng Fu-ping, Jin Hui-liang, Lu Min-yan. Study on software detect patterns[J]. Computer Science, 2011,38(2):127-130.(in Chinese)
[12] Guo Li-na, Yang Yang. A classfication algorithm of detect prediction for software modules based on fuzzy support vector machine[J]. Journal of Nanjing University(Natural Sciences), 2012,48(2):221-227.(in Chinese)
[13] Zhao Liang, Hou Jin-bao. Software fault prediction on the file and package level[J]. Journal of Tsinghua University(Science and Technology),2011,51(S1):1472-1476.(in Chinese)
[14] Musa J. Software reliability engineering[M]. New York:McGraw-Hill, 1999.
[15] GJB/Z102—97,Software reliability and safety design criteria[S]. Beijing:the commission of Science, Technology and Industry for National Defense of the PRC,1997.(in Chinese)
[16] Draft Standard IEC 61508, Functional safety of electrical/electronic/programmable electronic safety-related systems[S]. Geneva:International Electrotechnical Commission, 1998.
[17] Madan B B, Goseva-Popstojanova K, Vaidyanathan K, et al. A method for modeling and quantifying the security attributes of intrusion tolerant systems[J]. Performance Evaluation, 2004,56(1-4):167-186.
附中文参考文献:
[1] 朱鸿. 提高软件质量保障软件安全—探讨21世纪计算机科学与软件产业发展战略[EB/OL].[2010-09-01].http://www2.ccw.com.cn/1995/37 /135973.html.
[3] 王青,伍书剑,李明树. 软件缺陷预测技术[J].软件学报,2008,19(7):1565-1580.
[11] 曾福萍, 靳慧亮,陆民燕. 软件缺陷模式的研究[J].计算机科学,2011,38(2):127-130.
[12] 郭丽娜,杨杨.一种基于模糊支持向量机软件模块缺陷检测算法[J].南京大学学报(自然科学版),2012,48(2):221-227.
[13] 赵亮,侯金宝.文件和包层次的软件缺陷预测[J]. 清华大学学报(自然科学版),2011, 51(S1):1472-1476.
[15] GJB/Z102—97,软件可靠性和安全性设计准则[S].北京:国防科学技术工业委员会,1997.
WANG Hong-po,born in 1977,PhD,engineer,his research interests include software testing, and software safety.
Quantitative safety evaluation of aviation equipment embedded software based on S-curve model
WANG Hong-po1,2,ZHOU Hong-jian1,WANG Hong-lei2
(1.Software Testing Center,Troop 95899,Beijing 100076;2.Automatic Station,Troop 93619,Tianjin 301716,China)
Software testing is an important phase during the lifetime of aviation equipment embedded software. It is difficult to evaluate the effect of software testing. Based on software testing,discusses the occurrence law of the safety defect existing in aviation equipment embedded software. It is believable that the occurrence law of the embedded software also satisfies the S-curve rule. AML model is introduced to build up the S-curve model of a kind of aviation equipment embedded software based on the defect data gathered during the software testing period. The total defect number of the software is predicted. Finally, Chi-Squire verification and prediction error metric are applied to verify the goodness of fit of the software defects. Results show that AML model can model the real safety defects finding process. It eliminates the effects of randomness of the data, so the model is reliable. The predicting data can be trusted to some extent. It can be used to model and analyze the safety of aviation equipment embedded software.
aviation equipment embedded software;S-curve model;safety defects explore;quantitative
2012-09-27;
2013-01-07
1007-130X(2014)03-0469-06
TP311.5
A
10.3969/j.issn.1007-130X.2014.03.016
王洪坡(1977-),男,天津人,博士,工程师,研究方向为软件测试和软件安全性。E-mail:nudtwhp@126.com
通信地址:100076 北京市丰台区警备东路6号7区软件测评中心
Address:Software Testing Center,7 District,6 Jingbei East Rd,Fengtai District,Beijing 100076,P.R.China