《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 网络化软件异常行为可信性研究
网络化软件异常行为可信性研究
2016年微型机与应用第3期
张文佳, 彭成, 马迎辉, 满君丰
(湖南工业大学 计算机与通信学院,湖南 株洲 412007)
摘要: 网络化软件系统中的漏洞不可避免,漏洞会引发网络化软件异常行为,异常行为的传播会给系统造成无法弥补的损失。为了使损失尽可能减小,对异常行为的研究变得十分必要。本文对网络化软件异常行为可信性进行深入研究,并且从组建级和系统级两方面对异常行为可信性进行全面分析,为人们今后采取措施提供一定理论依据。仿真实验和实例分析证明,对异常行为可信性进行研究可以为人们评估系统稳定性、减小由异常行为带来的损失提供一定帮助。
Abstract:
Key words :

  摘要网络化软件系统中的漏洞不可避免,漏洞会引发网络化软件异常行为,异常行为的传播会给系统造成无法弥补的损失。为了使损失尽可能减小,对异常行为的研究变得十分必要。本文对网络化软件异常行为可信性进行深入研究,并且从组建级和系统级两方面对异常行为可信性进行全面分析,为人们今后采取措施提供一定理论依据。仿真实验和实例分析证明,对异常行为可信性进行研究可以为人们评估系统稳定性、减小由异常行为带来的损失提供一定帮助。

  关键词:网络化软件;异常行为;软件实体;系统稳定性

0引言

  自从上世纪90年代互联网进入商业应用以来,伴随着计算机和通信技术的迅猛发展,互联网已经渗透到人们工作和日常生活的各个方面。随着云计算[1]、对等计算、普适计算等新兴计算模式的不断涌现,互联网引发了软件产业的一次革命——软件网络化[2],软件技术未来发展的主导模式将会是网络化应用,网络化软件也将成为未来软件领域的主要形式之一。网络化软件是一类以网上信息/服务资源为元素,以Internet为媒介,以元素间的互操作与协同为构造方式,其行为和拓扑结构可以动态演变的密集型混合系统[3]。例如,全球最大的电子零售商店Amazon以其基础设施和Webservices构建的Amazon.com就是网络化软件系统的应用典范。构成网络化软件中的组件实体一般内部结构和源代码是不可见的,且网络化软件系统运行的平台是十分复杂的Internet环境,因此对网络化软件系统进行可信评估就变得十分必要。本文从影响网络化软件系统可信性的其中一个因素——网络化软件异常行为为研究出发点,通过对异常行为可信性进行深入分析,揭示其对网络化软件整体稳定性的影响。

1相关工作

  1972年J. P. Anderson提出建立可信系统 (Trusted System),在40多年的时间里可信计算技术得到了长足发展。在复杂的互联网环境中,可信系统的运行面临更大的威胁性与不确定性。传统的软件系统安全评估方法已不能很好地适应互联网环境下软件可信保证的需求,急需从安全机制的灵活性以及面向开放环境的软件能力保障方面进行扩展[4]。在基于构建的软件可靠性研究方面主要有以下三类方法:基于状态的模型、基于路径的模型和附加模型[5]。网络化软件系统可信性研究还不成熟,多是基于经典的Internet中实体间信任关系模型[6]。最近,梅宏等人在基于软件体系结构技术方面,提出了面向构建、基于体系结构的ABC开发方法,并在可信性保障与度量等支撑技术方面取得进展[78]。徐锋、吕建等人提出了两个信任模型TEM和DTME,形成了一种适合于互联网环境的框架体系,提出了一条建立基于Agent的网络化软件模型的技术途径[9]。本文在前人研究的基础上,综合ISO/IEC9126及SJ/T11374—2007标准[10]对系统中的异常行为进行深入研究,建立一套合理的异常行为可信性评估体系,并以此探究网络化软件异常行为对系统稳定性产生的影响。

2异常行为可信性

  2.1组件级可信性

  所谓异常行为可信性是指异常行为对组件、系统产生负面影响的可信程度。异常行为可信度越高,其对组件、系统产生的消极作用越大,反之则越小。为了全面地对异常行为可信性进行分析,首先从组件级的角度进行考虑。组件Ci(1<i<M,M表示系统中组件个数)在某时刻的内部结构如图1所示,其中空心小圆圈表示不含异常行为的节点,黑色实心小圆圈表示含有异常的节点,intf(i)表示该时刻组件内部错误率,ep(i)表示该时刻组件内部错误传播概率[11]。  

001.jpg

  为了形象地表示组件内部各个节点之间的相互关系,将图1简化为图2所示,其中Li(0<i<11)表示未含异常的节点,Vj(0<j<5)表示含有异常的节点。 

002.jpg

  在组件Ci中,只有含有异常的节点会影响组件的正常运转。因此,用P(ai)(0<i<N,N表示异常节点个数)来表示异常节点对组件产生的消极作用,P(ai)值越大表示该异常节点对组件产生的消极作用越大,反之则表示该异常节点对组件产生的消极作用越小。经大量试验表明,P(ai)不仅与错误率intf()、错误传播概率ep()有关,而且与该节点在组件内所处的位置密切相关。一个节点的度越大表示该节点与其他节点联系的机会越多。试验结果表明,异常节点在组件内度越大其异常行为对组件产生的消极作用越大。为了准确描述异常节点在组件内所处的位置关系,将组件内部节点的调用关系用矩阵表示,如果组件内部有N个节点,则矩阵大小为N×N,如下所示:

  1.png

  当节点ai与节点aj之间有调用关系时,aij=1;否则,aij=0。用O(ai)(1<i<N)表示异常节点ai的度,则有:

  2.png

  所有异常节点的度之和为:

  3.png

  则有

  4.png

  例如,在图2中异常节点V1、V2、V3、V4对组件产生的消极作用P(V1)、P(V2)、P(V3)、P(V4)分别为1/3、1/6、1/6/、1/3。

  2.2系统级可信性

  在某时刻网络化软件系统含有M个组件,每一个组件由若干个类构成,类的实现中包含了各种功能的函数。函数间的调用、类与类之间的相互关联、组件之间的消息传递均用有向边表示,组件、类及函数为不同粒度的节点。前面从组件级的角度对异常行为进行了分析,但还不能准确反映异常节点给系统带来的消极影响。下面从系统级的角度考虑异常行为可信性。某时刻组件间的调用关系用图3表示,图3中忽略了组件内部节点之间的关系,只考虑各组件之间的互相调用,其中Ci为组件,S为系统,黑色实心节点表示该组件含有异常行为,空心节点表示该组件正常。 

003.jpg

  经过实验证明,异常节点的可信度不仅与其在组件中所处的位置有关,而且与该组件在系统中所处的位置密切相关。一个组件在系统内部越活跃,则其对系统的稳定性和可信性影响越大。组件活跃程度由其与其他组件之间的调用频度决定,用P(Cj)表示组件Cj的活跃频度,则P(Cj)与组件的度成正比。为了准确描述组件的活跃频度,将组件之间的调用关系用矩阵表示,如果某时刻系统内部有M个组件,则矩阵大小为M×M。

  5.png

  当节点Ci与节点Cj之间有调用关系时,Cij=1;否则,Cij=0。用O(Cj)(1≤j≤M)表示含有异常的组件Cj的度,则有:

  6.png

  所有含有异常的组件的度之和:

  78.png

  为了更准确描述异常行为对系统产生的影响,不仅要考虑组件内部异常节点的可信性,还要考虑每个组件在系统中的活跃频度,只有将两者结合起来综合考虑才能更准确地刻画异常行为对系统产生的消极作用。因此将异常节点对系统产生的消极作用如下公式(9)表示:

  R(Vi)=∑Ni=1aiN∑Ni=1O(ai)* ∑Mj=1ajM∑Mj=1O(Cj)(9)

  其中R(Vi)表示异常节点Vi对系统产生的消极作用,R(Vi)的值越大说明该异常节点对系统产生的消极影响越大,则该异常节点的异常行为可信度越高。

3实验分析

  实验基于MATLAB9.0平台,通过前期工作开发的监测工具收集网络化软件系统运行时产生的行为日志,从中提取行为规律,构建行为模型。模型中包含10个组件,将组件进行排序处理,其中存在异常行为的组件及各组件中异常节点的可信度如表1所示。 包含有异常节点组件的相应活跃度如表2所示。实验采用的数据包括10 000条行为日志记录,实验结果为100次运行的平均值。

007.jpg

008.jpg

  为了合理地分析系统中异常行为的可信性,首先从组件级角度对异常节点的可信度进行考虑。相应的实验结果如图4所示。

004.jpg

  从图4中可以看到,组件C4、C6中的异常行为可信度变化范围较大,在组件C4中的异常节点V6对组件产生的消极影响最大,异常行为可信性度达到了所有异常行为可信度中最高的0.35,而组件C6中的异常节点的可信度多数徘徊在0.2左右。研究异常行为影响系统稳定性、可靠性的学者们往往将这些数据作为评判依据。但这仅仅是异常节点对组件产生的负面影响,并不能代表其对系统产生的消极作用。因此,本文对各个组件在系统中的位置进行合理分析,将组件中的异常节点权重化,从而更合理地得出异常节点对系统产生的消极作用。图5反应了组件C1、C3、C4、C6、C9在系统中的活跃程度。 

005.jpg

  对组件内异常行为可信度及相应组件在系统中的活跃度进行综合考虑,得出异常节点对系统产生的消极影响,如图6所示。从图6中可以看到,对系统造成较大影响的异常节点主要存在于组件C6及组件C9中,其中对系统威胁最大的异常节点是组件C9中的V7节点。从图6中反应的各异常行为的可信度与图4中反应的各异常行为的可信度相差较大,但又有局部类似的性质。这是因为图4只是在局部展示了异常行为的一些特性,而图6则合理地表现了异常行为对系统造成影响的可信性,现实运行的程序也证实了图6中各数据的合理性。

  

006.jpg

4结论

  本文通过对网络化软件系统进行建模分析,研究了系统中异常行为对系统稳定性及可靠性的影响。通过前面的实验可以看出,本文给出的算法可以计算出异常行为给系统带来的冲击力度,因此人们可以据此来考虑对系统应采取的措施,对系统中严重的错误可以优先采取补救措施,从而减小由异常行为给系统带来的损失。

  参考文献

  [1] 徐忠胜,沈苏彬. 一种云计算资源的多目标优化的调度方法[J].微型机与应用,2015,34(13):1720.

  [2] 王红春. 网络化软件多粒度动态特性分析[D]. 武汉:武汉大学, 2010.

  [3] 马于涛, 何克清, 李兵,等. 网络化软件的复杂网络特性实证[J]. 软件学报, 2011,22(3):381407.

  [4] 王怀民,唐扬斌,尹刚,等. 互联网软件的可信机理[J]. 中国科学:信息科学,2006,10(10):11561169.

  [5] 周娜琴. 基于构件的软件可靠性分析[D]. 长沙:湖南师范大学, 2008.

  [6] 王远, 吕建, 徐锋,等. 一个适用于网构软件的信任度量及演化模型[J]. 软件学报, 2006,17(4):682690.

  [7] MEI H, HUANG G, ZHAO H, et al. A software architecture centric engineering approach for internetware[J]. Science in China, 2006, 49(6):702730.

  [8] 梅宏, 陈锋, 冯耀东,等. ABC:基于体系结构、面向构件的软件开发方法[J]. 软件学报, 2003,14(4):721732.

  [9] 徐锋, 吕建, 郑玮,等. 一个软件服务协同中信任评估模型的设计[J]. 软件学报, 2003,14(6):10431051.

  [10] CHIDAMBER S R, KEMERER C F. A metrics suite for object oriented design[J]. Software Engineering IEEE Transactions on, 1994, 20(6):476493.

  [11] 彭成, 杨路明, 满君丰. 网络化软件异常行为传播研究[J]. 电子学报, 2013(10):20742081.


此内容为AET网站原创,未经授权禁止转载。