CN107103244B - 基于AADL的Web应用架构安全性的评估方法 - Google Patents
基于AADL的Web应用架构安全性的评估方法 Download PDFInfo
- Publication number
- CN107103244B CN107103244B CN201710333755.7A CN201710333755A CN107103244B CN 107103244 B CN107103244 B CN 107103244B CN 201710333755 A CN201710333755 A CN 201710333755A CN 107103244 B CN107103244 B CN 107103244B
- Authority
- CN
- China
- Prior art keywords
- security
- component
- architecture
- web application
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Abstract
本发明公开了一种基于AADL的Web应用架构安全性的评估方法,包括:步骤(1)、Web应用架构分解,步骤(2)、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型;步骤(3)、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;步骤(4)、架构安全值和架构安全威胁值计算。本发明可以在Web应用架构设计阶段,主动的评估架构的安全性,帮助架构设计人员及早发现Web应用架构中存在的安全问题,提升架构安全质量,从而提高Web应用的安全性。
Description
技术领域
本发明涉及可信计算领域;特别是涉及一种针对Web应用架构安全性的评估方法。
背景技术
目前,Web应用已经与人们的日常生活息息相关,然而近年来,Web应用的安全漏洞不断爆出,安全问题所带来的负面影响也越来越大,甚至威胁到了人类的生命,这引发了业界的密切关注。根据国际权威的Web应用安全机构OWASP所发布的TOP Ten,可以看出现在全球有效的网络攻击中,基于Web应用的占到了80%。由此可见,解决Web应用安全性问题已是迫在眉睫。
为了减少和解决Web应用中存在的安全问题,安全软件开发的共识是在软件开发生命周期中尽早考虑安全问题。根据业界大量的统计数据表明超过50%的安全漏洞是在软件设计初期注入的,即软件架构设计阶段。因此,如果能够在Web应用架构设计阶段,针对架构安全性进行可靠评估,那就会有助于判断架构设计方案是否满足安全性需求,及早地预测Web应用的安全质量属性,识别架构设计中可能存在的安全威胁,从而达到提高Web应用抵御安全风险能力的目的。
目前,关于Web 应用安全问题的相关研究工作取得许多有益的进展,产业界提出一些威胁检测方案以及检测工具,但是绝大多数方案和工具都是针对已成形的Web应用,缺少对架构设计阶段检测的研究方法或工具。了学术界已经有了一些成熟的评估软件架构非质量属性的评估方法,并得到广泛应用与验证。这些评估技术大致分为三类,第一类方法是基于场景的评估方法,例如软件架构分析方法(SAAM)、基于领域的 SAAM(ESAAMI)、软件架构折中分析方法(ATAM)。第二类是基于度量的评估方法,如基于贝叶斯网的软件体系评估方法(SAABNet)、软件架构变化的度量方法(SACMM)、软件架构层次可靠性风险分析方法(ALRRA)。第三类方法是基于特定架构描述语言的评估方法,如Rapide 方法等。
然而上述评估技术,主要存在两方面的不足之处:一方面是现有评估技术更多适应于评估软件架构的可靠性、可用性,不能充分满足针对安全性的评估需求。另一方面,“重量级”的评估技术,成本较高,“轻量级”的评估方法实用化程度低,“轻量级”的评估方法对软件架构描述精度不准确,这就影响了评估方法中所构造模型的质量。
发明内容
为了克服现有技术存在的缺陷,本发明提出了一种基于AADL的Web应用架构安全性的评估方法,在软件架构设计阶段,针对架构安全性进行可靠的评估,进而帮助判断架构设计方案是否满足安全性需求,识别架构中可能存在的安全威胁,达到帮助架构设计人员寻找安全风险的目的。
本发明提出了一种基于AADL的Web应用架构安全性的评估方法,该方法包括以下步骤:
步骤1、Web应用架构分解, 该步骤包括两项活动:将Web应用架构分解到组件层、组件功能与安全性需求描述;将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件;描述组件功能和安全性需求实现组件安全特征的提取;
步骤2、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模,建模过程包括组件建模和系统组件建模:利用组件类型定义了组件的接口元素和显性非功能属性;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模;AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程;
步骤3、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;
架构安全质量树生成算法表示如下:
其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component、layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i;表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制。代表父节点中第j个安全措施;运算符号∪表示这些元素的并,也就是集合中包含所有下标1-n的元素;
架构安全威胁树生成算法表示如下:
其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component,layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i; 表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;代表父节点中第j 个安全威胁事件;
步骤4、架构安全值和架构安全威胁值计算:
架构安全值的计算公式表示为:
输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn;
(1)、结合组件所处上下文环境,分析组件业务功能和对Web 应用的整体作用;
(4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现component i 比 component j 的权值大,component j 比component k 的权值大,而component k 又比component i 的权值大这种矛盾情况,保证各元素重要度之间的协调性。一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:
其中w为(3)中得到的组件安全性权值向量,为矩阵A与向量w乘积后得到向量的第i个元素;为向量w的第i个元素。一致性检验过程中,还需要一致性指标CI,其中,CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,越远离于n;最后计算一致性比例CR来检验矩阵A的一致性,,RI是随机一致性指标,通过查表得到;当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差,CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止;
通过以上的四步,计算得出架构中各组件的权值。
计算架构安全质量值:
d、计算模糊评价向量V i ,计算公式如下:
其中,vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m);
与现有技术相比,本发明可以在Web应用架构设计阶段,主动的评估架构的安全性,帮助架构设计人员及早发现Web应用架构中存在的安全问题,提升架构安全质量,从而提高Web应用的安全性。该方法预期达到如下有益效果:
1、提出了一套完整的针对Web应用架构现有安全机制的保障力度和架构潜在安全威胁进行评估的工程方法,该方法将评估焦点放在架构设计的安全性上。利用AADL 安全模型得到架构安全质量树和安全威胁树,从而提取可度量的架构安全性评估要素;
2、相对于基于调查问卷和基于场景的评估方式,这一评估方式降低了评估过程中对专家经验的依赖程度,减少了评估所需时间;
3、实现了架构模型转换工具,提高了Web 应用架构安全性评估效率,减轻评估人员的工作量,提高评估工作的自动化水平。
附图说明
图1为本发明的基于AADL的Web应用架构安全性的评估方法流程图;
图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为各架构组件的安全威胁值比较图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
如图1所示,为本发明的基于AADL的Web应用架构安全性的评估方法的总体评估流程,该方法主要包括四个部分,首先是分解Web应用架构;然后在架构分解的基础上,使用AADL对其进行描述分析,建构AADL架构模型;接着通过模型装换工具生成架构安全模型;最后根据安全性计算方法计算架构安全值,并依据架构安全值进行安全性评估。本发明主要步骤的详细描述如下:
步骤1、Web应用架构分解,该步骤包括两项活动:将Web应用架构分解到组件层和组件功能与安全性需求描述。分解架构是对Web 应用架构进行描述的基础。依照Web应用开发中被广泛使用的MVC 软件架构模式,将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件,其中组件可以是代码也可以是独立的程序,连接件可以是过程调用、管道和消息,用于表示组件之间的相互关系。描述组件功能和安全性需求实现组件安全特征的提取,安全性需求内容结合了CC 标准。因为不同的Web应用内部结构也不尽相同,这里不可能穷尽所有情况,所以给出参照模板如表1所示。
步骤2、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模,具体为在架构描述模型的基础之上,利用错误模型附件对Web应用架构中组件的安全威胁行为的描述,描述各个组件或连接件的安全属性、不安全事件和不安全状态转移行为等等;AADL架构安全性模型提供了对Web 应用架构中组件的安全威胁行为的描述,是对AADL架构描述模型在安全性能方面的深入说明,它们一起构成了完整的安全性行为的形式化描述。
如图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应用各组件的组件类型。
组件安全行为状态包括三种状态:正常态,安全态、安全威胁态。AADL 架构安全威胁模型提供了对 Web 应用架构中组件的安全威胁行为的描述,所以如图7所示,为组件安全行为状态机遇到安全威胁事件的示意图。安全事件包括安全威胁事件和安全防御事件,安全威胁事件是对常见攻击手段类型的总结,安全防御事件是对常见防御方法类型的总结。安全威胁事件会触发组件从正常态转移到安全威胁态。安全防御事件会根据对安全威胁事件进行反攻击,是否能够防御成功由安全防御事件的能力决定。如果防御成功则状态迁回到正常态,防御不成功组件仍旧处于安全威胁态。
表1、Web应用的架构分解表模板
如图8所示,为AADL架构安全威胁模型的建模过程示意图。组件安全行为状态机模型是AADL架构安全威胁模型的基础。AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程。在具体建模中,组件安全威胁模型处于图4和图5中error model annex的位置。
如图9所示,为安全威胁模型的形式化结构。
组件安全威胁传播模型的建立如下:Web应用架构包含了众多相对独立的子系统和组件,他们自上而下的构成了Web应用系统。在Web应用架构中,组件之间的数据流是传播安全威胁行为的路径。在组件安全威胁模型中,需要声明会有安全威胁事件传播的数据流或事件流。如图10所示,为安全威胁事件传播的声明方式。其中 error source, errorsink, error path 这三个关键字属于 flows 里的内容, error source 用来声明组件中features 的某点为安全威胁入口源, error sink声明组件中 features 的某点安全威胁终止源,error path 声明表示安全威胁行为具体的传播路径。
这样就得到表1中各个组件的安全状态机模型,其中控制器组件、UI组件、业务实体组件这三类组件没有安全状态机模型,因为它们没有直接的安全威胁事件。
步骤3、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树,
3-1、架构安全质量树是评估架构中已有安全措施的安全保障质量的关键,通过分析AADL架构描述模型后自动生成的。下面给出架构安全质量树的生成算法。架构安全质量树(SQT)由一个三元组来表示。
其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component,layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i;表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制。代表父节点中第j个安全措施;运算符号表示这些元素的并,也就是集合中包含所有下标1-n的元素;
从结构上讲,架构安全树模型有三个层次,依次是目标层、分解层和指标层。从内容上讲,架构安全质量树的指标为机密(Confidentiality) 、完整性(Integrality)、可用性(Availability),即CIA。架构安全质量树中的index节点表示组件的安全属性,内容分别是机密性、完整性和可用性,而后每种index节点下包含了相应类型的节点,节点内容为安全措施。架构安全质量分解树因Web应用系统架构中组件和连接件的多样性以及各组件的安全需求不同而不同。如图11所示,是一个架构安全质量树示例。
表2是组件的AADL 描述模型到架构安全质量树的对应规则。此规则确定了两种模型中各个元素之间的映射。
表2、AADL架构描述模型到架构安全质量树的对应规则
AADL架构描述模型 | 架构安全质量树(SQT) |
系统实例(System Implementation) | 根节点(<i>root</i>) |
组件类型信息(component type) | 层节点(<i>layer</i>) |
组件实例(component Implementation) | 组件(<i>component</i>) |
组件类型属性(properties) | 组件安全措施(<i>leafnodeSM</i>) |
如图12所示,为架构安全质量树的生成算法,它是对上述规则的自动化表示,输入是AADL架构描述模型,输出是架构安全质量树图形。
3-2、架构安全威胁树是评估架构中是否存在安全威胁,已有安全措施的能否满足全部的架构安全性需求的关键。架构安全威胁树(STT),它由一个三元组来表示。
其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component,layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i; 表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;代表父节点中第j 个安全威胁事件;
从结构上讲,架构安全威胁树模型有三个层次,依次是目标层、分解层和指标层。从内容上讲,架构安全质量树的指标从安全性的三个子属性来刻画:机密威胁、完整性威胁、可用性威胁。架构安全威胁树中的index节点表示组件的安全威胁特性,有三种类型的内容,分别是机密性威胁、完整性威胁和可用性威胁,而后每种index 节点下包含了相应类型的节点,其内容为安全威胁事件。由于Web应用系统架构中组件和连接件的多样性以及各组件的安全威胁行为多样性,导致架构安全威胁树也不尽不同。如图13所示,是一个架构安全威胁树示例。
表3、组件的AADL 架构安全威胁模型到架构安全威胁树模型的对应规则
此规则确定了两种模型中各个元素之间的映射。
如图14所示,为架构安全威胁树的生成算法。它是对上述规则的自动化表示,输入是AADL 架构安全威胁模型,输出是架构安全威胁树图形。
本发明实现了架构模型转换工具,可以将AADL 架构模型自动转换为架构安全模型。如图15所示,为模型转换工具的总体结构。从结构上看,工具分为架构信息解析模块,架构转换规则模块和架构信息重组模块三部分。下面对各个模块进行阐述。
架构信息解析模块主要的功能是对AADL 架构模型进行解析,分为两个部分。第一部分是解析安全机制。它的功能是遍历架构组件,解析组件AADL 模型,获取架构各组件的安全性机制。第二部分是解析组件安全信息流程,如图16所示。该流程具体包括:解析组件流信息,步骤601;是否存在安全威胁模型信息,步骤602;如果存在,则解析该安全威胁模型信息,步骤603;根据该安全威胁模型信息匹配安全威胁事件、传播安全威胁,步骤604。
通过上一模块的分析,得到了组件安全威胁信息。为了以树形模式展现架构安全威胁信息,需要对组件安全威胁信息经行整理加工。具体流程如下,首先按照自底向上的方式遍历AADL 模型所有组件。在遍历过程中,从组件安全威胁信息中解析出组件所含全部的安全威胁事件并将他们作为事件型子节点。如果组件存在父组件或者子组件,以组件事件类型记下每个组件的父节点与子节点组件,直到遍历完成。
模型转换工具是基于Eclipse平台,以插件的形式注入到了Osate2中。
步骤4、架构安全质量值和架构安全威胁值计算:
其中为架构的组件安全性权重向量,为组件的权重,组件安全性权值代表了组件安全性在Web应用架构中的相对重要度,它是由组件内部的安全性需求和组件所处的上下文环境决定。为架构安全质量值向量,为组件的安全质量值,架构安全质量值反映了架构中现有安全措施的安全保障力度,计算过程是基于架构安全质量树形完成的,树中的叶节点提供了某个组件所有的安全措施,以此作为具体的评估指标。在具体评估时,为降低组件安全质量值的主观性,可以使用分层模糊评价法来计算。为架构的安全威胁向量,为组件的安全威胁值,其评估过程与架构安全质量值的计算过程相似。下面介绍公式中各个元素的计算方法。
4-1、计算组件安全性权值:
输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn。
(1)、结合组件所处上下文环境,分析组件业务功能和对Web 应用的整体作用;
(3)、计算偏序矩阵A的特征值向量,归一化特征向量,从而得到各组件的权值向量。计算矩阵A 的特征向量时,因为通常 Web应用组件数目角度,常规方法运算太过复杂,不必用常规的方法,建议使用方根法做近似计算,首先求出每一行元素的乘积,求得每一行元素的乘积后,再对每一行的乘积求n次方根,计算公式如下:
(4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现component i 比 component j 的权值大, component j 比 component k 的权值大,而component k 又比 component i 的权值大这种矛盾情况,保证各元素重要度之间的协调性。一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:
其中w为(3)中得到的组件安全性权值向量,为矩阵A与向量w乘积后得到向量的第i个元素;为向量w的第i个元素。一致性检验过程中,还需要一致性指标CI,其中,CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,越远离于n。最后计算一致性比例CR来检验矩阵A的一致性,,RI是随机一致性指标,可通过查表得到,如下给出1-12阶RI参考值。当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差。一般认为CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止。
表4、1-12阶RI参考值
阶数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
RI | 0 | 0 | 0.58 | 0.9 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 | 1.49 | 1.51 | 1.54 |
通过以上的四步,可计算得出架构中各组件的权值。
其中,rij代表中第i项安全措施对于第j个等级的偏向程度。偏向程度通常是依据评级集合对评估对象打分,根据得分情况,确定综合比得出。例如中第i项安全措施在第j等级的得分较在第k等级的得分高,那么rij就会比rik的数值大,也表明中第i项安全措施更偏向于第j等级。
(4)、计算模糊评价向量V i ,计算公式如下:
其中vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m)。
4-3、架构安全威胁值计算
接下来以一个具体实例来展示基于AADL的Web应用架构安全性的评估方法。选取了代码开源、文档资料较为丰富的购物网站JeeShop(http://www.jeeshop.net/)为分析对象,用到的其他工具有架构描述工具Osate2,架构安全质量树和架构安全威胁树的浏览工具openFTA。下面对JeeShop 架构进行详细地安全分析。
1.分解Web应用架构
JeeShop 是一款典型的基于MVC 的Web 应用,采用了Strut2 和Spring3 开发框架,共分为四层,客户层、表现层、业务层和数据层。JeeShop 的工作原理如下:首先,用户利用浏览器向Web 服务器发送Http请求,表现层的Web 容器接受客户端请求并作信息提取,之后将提取的有用信息转发给过滤器和拦截器进行预处理,经预处理后,信息流入到控制器(ActionServelet),此时控制器判断是否需要调用业务层的相关业务实体,如果需要信息流入到业务层,有业务实体进行业务逻辑操作,业务实体会根据需要调用数据库中的数据,之后业务实体返回处理结果到控制器,控制器调用相关页面作为处理结果返回到浏览器中。表5为JeeShop的架构分解结果。
2.建构AADL架构模型
依据上述的描述要素并结合表5的JeeShop架构分解结果,为JeeShop架构建立AADL架构描述模型和AADL 安全威胁模型。由于AADL描述模型数量较多,无法在本文中全部展示。这里仅以客户端浏览器与表示层Web容器为例进行说明,附图17至图19所示。
3.生成架构安全模型
根据JeeShop架构的AADL架构模型和安全威胁模型,利用架构模型转换工具,对AADL 架构模型进行安全分析后可得到架构安全质量树和安全威胁树,这便得到了JeeShop的AADL安全性模型。
图20是Web应用架构安全质量树中客户端与Web 容器截图。其中客户端组件的三个子节点是客户端组件中的所采取的安全措施,Web容器组件包含的三个子节点是Web容器组件中的所采取的安全措施。
附图21是应用架构安全威胁树中客户端与Web容器部分对比图,图中客户端的共有三类安全威胁事件,其中安全威胁事件event18依照附图21架构安全威胁模型中flows声明的unsecurity_flow流入到组件Web容器,并对它产生相应的威胁,客户端中其余的两类安全威胁事件被Web容器的相对应的安全机制拦截,这两类安全威胁不会对Web容器产生危害。
4.架构安全值计算及分析
4.1组件权值计算
组件权重是上述方法得到的,在比较组件安全重要性时,评估人员需要使用比较尺
度,比较尺度如表6所示。按照表5中各组件的顺序进行比较,得到安全性重要程度偏序矩阵A,其特征向量是
归一化后
经过一致性检验后,由此得到了组件的权重向量w。
4.2架构安全质量值计算
在这里选取第三方组件中的支付组件为例子来说明。依据架构安全质量树可以得到保护支付组件安全性的安全机制,则它的安全措施集合为:
I={组件是否更新:否;通信协议:https;认证方式:实名认证;支付方式:动态支付}
同理,可得到其他组件的模糊安全值,经过计算,组件的安全值向量为:
表5、JeeShop的架构分解结果
表6 比较尺度表
4.3 安全威胁值计算
仍选取第三方组件中的支付组件为例子来说明。依据架构安全威胁树可以得到缺少防御支付组件可能带来安全风险的安全机制,则它的安全威胁集合为:I={无对本地可信类访问控制的安全措施;无对系统文件访问控制的安全措施;无对网络访问控制的安全措施;无对Java 虚拟机访问控制的安全措施;无对系统资源访问控制的安全措施}
4.4 评估结果
本实例中将结合组件权值、架构安全质量值向量和架构安全威胁值向量,从两个方面给出架构的安全性评价。
如图22所示,为各架构组件的权值比较图。其中,第三方组件、Web 容器组件和EJB容器组件的权重最高,由图可看出它们三者相对其他组件来说,对于整个架构的更为重要。
第一方面是判断架构中所采用安全措施的保障质量,图23是各架构组件安全质量值的柱状图,从图中可看出安全质量值较高的组件有拦截器和EJB容器,说明拦截器和EJB容器中所采用的安全措施较为得当,能够有效保护组件安全性,防御安全威胁。但权重最高的第三方组件对应的安全质量值却较低,这显示了第三方组件中所采用的安全措施防御能力较差,需要重新设计安全方案。
第二方面是评价架构中现有安全机制能否覆盖Web应用系统全部的安全性需求,根据构件安全威胁值可以得到缺少安全防御措施的构件。图24是架构组件安全威胁值的柱状图。从图中看出,第三方组件的安全威胁值相以其他组件要高的多,而且第三方组件的权重比重大,说明第三方组件中存在比较严重的安全威胁,其现有的安全防御措施并不能覆盖组件全部安全性需求,这就提醒架构设计人员寻找之前没有考虑到的安全威胁,全面提升组件的安全防御机制。
Claims (1)
1.一种基于AADL的Web应用架构安全性的评估方法,其特征在于,该方法包括以下步骤:
步骤(1)、Web应用架构分解,该步骤包括两项活动:将Web应用架构分解到组件层、组件功能与安全性需求描述;将软件架构分解四个层级包括客户层、表现层、业务层、数据层,每个层次包含若干组件和连接件;描述组件功能和安全性需求实现组件安全特征的提取;
步骤(2)、建构AADL架构安全性模型,包括建构AADL架构描述模型和AADL架构安全威胁模型:AADL架构描述模型是通过AADL语言对架构内各组件的内部特征、外部接口和与其他组件的外部连接系进行建模,建模过程包括组件建模和系统组件建模:利用组件类型定义了组件的接口元素和显性非功能属性;AADL架构安全威胁模型是针对各组件的安全威胁特征进行建模;AADL架构安全威胁模型包括组件安全行为状态机模型和组件安全威胁传播模型,其中:组件安全状态机模型包括组件安全状态根据安全威胁事件而触发组件安全威胁状态机;组件安全行为状态机模型是通过状态机来描述构件的安全行为;组件安全威胁传播模型包括流信息,安全威胁传播会根据安全威胁传播行为完成威胁传播过程;
步骤(3)、生成架构安全树模型,该模型包括架构安全质量树和架构安全威胁树;
架构安全质量树生成算法表示如下:
其中,root表示web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component、layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i;表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;代表父节点中第j个安全措施;运算符号∪表示这些元素的并,也就是集合中包含所有下标1-n的元素;
架构安全威胁树生成算法表示如下:
其中,root表示Web应用架构,在树中有且只有一个;node表示节点的有限集合,集合中的元素包括三类,分别是component,layer和index,其中component i 表示Web应用架构中的第i个组件,layer i 是Web应用架构中第i个层次节点i,index i 表示度量准则指标i; 表示一个有限集合,集合的元素是组件中全部的安全措施或安全机制;代表父节点中第j个安全威胁事件;
步骤(4)、架构安全值和架构安全威胁值计算:
架构安全值的计算公式表示为:
输入:Web应用架构设计中涉及到的全部组件C1、C2、C3、…、Cn;
(1)、结合组件所处上下文环境,分析组件业务功能和对Web 应用的整体作用;
(4)、对矩阵A做一致性检验,若检验不通过则返回步骤(2)重新设计矩阵A,通过检验则输出权值向量w;在得到权值向量之后必须进行一致性检验的,目的是为了避免出现component i 比component j 的权值大,component j 比component k 的权值大,而component k 又比 component i 的权值大这种矛盾情况,保证各元素重要度之间的协调性;一致性检验过程中,需要计算矩阵A的最大特征值,其计算公式如下:
其中w为(3)中得到的组件安全性权值向量,为矩阵A与向量w乘积后得到向量的第i个元素;为向量w的第i个元素;一致性检验过程中,还需要一致性指标CI,其中,CI的值越大,说明偏序矩阵A偏离完全一致性程度越大,越远离于n;最后计算一致性比例CR来检验矩阵A的一致性,,RI是随机一致性指标,通过查表得到;当CR=0时,判断矩阵具有完全一致性,CR越大则一致性越差,CR<0.1时判断矩阵基本满足一致性,计算结果具有较高的可信度,否则需对偏序矩阵A进行改进直到满足一致性为止;
通过以上的四步,计算得出架构中各组件的权值;
计算架构安全质量值:
d、计算模糊评价向量V i ,计算公式如下:
其中,vi表示该组件第i项安全措施的模糊评价值(i=1,2,3,…,m);
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710333755.7A CN107103244B (zh) | 2017-05-12 | 2017-05-12 | 基于AADL的Web应用架构安全性的评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710333755.7A CN107103244B (zh) | 2017-05-12 | 2017-05-12 | 基于AADL的Web应用架构安全性的评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107103244A CN107103244A (zh) | 2017-08-29 |
CN107103244B true CN107103244B (zh) | 2020-04-17 |
Family
ID=59669183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710333755.7A Active CN107103244B (zh) | 2017-05-12 | 2017-05-12 | 基于AADL的Web应用架构安全性的评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107103244B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376221B (zh) * | 2018-02-27 | 2021-07-13 | 哈尔滨工业大学 | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 |
CN108595959B (zh) * | 2018-03-27 | 2021-10-22 | 西北工业大学 | 基于确定性随机Petri网的AADL模型安全性评估方法 |
CN109446805B (zh) * | 2018-10-19 | 2021-10-29 | 西安电子科技大学 | 信息流完整性攻击度量方法及其计算机装置、可读存储介质 |
CN109492901B (zh) * | 2018-11-06 | 2023-01-20 | 华北电力大学 | 一种利用多层安全防护体系进行安全防护的方法及系统 |
CN111176724B (zh) * | 2019-10-18 | 2022-06-28 | 华为云计算技术有限公司 | 一种软件架构分析的计算机实现方法及其装置 |
CN112015373B (zh) * | 2020-07-28 | 2022-02-11 | 华东师范大学 | 一种基于形式化方法的内生安全应用软件形式建模方法 |
CN114095206A (zh) * | 2021-10-25 | 2022-02-25 | 南京林业大学 | 一种基于aadl的攻击防御树的自动生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103677A (zh) * | 2011-03-09 | 2011-06-22 | 天津大学 | 威胁模型驱动的软件安全评估方法 |
CN103095730A (zh) * | 2013-02-21 | 2013-05-08 | 健雄职业技术学院 | 基于故障树的信息安全风险评估方法及其系统 |
CN103970651A (zh) * | 2014-04-18 | 2014-08-06 | 天津大学 | 基于组件安全属性的软件体系结构安全性评估方法 |
CN104683378A (zh) * | 2013-11-27 | 2015-06-03 | 上海墨芋电子科技有限公司 | 新技术的一种新型云计算服务平台的计算调试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8020190B2 (en) * | 2005-10-14 | 2011-09-13 | Sdc Software, Inc. | Enhanced browser security |
-
2017
- 2017-05-12 CN CN201710333755.7A patent/CN107103244B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103677A (zh) * | 2011-03-09 | 2011-06-22 | 天津大学 | 威胁模型驱动的软件安全评估方法 |
CN103095730A (zh) * | 2013-02-21 | 2013-05-08 | 健雄职业技术学院 | 基于故障树的信息安全风险评估方法及其系统 |
CN104683378A (zh) * | 2013-11-27 | 2015-06-03 | 上海墨芋电子科技有限公司 | 新技术的一种新型云计算服务平台的计算调试系统 |
CN103970651A (zh) * | 2014-04-18 | 2014-08-06 | 天津大学 | 基于组件安全属性的软件体系结构安全性评估方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107103244A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107103244B (zh) | 基于AADL的Web应用架构安全性的评估方法 | |
US11050778B2 (en) | Complex application attack quantification, testing, detection and prevention | |
US11615331B2 (en) | Explainable artificial intelligence | |
Rempel et al. | Preventing defects: The impact of requirements traceability completeness on software quality | |
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
Li et al. | Block: a black-box approach for detection of state violation attacks towards web applications | |
JP2018538587A (ja) | リスク評価方法およびシステム | |
US20210112101A1 (en) | Data set and algorithm validation, bias characterization, and valuation | |
CN112818351B (zh) | 一种面向工控系统的漏洞优先级分析方法、系统、设备及存储介质 | |
Allahbakhsh et al. | Representation and querying of unfair evaluations in social rating systems | |
García et al. | A survey on ontology metrics | |
Gutiérrez‐Madroñal et al. | Evolutionary mutation testing for IoT with recorded and generated events | |
CN114547415A (zh) | 工业物联网中基于网络威胁情报的攻击模拟方法 | |
Xiong et al. | A method for assigning probability distributions in attack simulation languages | |
Tomar et al. | Prediction of quality using ANN based on Teaching‐Learning Optimization in component‐based software systems | |
CN112016138A (zh) | 一种车联网自动化安全建模的方法、装置和电子设备 | |
Derr et al. | Relevance measurements in online signed social networks | |
CN114036531A (zh) | 一种基于多尺度代码度量的软件安全漏洞检测方法 | |
Luo et al. | TINET: learning invariant networks via knowledge transfer | |
Meyer et al. | Certifying robustness to programmable data bias in decision trees | |
Hu et al. | CPA firm’s cloud auditing provider for performance evaluation and improvement: an empirical case of China | |
Robles et al. | Sampling of attributed networks from hierarchical generative models | |
Wideł et al. | Security countermeasures selection using the meta attack language and probabilistic attack graphs | |
Kirschner et al. | Automatic derivation of vulnerability models for software architectures | |
Lamba et al. | Model-based cluster analysis for identifying suspicious activity sequences in software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |