您好,欢迎来到尔游网。
搜索
您的当前位置:首页基于AADL的Web应用架构安全性的评估方法[发明专利]

基于AADL的Web应用架构安全性的评估方法[发明专利]

来源:尔游网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 107103244 A(43)申请公布日 2017.08.29

(21)申请号 201710333755.7(22)申请日 2017.05.12

(71)申请人 天津大学

地址 300072 天津市南开区卫津路92号(72)发明人 李晓红 李姝昕 

(74)专利代理机构 天津市北洋有限责任专利代

理事务所 12201

代理人 李素兰(51)Int.Cl.

G06F 21/57(2013.01)

权利要求书3页 说明书15页 附图19页

(54)发明名称

基于AADL的Web应用架构安全性的评估方法(57)摘要

本发明公开了一种基于AADL的Web应用架构安全性的评估方法,包括:步骤(1)、Web应用架构分解,步骤(2)、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型;步骤(3)、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;步骤(4)、架构安全值和架构安全威胁值计算。本发明可以在Web应用架构设计阶段,主动的评估架构的安全性,帮助架构设计人员及早发现Web应用架构中存在的安全问题,提升架构安全质量,从而提高Web应用的安全性。

CN 107103244 ACN 107103244 A

权 利 要 求 书

1/3页

1.一种基于AADL的Web应用架构安全性的评估方法,其特征在于,该方法包括以下步骤:

步骤(1)、Web应用架构分解,该步骤包括两项活动:将Web应用架构分解到组件层和组件功能与安全性需求描述;将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件;描述组件功能和安全性需求实现组件安全特征的提取;

步骤(2)、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模,建模过程包括组件建模和系统组件建模:利用组件类型定义了组件的接口元素和显性非功能属性;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模;AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程;

步骤(3)、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;架构安全质量树生成算法表示如下:SQT=(root,node,leafnodeSM)

其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component、layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSMi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;smij代表父节点componenti中第j个安全措施;运算符号∪表示这些元素的并,也就是集合中包含所有下标1-n的元素;

架构安全威胁树生成算法表示如下:STT=(root,node,leafnodeST)

其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component,layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSTi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;stij代表父节点componenti中第j个安全威胁事件;

步骤(4)、架构安全值和架构安全威胁值计算:架构安全值的计算公式表示为:

2

CN 107103244 A

权 利 要 求 书

2/3页

SA=w·Sq-w·St;其中,w=(w1,w2,w3,...wn)T表示架构的组件安全性权重向量,wi表示组件componenti的权重,Sq=(sq1,sq2,sq3,...,sqn)表示架构安全质量值向量,sqi表示组件componenti的安全质量值;St=(st1,st2,st3,...stn)为架构的安全威胁向量,sti表示组件componenti的安全威胁值;下面介绍公式中各个元素的计算方法:

计算组件安全性权值向量w=(w1,w2,w3,...wn)T:输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn;(1)、结合组件所处上下文环境,分析组件业务功能和对Web应用的整体作用;(2)、依据上一步的分析,对组件的安全重要性进行两两对比,对比时采用相对尺度,得到偏序矩阵A,其中aij表示componenti与componentj的安全重要度之比;

(3)、计算偏序矩阵A的特征值向量归一化特征向量从而得到各

首先求出每一行元素的组件的权值向量w=(w1,w2,w3,...wn);计算矩阵A的特征向量时,乘积,求得每一行元素的乘积后,再对每一行的乘积求n次方根,计算公式如下:

特征向量之后归一化特征向量公式为:从1到n依

次计算出wi,最后得到组件安全性权值向量w=(w1,w2,w3,...wn);

(4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现componenti比componentj的权值大,componentj比componentk的权值大,而componentk又比componenti的权值大这种矛盾情况,保证各元素重要度之间的协调性;一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:

其中w为(3)中得到的组件安全性权值向量,(Aw)i为矩阵A与向量w乘积后得到向量的第i个元素;wi为向量w的第i个元素;一致性检验过程中,还需要一致性指标CI,其中

CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,λ最后max越远离于n;

计算一致性比例CR来检验矩阵A的一致性,

RI是随机一致性指标,通过查表得到;

当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差,CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止;

通过以上的四步,计算得出架构中各组件的权值;

3

CN 107103244 A

权 利 要 求 书

3/3页

输出:架构组件安全性权值向量w=(w1,w2,w3,...wn);4-2、计算架构安全质量值(本算法以componenti为例进行说明):输入:componenti中全部安全机制,算法说明如下:a、给出评估对象集合:componenti的安全措施集合leafnodeSMi=(smi1,smi2,smik......,smim)b、给出评价集合E={e1,e2,...,en},评价集合E是指对评价对象的评估等级,本文中评级集合为E={极差,差,一般,好,极好}={1,3,5,7,9};

c、依据评估对象集合和评级集合,建立模糊评价矩阵Ri,模糊评价矩阵Ri为:

其中,rij代表componenti中第i项安全措施对于第j个等级的偏向程度;偏向程度通常是依据评级集合对评估对象打分,根据得分情况,确定综合比得出;

d、计算模糊评价向量Vi,计算公式如下:

其中,vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m);e、确定各项指标的权重向量:A=(a1,a2,a3,...,am),计算方法与计算组件安全性权值相同;

f、componenti的模糊安全质量值计算公式如下:

g、重复步骤c到步骤f,得到架构安全质量值向量Sq=(sq1,sq2,sq3,...,sqn);架构安全威胁值计算过程与架构安全质量值的计算过程相似,只是将评价集合E={e1,e2,...,en}修改为:评级集合为:{一般,危险,极危险}={1,3,5},最后可得出架构安全威胁值向量St=(st1,st2,st3,...,stn)。

4

CN 107103244 A

说 明 书

基于AADL的Web应用架构安全性的评估方法

1/15页

技术领域

[0001]本发明涉及可信计算领域;特别是涉及一种针对Web应用架构安全性的评估方法。背景技术

[0002]目前,Web应用已经与人们的日常生活息息相关,然而近年来,Web应用的安全漏洞不断爆出,安全问题所带来的负面影响也越来越大,甚至威胁到了人类的生命,这引发了业界的密切关注。根据国际权威的Web应用安全机构OWASP所发布的TOPTen,可以看出现在全球有效的网络攻击中,基于Web应用的占到了80%。由此可见,解决Web应用安全性问题已是迫在眉睫。

[0003]为了减少和解决Web应用中存在的安全问题,安全软件开发的共识是在软件开发生命周期中尽早考虑安全问题。根据业界大量的统计数据表明超过50%的安全漏洞是在软件设计初期注入的,即软件架构设计阶段。因此,如果能够在Web应用架构设计阶段,针对架构安全性进行可靠评估,那就会有助于判断架构设计方案是否满足安全性需求,及早地预测Web应用的安全质量属性,识别架构设计中可能存在的安全威胁,从而达到提高Web应用抵御安全风险能力的目的。[0004]目前,关于Web应用安全问题的相关研究工作取得许多有益的进展,产业界提出一些威胁检测方案以及检测工具,但是绝大多数方案和工具都是针对已成形的Web应用,缺少对架构设计阶段检测的研究方法或工具。了学术界已经有了一些成熟的评估软件架构非质量属性的评估方法,并得到广泛应用与验证。这些评估技术大致分为三类,第一类方法是基于场景的评估方法,例如软件架构分析方法(SAAM)、基于领域的SAAM(ESAAMI)、软件架构折中分析方法(ATAM)。第二类是基于度量的评估方法,如基于贝叶斯网的软件体系评估方法(SAABNet)、软件架构变化的度量方法(SACMM)、软件架构层次可靠性风险分析方法(ALRRA)。第三类方法是基于特定架构描述语言的评估方法,如Rapide方法等。[0005]然而上述评估技术,主要存在两方面的不足之处:一方面是现有评估技术更多适应于评估软件架构的可靠性、可用性,不能充分满足针对安全性的评估需求。另一方面,“重量级”的评估技术,成本较高,“轻量级”的评估方法实用化程度低,“轻量级”的评估方法对软件架构描述精度不准确,这就影响了评估方法中所构造模型的质量。发明内容

[0006]为了克服现有技术存在的缺陷,本发明提出了一种基于AADL的Web应用架构安全性的评估方法,在软件架构设计阶段,针对架构安全性进行可靠的评估,进而帮助判断架构设计方案是否满足安全性需求,识别架构中可能存在的安全威胁,达到帮助架构设计人员寻找安全风险的目的。

[0007]本发明提出了一种基于AADL的Web应用架构安全性的评估方法,该方法包括以下步骤:

[0008]步骤1、Web应用架构分解,该步骤包括两项活动:将Web应用架构分解到组件层和

5

CN 107103244 A

说 明 书

2/15页

组件功能与安全性需求描述;将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件;描述组件功能和安全性需求实现组件安全特征的提取;

[0009]步骤2、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模,建模过程包括组件建模和系统组件建模:利用组件类型定义了组件的接口元素和显性非功能属性;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模;AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程;[0010]步骤3、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;[0011]架构安全质量树生成算法表示如下:[0012]SQT=(root,node,leafnodeSM)

[0013][0014]

其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集

合中的元素包括三类,分别是component、layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSMi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制。smij代表父节点componenti中第j个安全措施;运算符号∪表示这些元素的并,也就是集合中包含所有下标1-n的元素;

[0016]架构安全威胁树生成算法表示如下:[0017]STT=(root,node,leafnodeST)

[0018][0019]

[0015]

其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集

合中的元素包括三类,分别是component,layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSTi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;stij代表父节点componenti中第j个安全威胁事件;[0021]步骤4、架构安全值和架构安全威胁值计算:[0022]架构安全值的计算公式表示为:[0023]SA=w·Sq-w·St;[0024]其中,w=(w1,w2,w3,...wn)T表示架构的组件安全性权重向量,wi表示组件

6

[0020]

CN 107103244 A

说 明 书

3/15页

componenti的权重,Sq=(sq1,sq2,sq3,...,sqn)表示架构安全质量值向量,sqi表示组件componenti的安全质量值;St=(st1,st2,st3,...stn)为架构的安全威胁向量,sti为组件componenti的安全威胁值;下面介绍公式中各个元素的计算方法:[0025]计算组件安全性权值向量w=(w1,w2,w3,...wn)T:[0026]输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn;[0027](1)、结合组件所处上下文环境,分析组件业务功能和对Web应用的整体作用;[0028](2)、依据上一步的分析,对组件的安全重要性进行两两对比,对比时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。得到偏序矩阵A,其中aij表示componenti与componentj的安全重要度之比;

[0029][0030]

(3)、计算偏序矩阵A的特征值向量归一化特征向量从而

得到各组件的权值向量w=(w1,w2,w3,...wn);计算矩阵A的特征向量时,首先求出每一行

元素的乘积,求得每一行元素的乘积后,再对每一行的乘积求n次方根,计算公式如下:

[0031]

[0032]特征向量之后归一化特征向量公式为:从1到

n依次计算出wi,最后得到组件安全性权值向量w=(w1,w2,w3,...wn);[0033](4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现componenti比componentj的权值大,componentj比componentk的权值大,而componentk又比componenti的权值大这种矛盾情况,保证各元素重要度之间的协调性。一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:

[0034][0035]

其中w为(3)中得到的组件安全性权值向量,(Aw)i为矩阵A与向量w乘积后得到向量的第i个元素;wi为向量w的第i个元素。一致性检验过程中,还需要一致性指标CI,其中

CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,λ最后max越远离于n;

计算一致性比例CR来检验矩阵A的一致性,

RI是随机一致性指标,通过查表得到;

当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差,CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止;[0036]通过以上的四步,计算得出架构中各组件的权值。[0037]输出:架构组件安全性权值向量w=(w1,w2,w3,...wn)。

7

CN 107103244 A[0038]

说 明 书

4/15页

4-2、计算架构安全质量值(本算法以componenti为例进行说明):

[0039]输入:componenti中全部安全机制,算法说明如下:[0040]a、给出评估对象集合:componenti的安全措施集合[0041]leafnodeSMi=(smi1,smi2,smik......,smim)[0042]b、给出评价集合E={e1,e2,...,en},评价集合E是指对评价对象的评估等级,本文中评级集合为E={极差,差,一般,好,极好}={1,3,5,7,9}。[0043]c、依据评估对象集合和评级集合,建立模糊评价矩阵Ri,模糊评价矩阵Ri为:

[0044][0045]

其中,rij代表componenti中第i项安全措施对于第j个等级的偏向程度。偏向程度通常是依据评级集合对评估对象打分,根据得分情况,确定综合比得出;[0046]d、计算模糊评价向量Vi,计算公式如下:

[0047]

其中,vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m);[0049]e、确定各项指标的权重向量:A=(a1,a2,a3,...,am),计算方法与计算组件安全性权值相同;[0050]f、componenti的模糊安全质量值计算公式如下:

[0051]

[0048]

g、重复步骤c到步骤f,得到架构安全质量值向量Sq=(sq1,sq2,sq3,...,sqn);[0053]架构安全威胁值计算过程与架构安全质量值的计算过程相似,只是将评价集合E={e1,e2,...,en}修改为:评级集合为:{一般,危险,极危险}={1,3,5},最后可得出架构安全威胁值向量St=(st1,st2,st3,...,stn)。[0054]与现有技术相比,本发明可以在Web应用架构设计阶段,主动的评估架构的安全性,帮助架构设计人员及早发现Web应用架构中存在的安全问题,提升架构安全质量,从而提高Web应用的安全性。该方法预期达到如下有益效果:[0055]1、提出了一套完整的针对Web应用架构现有安全机制的保障力度和架构潜在安全威胁进行评估的工程方法,该方法将评估焦点放在架构设计的安全性上。利用AADL安全模型得到架构安全质量树和安全威胁树,从而提取可度量的架构安全性评估要素;[0056]2、相对于基于调查问卷和基于场景的评估方式,这一评估方式降低了评估过程中对专家经验的依赖程度,减少了评估所需时间;[0057]3、实现了架构模型转换工具,提高了Web应用架构安全性评估效率,减轻评估人员的工作量,提高评估工作的自动化水平。附图说明

[0058]图1为本发明的基于AADL的Web应用架构安全性的评估方法流程图;

8

[0052]

CN 107103244 A[0059][0060][0061][0062][0063][00][0065][0066][0067][0068][0069][0070][0071][0072][0073][0074][0075][0076][0077][0078][0079][0080][0081]

说 明 书

5/15页

图2为表1所列的部分Web应用架构组件的交互关系示例图;图3为AADL架构描述模型的建模过程图4为组件类型声明图;图5为组件实现声明图;图6为系统组件声明图;

图7为组件安全行为状态机示意图;图8为AADL架构安全威胁模型框架图;图9为组件安全威胁模型形式化结构图;

图10为组件安全威胁事件传播形式化结构图;图11为架构安全质量树结构示意图图12为架构安全质量树生成算法图;图13为架构安全威胁树结构图;图14为架构安全威胁树生成算法图;图15为架构模型转换工具总体结构图;图16为组件安全信息解析流程图;

图17为实例的客户端AADL架构模型实现代码的示例图;图18为实例的Web容器的AADL架构模型实现代码的示例图;

图19为实例的客户端与Web容器的交互连接件实现代码的示例图;图20为组件权值和安全值示意图;图21为架构安全威胁树局部对比图;图22为各架构组件的权值比较图;

图23为各架构组件的安全质量值比较图;图24为各架构组件的安全威胁值比较图。

具体实施方式

[0082]下面结合附图和具体实施例对本发明技术方案作进一步详细描述。[0083]如图1所示,为本发明的基于AADL的Web应用架构安全性的评估方法的总体评估流程,该方法主要包括四个部分,首先是分解Web应用架构;然后在架构分解的基础上,使用AADL对其进行描述分析,建构AADL架构模型;接着通过模型装换工具生成架构安全模型;最后根据安全性计算方法计算架构安全值,并依据架构安全值进行安全性评估。本发明主要步骤的详细描述如下:[0084]步骤1、Web应用架构分解,该步骤包括两项活动:将Web应用架构分解到组件层和组件功能与安全性需求描述。分解架构是对Web应用架构进行描述的基础。依照Web应用开发中被广泛使用的MVC软件架构模式,将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件,其中组件可以是代码也可以是的程序,连接件可以是过程调用、管道和消息,用于表示组件之间的相互关系。描述组件功能和安全性需求实现组件安全特征的提取,安全性需求内容结合了CC标准。因为不同的Web应用内部结构也不尽相同,这里不可能穷尽所有情况,所以给出参照模板如表1所示。[0085]步骤2、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威

9

CN 107103244 A

说 明 书

6/15页

胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模,具体为在架构描述模型的基础之上,利用错误模型附件对Web应用架构中组件的安全威胁行为的描述,描述各个组件或连接件的安全属性、不安全事件和不安全状态转移行为等等;AADL架构安全性模型提供了对Web应用架构中组件的安全威胁行为的描述,是对AADL架构描述模型在安全性能方面的深入说明,它们一起构成了完整的安全性行为的形式化描述。

[0086]如图3所示,为AADL架构描述模型的建模过程示意图。本发明采用AADL文本来建模。首先,依据架构分解结果为Web应用中各个组件创建模型组件。在模型组件中,依据各个组件特征创建相应的组件类型(Component Types),按照架构组件交互关系为创建的组件类型添加组件交互点(组件特征Component features)。在此基础上,依据Web应用中每一种组件类型实际的个数,创建相应数量的组件类型实现(Component Implementation)。当完成架构所有模块组件类型和组件实现的创建工作后,还需要构造一个特殊组件来表示整个Web应用架构的边界,即系统组件类型和组件实现。接下将构建好的组件添加入系统组件中,即为System类型的组件添加子组件并建立子组件之间的关系(端口连接),这样便完成了架构描述模型。具体建模过程包括组件建模和系统组件建模。利用组件类型定义了组件的接口元素和显性非功能属性,组件类型的声明方式如图4所示;其中features是指Web应用组件的信息进出点,包含了三种类型:信息进出口点,参数传递,信息访问,flows为组件内部以及组件间的信息或数据的传输路径,properties用来描述该种组件类型下组件共有的安全属性或者其他非功能属性。利用组件实现表示了组件内部结构,组件实现的声明方式如图5所示:其中,subcomponents表示了组件内部的子组件,calls代表组件内部函数调用序列,connections表示了组件之间的信息或数据的传递关系,flows和properties表示同图4中含义;系统组件是一个特殊组件,它用来表示整个Web应用系统的边界,一个AADL描述模型中有且只有一个容器系统。系统组件的声明方式如图6所示。在系统组件类型中,除了不能添加AADL附件说明外,与普通组件类型结构一样。在系统组件实现中,将已经建好的其它组件作为它的子组件,通过子程序调用和连接方式来建立子组件之间的关系。依据Web应用架构分解结果,可以依次得出Web应用各组件的组件类型。[0087]组件安全行为状态包括三种状态:正常态,安全态、安全威胁态。AADL架构安全威胁模型提供了对Web应用架构中组件的安全威胁行为的描述,所以如图7所示,为组件安全行为状态机遇到安全威胁事件的示意图。安全事件包括安全威胁事件和安全防御事件,安全威胁事件是对常见攻击手段类型的总结,安全防御事件是对常见防御方法类型的总结。安全威胁事件会触发组件从正常态转移到安全威胁态。安全防御事件会根据对安全威胁事件进行击,是否能够防御成功由安全防御事件的能力决定。如果防御成功则状态迁回到正常态,防御不成功组件仍旧处于安全威胁态。[0088]表1、Web应用的架构分解表模板

10

CN 107103244 A[00]

说 明 书

7/15页

[0090]

如图8所示,为AADL架构安全威胁模型的建模过程示意图。组件安全行为状态机模

型是AADL架构安全威胁模型的基础。AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程。在具体建模中,组件安全威胁模型处于图4和图5中error model annex的位置。

[0091]如图9所示,为安全威胁模型的形式化结构。[0092]组件安全威胁传播模型的建立如下:Web应用架构包含了众多相对的子系统和组件,他们自上而下的构成了Web应用系统。在Web应用架构中,组件之间的数据流是传播

11

CN 107103244 A

说 明 书

8/15页

安全威胁行为的路径。在组件安全威胁模型中,需要声明会有安全威胁事件传播的数据流或事件流。如图10所示,为安全威胁事件传播的声明方式。其中error source,error sink,error path这三个关键字属于flows里的内容,error source用来声明组件中features的某点为安全威胁入口源,error sink声明组件中features的某点安全威胁终止源,error path声明表示安全威胁行为具体的传播路径。

[0093]这样就得到表1中各个组件的安全状态机模型,其中控制器组件、UI组件、业务实体组件这三类组件没有安全状态机模型,因为它们没有直接的安全威胁事件。[0094]步骤3、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树,[0095]3-1、架构安全质量树是评估架构中已有安全措施的安全保障质量的关键,通过分析AADL架构描述模型后自动生成的。下面给出架构安全质量树的生成算法。架构安全质量树(SQT)由一个三元组来表示。

[0096]SQT=(root,node,leafnodeSM)

[0097][0098]

其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集

合中的元素包括三类,分别是component,layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSMi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制。smij代表父节点componenti中第j个安全措施;运算符号∪表示这些元素的并,也就是集合中包含所有下标1-n的元素;[0100]从结构上讲,架构安全树模型有三个层次,依次是目标层、分解层和指标层。从内容上讲,架构安全质量树的指标为机密(Confidentiality)、完整性(Integrality)、可用性(Availability),即CIA。架构安全质量树中的index节点表示组件的安全属性,内容分别是机密性、完整性和可用性,而后每种index节点下包含了相应类型的leafnodeSM节点,leafnodeSM节点内容为安全措施。架构安全质量分解树因Web应用系统架构中组件和连接件的多样性以及各组件的安全需求不同而不同。如图11所示,是一个架构安全质量树示例。[0101]表2是组件的AADL描述模型到架构安全质量树的对应规则。此规则确定了两种模型中各个元素之间的映射。[0102]表2、AADL架构描述模型到架构安全质量树的对应规则

[0103]

[0099]

AADL架构描述模型架构安全质量树(SQT)系统实例(SystemImplementation)根节点(root)组件类型信息(componenttype)层节点(layer)组件实例(componentImplementation)组件(component)组件类型属性(properties)组件安全措施(leafnodeSM)[0104]如图12所示,为架构安全质量树的生成算法,它是对上述规则的自动化表示,输入是AADL架构描述模型,输出是架构安全质量树图形。

12

CN 107103244 A[0105]

说 明 书

9/15页

3-2、架构安全威胁树是评估架构中是否存在安全威胁,已有安全措施的能否满足

全部的架构安全性需求的关键。架构安全威胁树(STT),它由一个三元组来表示。[0106]STT=(root,node,leafnodeST)

[0107][0108]

其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集

合中的元素包括三类,分别是component,layer和index,其中componenti表示Web应用架构中的第i个组件,layeri是Web应用架构中第i个层次节点i,indexi表示度量准则指标i;leafnodeSTi表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;stij代表父节点componenti中第j个安全威胁事件;[0110]从结构上讲,架构安全威胁树模型有三个层次,依次是目标层、分解层和指标层。从内容上讲,架构安全质量树的指标从安全性的三个子属性来刻画:机密威胁、完整性威胁、可用性威胁。架构安全威胁树中的index节点表示组件的安全威胁特性,有三种类型的内容,分别是机密性威胁、完整性威胁和可用性威胁,而后每种index节点下包含了相应类型的leafnodeSM节点,其内容为安全威胁事件。由于Web应用系统架构中组件和连接件的多样性以及各组件的安全威胁行为多样性,导致架构安全威胁树也不尽不同。如图13所示,是一个架构安全威胁树示例。[0111]表3、组件的AADL架构安全威胁模型到架构安全威胁树模型的对应规则

[0112]

[0109]

[0113]

此规则确定了两种模型中各个元素之间的映射。[0114]如图14所示,为架构安全威胁树的生成算法。它是对上述规则的自动化表示,输入是AADL架构安全威胁模型,输出是架构安全威胁树图形。[0115]本发明实现了架构模型转换工具,可以将AADL架构模型自动转换为架构安全模型。如图15所示,为模型转换工具的总体结构。从结构上看,工具分为架构信息解析模块,架构转换规则模块和架构信息重组模块三部分。下面对各个模块进行阐述。[0116]架构信息解析模块主要的功能是对AADL架构模型进行解析,分为两个部分。第一

13

CN 107103244 A

说 明 书

10/15页

部分是解析安全机制。它的功能是遍历架构组件,解析组件AADL模型,获取架构各组件的安全性机制。第二部分是解析组件安全信息流程,如图16所示。该流程具体包括:解析组件流信息,步骤601;是否存在安全威胁模型信息,步骤602;如果存在,则解析该安全威胁模型信息,步骤603;根据该安全威胁模型信息匹配安全威胁事件、传播安全威胁,步骤604。[0117]通过上一模块的分析,得到了组件安全威胁信息。为了以树形模式展现架构安全威胁信息,需要对组件安全威胁信息经行整理加工。具体流程如下,首先按照自底向上的方式遍历AADL模型所有组件。在遍历过程中,从组件安全威胁信息中解析出组件所含全部的安全威胁事件并将他们作为事件型子节点。如果组件存在父组件或者子组件,以组件事件类型记下每个组件的父节点与子节点组件,直到遍历完成。[0118]模型转换工具是基于Eclipse平台,以插件的形式注入到了Osate2中。[0119]步骤4、架构安全质量值和架构安全威胁值计算:[0120]架构安全值的计算公式:SA=w·Sq-w·St。

[0121]其中w=(w1,w2,w3,...wn)T为架构的组件安全性权重向量,wi为组件componenti的权重,组件安全性权值代表了组件安全性在Web应用架构中的相对重要度,它是由组件内部的安全性需求和组件所处的上下文环境决定。Sq=(sq1,sq2,sq3,...,sqn)为架构安全质量值向量,sqi为组件componenti的安全质量值,架构安全质量值反映了架构中现有安全措施的安全保障力度,计算过程是基于架构安全质量树形完成的,树中的叶节点提供了某个组件所有的安全措施,以此作为具体的评估指标。在具体评估时,为降低组件安全质量值的主观性,可以使用分层模糊评价法来计算。St=(st1,st2,st3,...,stn)为架构的安全威胁向量,sti为组件componenti的安全威胁值,其评估过程与架构安全质量值的计算过程相似。下面介绍公式中各个元素的计算方法。[0122]4-1、计算组件安全性权值:[0123]输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn。[0124](1)、结合组件所处上下文环境,分析组件业务功能和对Web应用的整体作用;[0125](2)、依据上一步的分析,对组件的安全重要性进行两两对比,对比时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。得到偏序矩阵A,其中aij表示componenti与componentj的安全重要度之比;

[0126][0127]

(3)、计算偏序矩阵A的特征值向量归一化特征向量从而

得到各组件的权值向量w=(w1,w2,w3,...wn)。计算矩阵A的特征向量时,因为通常Web应用

组件数目角度,常规方法运算太过复杂,不必用常规的方法,建议使用方根法做近似计算,首先求出每一行元素的乘积,求得每一行元素的乘积后,再对每一行的乘积求n次方根,计算公式如下:

[0128]

14

CN 107103244 A

说 明 书

之后归一化特征向量

公式为:

11/15页

[0129]特征向量从1到

n依次计算出wi,最后得到组件安全性权值向量w=(w1,w2,w3,...wn)。[0130](4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现componenti比componentj的权值大,componentj比componentk的权值大,而componentk又比componenti的权值大这种矛盾情况,保证各元素重要度之间的协调性。一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:

[0131][0132]

其中w为(3)中得到的组件安全性权值向量,(Aw)i为矩阵A与向量w乘积后得到向量的第i个元素;wi为向量w的第i个元素。一致性检验过程中,还需要一致性指标CI,其中

CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,λ最后max越远离于n。

计算一致性比例CR来检验矩阵A的一致性,

RI是随机一致性指标,可通过查表得

到,如下给出1-12阶RI参考值。当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差。一般认为CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止。[0133]表4、1-12阶RI参考值

[0134]

1234567101112

000.580.91.121.241.321.411.451.491.511.54

[0135]通过以上的四步,可计算得出架构中各组件的权值。[0136]输出:架构组件安全性权值向量w=(w1,w2,w3,...wn)。[0137]4-2、计算架构安全质量值(本算法以componenti为例进行说明):[0138]输入:componenti中全部安全机制,算法说明如下:[0139](1)、给出评估对象集合:componenti的安全措施集合[0140]leafnodeSMi=(smi1,smi2,smik......,smim)[0141](2)、给出评价集合E={e1,e2,...,en},评价集合E是指对评价对象的评估等级,本文中评级集合为E={极差,差,一般,好,极好}={1,3,5,7,9}。[0142](3)、依据评估对象集合和评级集合,建立模糊评价矩阵Ri,模糊评价矩阵Ri为:

[0143][0144]

阶数RI

其中,rij代表componenti中第i项安全措施对于第j个等级的偏向程度。偏向程度

通常是依据评级集合对评估对象打分,根据得分情况,确定综合比得出。例如componenti中第i项安全措施在第j等级的得分较在第k等级的得分高,那么rij就会比rik的数值大,也表

15

CN 107103244 A

说 明 书

12/15页

明componenti中第i项安全措施更偏向于第j等级。[0145](4)、计算模糊评价向量Vi,计算公式如下:

[0146]

其中vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m)。[0148](5)、确定各项指标的权重向量:A=(a1,a2,a3,...,am),计算方法与计算组件安全性权值相同。[0149](6)、componenti的模糊安全质量值计算公式如下:

[0150][0151]

[0147]

(7)、重复步骤(3)到步骤(6),得到架构安全质量值向量Sq=(sq1,sq2,sq3,...,

sqn)。

4-3、架构安全威胁值计算

[0153]过程与架构安全质量值的计算过程相似,只是在第二步的评级集合做如下修改:评级集合为:{一般,危险,极危险}={1,3,5},最后可得出架构安全威胁值向量St=(s1,s2,s3,...,sn)。

[0154]接下来以一个具体实例来展示基于AADL的Web应用架构安全性的评估方法。选取了代码开源、文档资料较为丰富的购物网站JeeShop(http://www.jeeshop.net/)为分析对象,用到的其他工具有架构描述工具Osate2,架构安全质量树和架构安全威胁树的浏览工具openFTA。下面对JeeShop架构进行详细地安全分析。[0155]1.分解Web应用架构

[0156]JeeShop是一款典型的基于MVC的Web应用,采用了Strut2和Spring3开发框架,共分为四层,客户层、表现层、业务层和数据层。JeeShop的工作原理如下:首先,用户利用浏览器向Web服务器发送Http请求,表现层的Web容器接受客户端请求并作信息提取,之后将提取的有用信息转发给过滤器和进行预处理,经预处理后,信息流入到控制器(ActionServelet),此时控制器判断是否需要调用业务层的相关业务实体,如果需要信息流入到业务层,有业务实体进行业务逻辑操作,业务实体会根据需要调用数据库中的数据,之后业务实体返回处理结果到控制器,控制器调用相关页面作为处理结果返回到浏览器中。表5为JeeShop的架构分解结果。[0157]2.建构AADL架构模型

[0158]依据上述的描述要素并结合表5的JeeShop架构分解结果,为JeeShop架构建立AADL架构描述模型和AADL安全威胁模型。由于AADL描述模型数量较多,无法在本文中全部展示。这里仅以客户端浏览器与表示层Web容器为例进行说明,附图17至图19所示。[0159]3.生成架构安全模型

[0160]根据JeeShop架构的AADL架构模型和安全威胁模型,利用架构模型转换工具,对AADL架构模型进行安全分析后可得到架构安全质量树和安全威胁树,这便得到了JeeShop的AADL安全性模型。

[0161]图20是Web应用架构安全质量树中客户端与Web容器截图。其中客户端组件的三个

16

[0152]

CN 107103244 A

说 明 书

13/15页

子节点是客户端组件中的所采取的安全措施,Web容器组件包含的三个子节点是Web容器组件中的所采取的安全措施。

[0162]附图21是应用架构安全威胁树中客户端与Web容器部分对比图,图中客户端的共有三类安全威胁事件,其中安全威胁事件event18依照附图21架构安全威胁模型中flows声明的unsecurity_flow流入到组件Web容器,并对它产生相应的威胁,客户端中其余的两类安全威胁事件被Web容器的相对应的安全机制拦截,这两类安全威胁不会对Web容器产生危害。

[0163]4.架构安全值计算及分析[01]4.1组件权值计算

[0165]组件权重是上述方法得到的,在比较组件安全重要性时,评估人员需要使用比较尺度,比较尺度如表6所示。按照表5中各组件的顺序进行比较,得到安全性重要程度偏序矩阵A,其特征向量是

[0166][0167]

归一化后

[0168]w=(0.02008,0.04793,0.03373,0.03373,0.3598,

[0169]0.02709,0.08755,0.13598,0.05884,0.04075,0.19769,0.10715,0.10715)[0170]经过一致性检验后,由此得到了组件的权重向量w。[0171]4.2架构安全质量值计算

[0172]在这里选取第三方组件中的支付组件为例子来说明。依据架构安全质量树可以得到保护支付组件安全性的安全机制,则它的安全措施集合为:[0173]I={组件是否更新:否;通信协议:https;认证方式:实名认证;支付方式:动态支付}

[0174]

根据上述算法,由多名评估人员评级,得出模糊评价矩阵

模糊评价向量为利用AHP,得出安全措施集

合中的各项指标权重为:A=(0.1,0.2,0.4,0.3)

[0175]

则第三方支付组件安全值

同理,可得到其他组件的模糊安全值,经过计算,组件的安全值向量为:

Sq=(3.78,5.21,8.09,1.78,5.,5.32,4.84,5.58,9.29,2.76,5.02,4.20,表5、JeeShop的架构分解结果

[0176][0177]

4.11)

[0178]

17

CN 107103244 A[0179]

说 明 书

14/15页

[0180][0181]

表6比较尺度表

含义

组件1和组件2的影响相同组件1比组件2的影响稍强组件1比组件2的影响强组件1比组件2的影响明显强组件1比组件2的影响绝对强

组件1比组件2的影响之比在上述两相邻等级之间组件2比组件1的影响比为上面尺度的倒数

18

度量值13579

2,4,6,8

1,1/2,......1/9

CN 107103244 A[0182]

说 明 书

15/15页

4.3安全威胁值计算

[0183]仍选取第三方组件中的支付组件为例子来说明。依据架构安全威胁树可以得到缺少防御支付组件可能带来安全风险的安全机制,则它的安全威胁集合为:I={无对本地可信类访问控制的安全措施;无对系统文件访问控制的安全措施;无对网络访问控制的安全措施;无对Java虚拟机访问控制的安全措施;无对系统资源访问控制的安全措施}根据

上述算法,由多名评估人员评级,得出模糊评价矩模糊评价向量为

同理,可得到组件的模糊安全威胁值,st=11.2。经

过计算,组件的安全威胁向量为:

[0184]St=(0.28,1.24,0.94,0.8,1.4,0.32,1.24,1.08,0.27,2.76,11.2,4.53,3.01)[0185]4.4评估结果

[0186]本实例中将结合组件权值、架构安全质量值向量和架构安全威胁值向量,从两个方面给出架构的安全性评价。[0187]如图22所示,为各架构组件的权值比较图。其中,第三方组件、Web容器组件和EJB容器组件的权重最高,由图可看出它们三者相对其他组件来说,对于整个架构的更为重要。[0188]第一方面是判断架构中所采用安全措施的保障质量,图23是各架构组件安全质量值的柱状图,从图中可看出安全质量值较高的组件有和EJB容器,说明和EJB容器中所采用的安全措施较为得当,能够有效保护组件安全性,防御安全威胁。但权重最高的第三方组件对应的安全质量值却较低,这显示了第三方组件中所采用的安全措施防御能力较差,需要重新设计安全方案。[01]第二方面是评价架构中现有安全机制能否覆盖Web应用系统全部的安全性需求,根据构件安全威胁值可以得到缺少安全防御措施的构件。图24是架构组件安全威胁值的柱状图。从图中看出,第三方组件的安全威胁值相以其他组件要高的多,而且第三方组件的权重比重大,说明第三方组件中存在比较严重的安全威胁,其现有的安全防御措施并不能覆盖组件全部安全性需求,这就提醒架构设计人员寻找之前没有考虑到的安全威胁,全面提升组件的安全防御机制。

19

CN 107103244 A

说 明 书 附 图

1/19页

图1

20

CN 107103244 A

说 明 书 附 图

2/19页

图2

图3

21

CN 107103244 A

说 明 书 附 图

3/19页

图4

图5

22

CN 107103244 A

说 明 书 附 图

4/19页

图6

图7

23

CN 107103244 A

说 明 书 附 图

5/19页

图8

图9

24

CN 107103244 A

说 明 书 附 图

6/19页

图10

25

CN 107103244 A

说 明 书 附 图

图11

26

7/19页

CN 107103244 A

说 明 书 附 图

8/19页

图12

27

CN 107103244 A

说 明 书 附 图

9/19页

图13

28

CN 107103244 A

说 明 书 附 图

10/19页

图14

29

CN 107103244 A

说 明 书 附 图

11/19页

图15

30

CN 107103244 A

说 明 书 附 图

12/19页

图16

31

CN 107103244 A

说 明 书 附 图

13/19页

图17

32

CN 107103244 A

说 明 书 附 图

14/19页

图18

33

CN 107103244 A

说 明 书 附 图

15/19页

图19

34

CN 107103244 A

说 明 书 附 图

16/19页

图20

35

CN 107103244 A

说 明 书 附 图

17/19页

图21

36

CN 107103244 A

说 明 书 附 图

18/19页

图22

图23

37

CN 107103244 A

说 明 书 附 图

19/19页

图24

38

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务