版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种安全关键的软件模型及风险评估方法摘 要:软件开发早期的风险评估可有效减少软件中潜在的设计缺陷,降低测试和维护阶段的成本。本文安全关键软件的需求,提出了一种基于 Z 语言的软件对象-消息-模型 OMR,将软件功能模型与基于的模型进行融合;在此基础上,为与软件安全约束为评估以 OMR 模型中的依据,提出了一种软件对象为评估,以对象间的软件风险评估方法RAMES,该方法遵循风险评估标准 AS/NZS 4360中的风险管理过程,从数据流安全的角度对软件的安全性设计进行风险计算与评估,并在风险不可接受的情况下提供消除或降低软件模型风险的改进方向;最后,通过一个软件实例对该方法进行了应用说明。1概述在
2、可接受的频率和影响范围内的能力1。软件的安全软件的性是指软件将失效以及从失效中恢复的能力2。安全性具有性(Security)是指软件具有抵抗、性、完整性、可用性等子属性,是软件最重要的属性之一。随着软件在关键领域的广泛应用,如何在研制过程中保障和评估其安全性质,是国内外越来越关注的研究热点之一。由于据的泄露2,目前软件的开放性和交互性日益增长,因此更容易而导致数软件中的安全防护措施远远不能满足其安全需求。另一方面,由于软件在用大量的计算就要求我们对和能量等方面受到的限制很大,而数据安全保障又往往需要占软件中的安全关键模块2。这,因此我们需要将有限的集中于软件进行安全性评估,从而寻找系统脆弱性所
3、在的模块,从而有性地对其安全策略进行改进。风险评估是软件安全性评估的常用方法,各国均已颁布了一系列软件安全风险评估的相关标准3-5,学术界也对软件的风险评估模型与方法进行了很多研究6-8。在软件开发过程的早期对软件模型进行风险评估,能够根据评估结果对软件模型进行反馈与修改,是节约软件开发后期维护成本的一个有效途径。然而,现有软件开发过程中很少考虑软件模型阶段的量化风险评估 7,不利于对软件的安全性设计进行改进。并且,现有研究成果中缺乏嵌入式软件的安全性建模方法以及软件安全性质的风险识别、分析与评估方法,从而无法识别高风险的物理7。因此,我们的研究目标是基于国际公认的风险评估标准过程,提出一种能
4、够识别计问题奠定基础。现有软件模型中安全特性的风险评估方法,为解决软件安全性设软件的建模方法主要包括 MARTE9、AADL10等半形式化方法,其精确语义的缺乏使得这些方法不利于软件性质的严格验证。为了解决这一问题,半形式软件的建模,这一研究途径已被众多学者所采用7,化方法与形式化方法相结合进行11-13,能够有效地提高半形式化方法的可验证性和扩展形式化方法的描述能力。目前,用于描述与评估软件安全风险的形式化语言主要包括 Petri 网7, 14、模型15、Z 语言16、排队网络8、理论17、模糊逻辑18, 19等。其中Z 语言具有很强的逻辑描述能力,能够精确表达软件中的各种约束,因此在软件工
5、程领域常用于软件规约的建立20。另一方面,现有基于模型的大多数软件安全性分析方法中,软件功能模型与型是相互分离的,这很大程度上增加了实施安全性分析过程的复杂性。在设计紧耦合的软件模型的基础上研究其安全性分析方法,已成为许多学者关注的研究方向21。由于 Z 语言具有很好的可扩展性,适用于将软件的功能模型扩充为分析,因此本文选用 Z 语言来定义型,并通过现有的验证和确认工具对模型进行安全性软件模型以及描述其风险评估方法。1本文的主要成果包括:借鉴 MARTE 建模规范以及机制的 SecureUML 建模规范22,将软件功能模型与型相融合,采用 Z 语言定义了一种形式化的嵌入式软件模型,称为对象-消
6、息-模型(Object-Message-Role, OMR),用于描述待评估的软件功能结构与安全策略;在此基础上,参考 AZ/NZS4360 标准3中的定义的风险管理过程,对其安全风险识别、风险分析、风险处理等基本概念与方法进行了面向 OMR 模型软件安全风险评估方法 RAMES(Risk Assessment的拓展,并提出了一种形式化的Mfor Embedded Systems),可用于指导软件的安全性设计;最后,通过一个实例对本文提出的 RAMES 方法进行了应用说明,以验证其可行性和有效性。2国内外研究现状目前,软件的风险评估方法主要包括定性评估方法和定量评估方法两类:定性评估方法定义了
7、对软件风险评估的指导性过程,多依赖于知识及管理的经验,其适应性与灵活性较强,但评估结果带有因素,只能定性地描述软件风险状况以及安全保障措施;而定量评估方法则根据软件体系结构或模块复杂性等特性,建立软件自身或外部环境的模型,并通过形式化的风险评估方法得到量化的评估结果。形式化语言的优点在于其严格的语义结构和分析,能够更精确地描述软件的安全性约束,且自动化程度更高,但这有可能导致客观方法的描述与分析能力依赖于所采用的形式化语言本身。由于现有风险评估标准所采用的评估方法中缺少可靠的量化评估信息和时间约束,因此大多数并没有给出定量的评估方法6。为了选择适用的风险评估标准来指导本文的评估过23与对业程,
8、我们对提供量化风险评估相关的标准进行了对比与分析,主要包括 ISO 13335-2AS/NZS 43603。ISO 13335-2 标准23提供了建立通用风险管理框架的规范,从安全务所产生危害的角度评估风险带来的影响,然而 ISO 的相关标准并未包含风险分析方法的描述。AS/NZS 4360 标准3为风险评估过程提供了一个可定制的瀑布模型,其风险值的两个度量因子为风险的“发生概率”以及“影响”,并且综合考虑了“接受某种程度的风险”所带来的益处,能够较好地与软件系统安全性设计的实际情况相吻合。因此,我们采用 AS/NZS 4360 标准中的风险管理过程(Risk Management Proce
9、ss, RMP)来指导本文的评估过程。风险评估方法在学术界也已经有很多研究成果值得我们借鉴。OCTAVE 风险评估方法24 定义了一种综合风险评估过程,分为建立威胁文件、识别基础设施脆弱性、以及制定风险控制计划三个步骤,以条件集合的形式定义资产基本元素的安全风险,但是没有提供量化的风险度量方法。CORAS 方法25采用扩展的 UML 图形对软件资产、威胁与风险进行建模,并提供了图形化的工具来评估风险应对措施的组合对风险的消减作用。但是,CORAS 的风险模型并未与软件功能模型紧密耦合,用于风险分析的信息需要手动输入,且该方法并未采用形式化的进行风险计算。基于形式化语言的定量软件风险评估方法借助
10、形式化语言本身的特性来描述软件的安全结构与安全策略,而不同的形式化方法在描述上具有不同的特点与优势。文献26提出了一种基于有色 Petri 网的实时文献27提出了一种基于络风险评估模型,能够实时分析和评估风险;理论的网络风险定量评估模型,可实时定量地计算出主机和网和总体网络风险强度;文献28给出了一种层次分析法与模糊络当前所的各类逻辑法相结合的信息系统综合风险评估模型,通过将评估值进行定量描述,从而得出更为客观的评估结果。这些研究成果对软件的外部网络环境进行建模与风险评估,然而模型中没有包括软件本身的结构与行为,因此这些研究成果无法评估软件的安全性设计是否存在缺陷。文献15基于 UML 状态图
11、和顺序图来识别高风险的构件和连接器,并通过建立和求解一个模型来计算场景的风险因子,从而评估由外部环境引入的风险,识别潜在的不可靠的软件构件;文献8提出了一种估算基于性能的风险因子的方法,采用经典的排队网络2分析方法,来计算 UML 顺序图和部署图中的场景失效概率;文献16提出了一种软件风险评估方法,软件系统外部环境的风险,采用 Z 语言对风险评估模型的基本结构以及风险计算过程进行了形式化实例研究,该方法采用新的度量标准来支持传统风险评估,并能在动态和分布式系统中进行持续的评估。这些研究成果基于软件模型进行安全风险的评估,但并没有软件的特性进行建模,因此无法识别安全关键的硬件。文献7采用 UML
12、 和 MARTE(Ming and Analysis of Real Time and Embedded systems)9规范建立软件模型,并由其导出时间 Petri 网(Time Petri Net, TPN)29模型,通过界限技术30对模型的时间失效概率进行求解,能够有效识别模型中的高风险硬件。将现有研究工作进行对比可以发现,Petri 网、有限自、故障树等方法主要基于软件的动态行为进行建模,而 Z 语言20基于集合论与一阶谓词逻辑,主要用于描述软件的状态空间及操作规约。Z 语言以模式(Schema)为基本结构,模式包含(declaration)与谓词(predicate)两个部分,其中
13、部分用于状态或变量,而谓词部分用于定义变量之间的约束。因此,Z 语言具有“描述性”的特点,能够对软件的状态与操作进行较好的表达, 在解决软件数据安全的建模与分析问题时具有较大的优势。Z 语言在软件安全性分析与验证方面已经有不少研究成果。文献31给出了一种BLP 模型32的安全性验证方法,采用 Z 语言20建立了多级安全(Multilevel Security, MLS)机制在包含多级客体的系统中的形式化模型,并采用 Z/EVES 定理证明工具验证模型的安全不变式(invariant)是否满足 MLS 策略;文献33定义了一种基于 DTE 策略的Z 形式模型,采用 Z 语言形式定状态、基于信息流
14、分析的不变量和安全状态,并借助 Z/EVES 工具给出验证系统安全的形式化分析方法;文献21采用 Z 语言建立了一种软件安全性确认模型,并采用动画技术34设计了对软件安全性质的确认方法,但该方法需要手动设置确认场景,因此无法保证场景的覆盖率。这些研究工作文的工作提供了一定的借鉴作用,但是现有研究工作中没有涉及软件结构与约束的建模方法。因此,本文采用 Z 语言对软件模型进行了研究,并在文献16的研究成果基础上提出软件的风险评估方法。由于软件具有与物理计算/与软件紧密耦合的特性,我们需要将形软件的建模。MARTE9是OMG 于 2007 年底发式化方法进行相应的扩展后才能用于布的一个 UML 扩展
15、标准。由于 MARTE 提出了较完善的功能/能建模元素,为复杂嵌入式软件的构造和分析提供了基础,已成为软件的常用建模方法。本文借鉴 MARTE 类图与顺序图中的元素来建立另一方面,软件功能模型与软件功能模型,包括面向对象结构的建模与型的松耦合关系不利于形式化的安全性分析,建模等。二者相融合,我们需要将软件功能模型进行安全约束的扩展。SecureUML 模型22在 UML 模型中(Role-Based Access Control, RBAC)35模型,从软件用户的概添加了基于念中抽取“的”(Role)模型,将其赋于安全关键的软件实体,并将每个与一组“权限”(Permission)进行关联。但是
16、由于 UML 中缺少操作规约21,我们无法描述软件系统对用户实施的具体 础上扩展资产、言描述的机制。本文借鉴 SecureUML 中的元素,在软件功能模型的基型的紧耦合关系,并给出 Z 语与权限等概念,建立功能模型与软件安全操作规约,为风险分析与计算奠定基础。综上所述,为了解决软件的安全风险评估问题,本文采取的研究方法为:借鉴MARTE 与 SecureUML 模型中的元素,通过扩展 Z 语言的元模型,建立功能模型与软件模型;在 AZ/NZS4360 标准定义的 RMP 过程基础上,借鉴文献16型相融合的的研究成果,提出一种能够识别软件安全特性的风险评估方法。软件对象-消息-模型 OMR3在以
17、 UML 为代表的软件面向对象(OO)设计模型中,软件对象(Object)是构件(类)3的实例化,而对象间的通信是触发软件状态变迁的条件。由于软件的开放性和交互性特征,系统中的数据更易被用户利用已有接口进行读/写。为了评估软件模型中是否存在潜在的路径,首先需要描述软件中数据与传输的基本结构,即软件功能模型;其次需要在功能模型的基础上,描述数据与传输过程中的安全策略,即软件的型。功能模型与型元素以型进行紧密耦合,我们采用 Z 语言的模式(declaration)的方式融合到功能模型元素中,从(Schema)结构,将而对功能模型元素的属性进行安全约束。为了保持软件模型与 UML/MARTE 标准的
18、一致性,本文从类图、对象图与顺序图中提取所需信息,采用对象-消息的模式来建立软件的功能模型;另一方面,为了描述软件的安全约束,并将其与软件功能模型相融合,采用基于的(Role-Based Access Control, RBAC)机制35建立了模型,为软件中的数据设计了一系列安全属性,并将其作为对象-消息模型之上的型元素。由此所建立的软件模型被命名为对象-消息-模型(Object-Message-Role, OMR)。下面,我们采用 Z 语言的模式结构对对象模型、消息模型、模型中的元素分别进行形式化定义,随后将其整合到 OMR 模型中,并给出它们之间的约束关系。3.1 对象模型为了描述软件的静
19、态特征及其安全性相关结构,OMR 对象模型需要描述的基本结构包括:软件对象的类型、对象中的数据、这些数据的操作、以及作用于对象的安全措施等。由于软件对象包括软件与硬件两类,而来。这两类对象的安全策略有所不同,因此在有必要在对象模型中将其区定义 3.1 对象模型的基本数据类型包括:(1)对象 记软件对象集合为 O、对象类型为一个给定集合 OTYPE:OTYPE=soft|hard其中 soft 表示软件类型,hard 表示硬件类型。(2)资产 定义资产为对象中用于或计算的数据,每个资产具有特定的安全属性。安全属性包括安全需求与安全等级,其中安全等级必须属于一个具有偏序关系的集合。记资产集合为 A
20、SSET、安全需求集合为 CONCERN、安全等级集合为 SL,其中 ASSET 中的元素为软件中的数据类型,CONCERN 与 SL 中的元素由用户自定义,SL 中的元间必须具有某种偏序关系,可采用运算符进行排序。本文假设任意 i1,i2X,X 是具有偏序关系的集合, 可用 i1< i2 来表示的 i1 的排序比 i2 靠前。(3)操作 为了描述对象操作对资产安全属性的影响,定义对象操作由其输入参数、修改参数以及输出参数组成,其中修改参数用于操作是否对资产进行了修改。操作中的各参数可以是本地的数据,也可以是由其他对象传输的数据,因此一定与某个对象的资产相关联。记操作集合为 OP。(4)
21、安全措施 对象的安全措施是为了保护对象资产的安全需求所采取的策略,假设每个安全措施对资产的保护程度可归一化为一个0,1区间内的值,称为安全因子,且保护程度越大,该值越小。记安全措施为一个给定集合 SP:SP=en|ac|ve其中 en 表示数据加密策略,ac 表示策略,ve 表示数据校验策略。对象模型 MOfObject 的部分包括七个变量集合:对象(Objects)、资产(Assets)、对象类型(OTypes)、操作(Ops)、安全等级(Sls)、安全需求(Concerns)、对象的安全措施(Osps);以及三个关系:资产及其安全属性的关系(AssetsAssigns)、对象与资产/对象类
22、型/操作的关系(ObjectsAssigns)、操作与资产的关系(OpsAssigns)、对象与安全措施的关系(OspsAssigns)。MOfObject 模式的谓词部分约束了上述变量和关系之间的一个一致性4条件:(1)在设置安全措施(o, (a, sp, c, spr)时,需保证安全措施(a, sp, c, spr)已在 Osps 集合中定义,其所作用的资产 a 需属于对象 o 的资产集合 aset,且其中的安全需求 c 需要与AssetsAssigns 关系中定义的资产 a 的安全需求相一致。具体定义如下:MOfObject Objects: 𝔽 O; Assets: &
23、#120125; ASSET; OTypes: 𝔽 OTYPE Ops: 𝔽 OP; Sls: 𝔽 SL; Concerns: 𝔽 CONCERN Osps: ASSET×SP×CONCERN×AssetsAssigns: ASSET( SL×CONCERN) ObjectsAssigns: O( 𝔽 ASSET×OTYPE×𝔽 OP) OpsAssigns: OP (𝔽 ASSET×𝔽 ASSET
24、×𝔽 ASSET) OspsAssigns: O(ASSET×SP×CONCERN×)(o, (a, sp, c, spr)OspsAssigns (a, sp, c, spr) Osps (o, (aset, ot, opset) ObjectsAssigns; slSls aaset (a, sl, c) AssetsAssigns3.2 消息模型软件的动态特征及其安全相关结构,我们需要在 OMR 消息模型中描述为了描述对象间的通信关系和数据传输的安全策略。对象间的信内容为操作的输入/输出参数,即源对象所拥有的资产。定义 3.2. 消
25、息模型的基本数据类型包括:为是由操作的执行所引起的,通(1)消息 消息是软件对象之间的通信内容,记消息集合为 MSG。消息的结构中包括源对象、操作、消息内容以及目的对象,其中消息内容可以是本地其他对象传输的数据,因此一定与某个对象的资产相关联。的数据,也可以是由(2)安全措施 消息的安全措施是为了保护消息内容的安全需求所采取的策略,其定义与对象的安全措施相同。消息模型 MOfMsg 的部分包括两个变量集合:消息(Msgs)、消息的安全措施(Msps);以及两个关系:消息与对象/操作/消息内容的关系(MsgsAssigns)、消息与安全措施的关系(MspsAssigns)。具体定义如下:MOfM
26、sg Msgs: 𝔽 MSGMsps: ASSET×SP×CONCERN×MsgsAssigns: MSG(O×OP×ASSET×O) MspsAssigns: MSG(ASSET×SP×CONCERN×)模型RBAC35机制为软件的每一类用户分配一种3.3、以及一组对应的权限,用于描述该类用户对软件资产的操作能力。在 OMR模型中,我们不仅需要描述用户与、与在权限的对应关系,还需要描述OMR 模型中定义。之间的非循环继承关系。权限与软件资产的对应定义 3.3.模型的基本数据类型包括:(1
27、)用户 每个软件用户由一个唯一标识来表示,记用户标识集合为 ID。(2)循环继承。记名称为一个给定集合 ROLE。之间可以限的继承,但不5(3)权限 权限是分配给用户的某一(类)软件资产的操作权,记权限集合为 PER。本文假设权限包括读与写两种,记权限类型为一个给定集合 PTYPE:PTYPE=read|write其中 read 表示读权限,write 表示写权限。模型 MOfRole 的部分包括四个变量集合:用户标识(Users)、Roles)、权限(Pers)、权限类型(PTypes);以及五个关系:资产与权限的关系(PersAssigns)、用户标识与的关系(UserAssigns)、与
28、权限的关系(RolesAssigns)、之间的继承关系(Inherits)、继承关系下的权限分配关系(InheritsAssigns)。MOfRole 模式的谓词部分对的循环继承进行了限制。具体定义如下:OfRole MUsers: 𝔽 ID; Roles: 𝔽 ROLE; Pers: 𝔽 PER; PTypes: 𝔽 PTYPEPersAssigns: PER (ASSET×PTYPE) RolesAssigns: ROLE 𝔽 PER Inherits: ROLE ROLE InheritsAssig
29、ns: ROLE 𝔽 PER UserAssigns: ID ROLEInherits + id Roles= InheritsAssigns = (r, p) | r,ir: Roles; p: Pers (r, ir) (Inherits+ id Roles) (ir, p) RolesAssigns 3.4 OMR模型将上述对象模型、消息模型与模型之间相关联的元素进行必要的约束后,我们可以得到软件对象-消息-模型 OMR 的形式化定义。定义 3.4. OMR 模型 M的三个状态空间20。MOfOMR 的部分包括代表对象模型、消息模型与模型模型OfOMR 模式的谓词部分约束
30、了对象模型、消息模型与之间的三个一致性条件:(1)在 OpsAssigns 关系中,对于对象 o 的操作 op,其输入参数必须是 o 的资产,op 的每个修改参数必须属于输入参数集合,且由 op 所的消息 msg 的消息内容 m 必须属于输出参数集合;(2)由源对象 so至目的对象 to 的消息 msg,其消息内容 m 必须是 so 的资产,且消息的操作 op 必须是 so 的操作;(3)在设置安全措施(msg,(m, sp, c, spr)时,需保证安全措施(m, sp, c, spr)已在 Msps 集合中定义,其所作用的消息内容m 需属于源对象 so 的资产集合 saset,其中的安全需
31、求 c 需要与 AssetsAssigns 关系中与相 m关联资产的安全需求相一致。具体定义如下:6MMOfOMR OfObject; MOfMsg; mOfRole (op, (aiset, acset, aoset) OpsAssigns acsetaiset ( (o, (aset, ot, opset) ObjectsAssigns opopset aisetaset) ( (msg, (mt, o, op, m, to) MsgsAssigns maoset) (msg, (so, op, m, to) MsgsAssigns ( (so, (saset, sot, sopset),
32、 (to, (taset, tot, topset) ObjectsAssigns msaset opsopset (msg, (m, sp, c, spr) MspsAssigns (m, sp, c, spr) Msps ( (o, (aset, ot, opset) ObjectsAssigns; slSls maset (m, sl, c) AssetsAssigns)对象模型、消息模型与模型三者的元素关系如图 1 所示,其中:实线代表元素间的包含关系,棱形所指向的为包含其他元素的元素;虚线代表元素间具有一定的约束关系。MOfObjectMOfMsgOTypestypeoperatio
33、noperationOpssource- target-input- output- modify-ObjectsMsgAssets*OspsMsps*sp: SP rate: Rc: CONCERNsp: SP rate: Rc: CONCERNConcerns0.*inheritRoles1Pers1typeMOfRole图 1 OMR 模型关系图软件安全风险评估方法 RAMES4现有的软件安全风险评估模型中,缺少物理等软件特有元素的建模方软件结构特点与安全需求的风险识别方法。澳大利亚标准 AZ/NZS 43603法,以及提供了一种基于瀑布模型的风险管理过程(Risk Management
34、 Process, RMP),主要分为建立风险环境、风险评估与风险处理三个部分,其中风险评估部分包括风险识别、风险分析与风险评估三个步骤,另外还规定了信息与反馈的相关要求。本文依据上述 RMP 风险管理过程,以第 3 章提出的 OMR 模型为基础,设计了一种嵌入式软件安全风险评估方法 RAMES(Risk Assessment Method for Embedded Systems),将风7PTypesUsersSls软件的扩展。RAMES 方法的风险评估具体过程险评估基本概念和方法进行了面向为:建立软件的 OMR 模型作为风险环境,用于提取软件结构与数据安全性的相关信息,通过风险分析算法 R
35、AOMR 对软件系统的风险值进行计算,并采用风险矩阵给出最终的评估结果。RAMES 方法扩展后的 RMP 过程如图 2 所示,左侧为 AZ/NZS 4360 标准提供的 RMP 过程,右侧文对 RMP 扩展的模型或方法。建立风险环境风险评估风险识别风险分析计算发生概率计算影响值风险评估接受风险?图 2 RAMES 方法扩展后的RMP 过程4.1 建立风险环境为了确定 RAMES 方法的应用范围,我们首先需要对其风险环境(risk context)进行描述,也就是对提供风险评估所需参数的软件模型、以及相应的风险准则(risk criteria)进行描述。软件的安全性质(Security),包括数
36、据的本文关注为了评估性、完整性、可用性等。软件的安全风险,我们需要知道如下信息:软件的数据组织形式、数据形式,以及作用于数据的安全策略,即数据安全需求、安全等级和安全措施。这些风险评估所需的参数信息均能在软件的 OMR 模型中进行描述,其中对象模型可反映软件的数据组织形式与安全措施,消息模型可反映软件的数据形式与安全措施,而模型可反映基于RBAC 的数据安全约束。因此,RAMES 的风险环境可由 OMR 模型进行描述。UML 中采用类图和对象图来描述软件实体及其属性、采用顺序图来描述对象间的通信。因此,可由UML/MARTE 模型提取 OMR 模型中的功能模型元素。在上述风险环境的基础上,RA
37、MES 方法所采用的风险准则为:软件模型中数据被获取的风险,该风险值可以通过安全措施的安全因子进行计算和评估(见定义 3.1)。4.2 风险识别风险识别的主要目的是根据前文定义风险环境, 对影响软件对象安全的脆弱性(Vulnerability)进行识别。由于本文是在软件设计阶段抽象模型进行安全风险评估,因此软件对象的脆弱性主要由其安全性设计中存在的缺陷所导致。为了识别潜在的缺陷,我们需要对软件的安全需求及安全策略分别进行定义。软件的安全风险由软件对象的资产出发,沿着 OMR 消息模型所描述的消息路径在对象8风险处理风险矩阵风险分析算法RAOMR定义安全措施中的安全因子约束计算风险值OMR模型监
38、控、咨询与管理之间进行。然而,消息路径中的风险值大小还取决于数据与传输的安全措施(SP),如加密算法、机制等,而这些措施的安全表示其对风险概率的降低程度。因此,数据传输路径上的安全风险值可以利用对象/消息安全措施中安全因子的乘积来进行计算和评估。在一些 UML 建模环境下,可使用 MARTE 构造型对建模元素进行能属性约束的标注,也可使用 UML 的其他扩展规范对安全性结构进行建模22。我们需要将这些安全性相关的元素至 OMR 模型中,并且补充其他据安全需求、安全等级、安全措施以及 RBAC 元素的4.3 风险评估矩阵型元素的描述,包括对数约束。由于不同的风险评估方法采用不同的要素进行风险值的
39、计算6,因此我们首先需要确定本文的风险要素组成。4.116定义风险(risk)由风险发生概率(likelihood)、所影响的安全性质(concern)以及影响值(impact)三元素共同决定。风险的评估过程需要将风险三元素的定量计算结果为定性评估结果,以确定风险是安全性需求分析时给出。一种常否被接受。其方法与被评估软件的应用领域相关,用的方法是以风险概率为行、风险影响值为列,形成关于某一安全性质的风险评估矩阵。其中,风险概率为某一资产的各类安全措施中安全因子的乘积,是一个0,1区间内的值;而风险影响值需要根据软件的具体安全需求给出。因此,我们对本文风险评估方法所需的一些评估等级进行定义:定义
40、 4.2 风险评估相关等级定义:(1)资产安全等级 资产的安全等级分为非密、模型 SL 集合中的元素(见定义 3.1)。、四个等级,作为对象(2)风险影响等级 记风险影响值为一个具有偏序关系的给定集合 IMPACT。风险的影响等级与资产的安全等级成正比关系,本文假设为一个简单的impact=sl关系:其中 impact 代表 IMPACT 中的元素,sl 代表 SL 中的元素,该关系表示:安全等级越高的资产,其安全性质被破坏的后果就越严重。将风险影响值分为可忽略的(negligible)、临界的(marginal)、的(critical)以及性的(catastrophic)四个等级,且满足 n
41、egligible< marginal < critical < catastrophic。(3)风险等级 记风险等级为一个具有偏序关系的给定集合 RESULT。参考文献7中的定义,将风险等级分为可忽略的(negligible)、可接受的(tolerable)、不期望的(undesirable)以及不可接受的(intolerable)四个等级,且满足 negligible < tolerable < undesirable < intolerable。文献7中给出的风险评估矩阵如图 3 所示,根据风险分析算法所得到的风险概率及风险影响值,可以在风险评估矩阵中
42、找到最终的风险评估结果值。图 3 风险评估矩阵794.4 风险分析算法RAOMR4.4.1 算法思想与流程如 4.2 节所述,软件数据泄漏的安全风险代表了其在与中的安全措施能否使安全需求得到满足,我们以这种“满足程度”来计算风险发生的概率值,以软件资产的安全需求和安全等级分别来表示风险所影响的安全需求和风险的影响值,并对这三要素进行综合评估得到风险评估结果。对风险值的计算可某个软件对象或整个软件系统。一个对象的输出风险来源包括两种:一种为对象自身资产泄漏所导致的风险,本文简称为对象发起的风险;另一种为由其他对象输入的风险,本文简称为对象继承的风险。RAOMR 算法首先以软件对象为风险分析单元,
43、根据 OMR 模型所描述的软件结构、数据流及其安全约束,对风险的三要素分别进行评估,得到每个软件对象的风险值;其次,评估整个系统中每一类安全需求的最高风险值,从而具体风险计算过程如下:该安全需求的关键软件对象。RAOMR 算法的流程如图 4 所示,(1) 对于对象发起的风险,每个输出消息的风险发生概率为对象安全措施与消息安全措施的安全因子乘积;(2) 对于对象继承的风险,将对象输入消息和输出消息间的关系列举出来,对每一个输出消息,计算所有可能的风险方向及每个方向上的风险值,风险发生概率为输入消息的风险发生概率与其安全措施安全因子的乘积;(3) 从所有消息的风险值中选择每个输出消息关于每类安全需
44、求的最高风险值,作为对象风险值集合;(4) 从所有对象的风险值集合中选择每一类安全需求的最高风险值,作为系统风险值集合。初始化否是否所有对象都计算完毕?是是否所有对象的风险值不再改变?计算对象风险值ObjectRisks结束图 4 RAOMR 算法流程图风险计算函数定义4 所示的 RAOMR 算法流程中的风险计算函数包括:计算对象所有消息的输出风险Enumerated、计算对象最高输出风险的函数 Exported、计算对象风险值的函数4.4.1图的函数ObjectRisks 以及计算系统风险值的函数 SystemRisk。其中,Enumerated 与 Exported 基于消10计算系统风险
45、值SystemRisk计算最高输出风险Exported计算所有消息的输出风险Enumerated对于每个对象息进行风险计算,得到每个对象关于每种安全需求的最高输出风险消息集合;ObjectRisks基于对象进行风险计算,得到每个对象关于每种安全需求的最高输出风险值,并带有最高输出风险的消息;而 SystemRisk 基于安全需求进行风险计算,得到整个系统中关于各类安全需求的最高风险值。下面采用 Z 语言操作模式对这四个风险计算函数进行形式化定义:定义 4.3 RAOMR 算法的风险计算函数包括 Enumerated、Exported、ObjectRisks 以及SystemRisk。具体定义如
46、下:(1)Enumerated Enumerated 函数的功能是枚举软件对象中所有输出消息可能引起的输出风险。Enumerated 中的结果由两种途径得来:每个内容为对象资产的输出消息,其输出风险的发生概率为对象安全措施的安全因子(发起的风险为 1);每个内容为输入消息的输出消息,其输出风险的发生概率为输入风险发生概率与消息安全措施的安全因子的乘积。在枚举过程中,每条输出消息路径均需满足 OMR模型中的安全约束,即满足“输出操作 op 是否对输出消息 m 进行了读/写,应与用户对 m 的操作权限 per 的类型相一致”。Enumerated 函数的具体定义如下:(2)Exported Exp
47、orted 函数的功能是在 Enumerated 的结果中选取的每个输出消息带来的关于每种安全需求的最高风险。文献7中的方法在这一步骤选择发生概率最大的风险作为最高风险值,而没有考虑其影响程度,而事实上概率虽然较小但影响值较大的风险对系统安全性的危害显然更大。因此,我们综合考虑这两个因素。通过如图 3 所示的风险评估矩阵选取评估结果最高的风险作为最高风险值,并且在评估结果相同时,我们选取风险影响值较大的风险。Exported 函数的具体定义如下:11Enumerated: MSG (×CONCERN×IMPACT) (msg, (enr, c, i) Enumerated
48、( (msg, (mt, so, op, m, to) MsgsAssigns; (op, (aiset, acset, aoset) OpsAssigns (user, role) UserAssigns;(role, per) InheritsAssigns; (per, (m, pt) PersAssigns; (pt=read maiset) (pt=write maiset macset)( (msg, (mt, so, op, m, to) MsgsAssigns; (m, sl, c) AssetsAssigns;(so, (m, osp, c, ospr) OspsAssign
49、s; (msg, (m, msp, c, mspr) MspsAssign; i = sl enr = ospr* mspr) ( (msg, (mt, so, op, m, to) MsgsAssigns; (m, sl, c) AssetsAssigns;(imsg, (imt, io, iop, m, so) MsgsAssigns; (imsg, (iexr, ic, ii) Exported ic = c i = sl ( (msg, (m, sp, c, spr) MspsAssign enr = spr* iexr)(¬ (msg, (m, sp, c, spr) Ms
50、psAssign enr = iexr)Exported: MSG (×CONCERN×IMPACT) (msg, (exr, c, exi) Exported ¬ (msg, (enr, c, eni) Enumerated matrix(enr, eni) > matrix(exr, exi) eni > exi(3)ObjectRisksObjectRisks 函数的功能是从 Exported 的结果中选取的每个对象关于每种安全需求的最高输出风险,并带有最高输出风险的消息。ObjectRisks 函数的具体定义如下:ObjectRisks: O
51、(MSG××CONCERN×IMPACT) (o, (omsg, or, c, oi) ObjectRisks ( (omsg, (mt, o, op, m, to)MsgsAssigns;(omsg, (exr, c, exi) Exported or = exr oi = exi) (¬ (o, (msg, r, c, i) ObjectRisks matrix(r, i) > matrix(or, oi) i > oi(4)SystemRiskSystemRisk 函数评估所有对象的 ObjectRisks 结果,同样通过图 3 中的风
52、险评估矩阵选取关于每种安全需求的评估结果最高的风险作为系统最高风险,得最高风险所在的对象,并带有系统最高风险的消息。SystemRisk 结果中包含的信息能够使我们对高风险的软件对象和消息进行数的具体定义如下:,从而进行对应的风险处理措施。SystemRisk 函SystemRisk: O (MSG××CONCERN×IMPACT) (o, (smsg, sr, c, si) SystemRisk ( (o, (smsg, or, c, oi) ObjectRisks sr = or si = oi) (¬ (o, (msg, r, c, i) Obje
53、ctRisks matrix(r, i) > matrix(sr, si) i > si4.4.2算法分析下面对 RAOMR 算法的性能进行分析。由定理 4.1 给出了 RAOMR 算法的时间复杂度。定理 4.1 设软件对象个数为 n,每个对象同步进行风险计算,则 RAOMR 算法的时间复杂度为 O(n)。证明:首先考虑只设置一种安全需求 c 的风险评估过程。根据图 4 所示的 RAOMR 算法流程,在计算对象风险值的一次迭代中,每个对象需要完成 Enumerated、Exported 以及ObjectRisks 的计算。由于风险值随着消息进行险值,因此我们考虑如下两种情况:(1)软件对象及对象之间的消息流可组成,即对象的输入消息会带来额外的输入风通的有向无环图。显然,图中最多有n-1 条消息。在 n 次迭代后,所有可达的对象都能够得出一个关于安全需求 c 的对象风险值。(2)软件对象及对象之间的消息流可组成一个任意连通的有向图。由于对象/消息的安全措施决定了对象风险值只会随着消息的而递减,并且 Exported 函数只最高风险值,因此在 n 次迭代后的对象风险值将不再改变。综上所述,RAOMR 算法的时间复杂度为 O(n)。有多种安全需求情况下的分析类似, 这里不再赘述。124.5 风险处理风险评估流程完成后,需要对评估结果进行分析与处理,风险状态中关于某一安
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆企业股权变更涉税实操文档
- 2026 年秋季感冒与流感区分知识宣讲
- 麻纺企业安全生产标准化建设办法
- 某服装厂服装生产准则
- 某汽修厂客户服务规范
- 南京钛能电气TDR928发电机保护装置
- 重庆企业涉税法律服务出口退税法律风险手册
- 国内金融和黄金市场的组成培训教材
- 动物生理学第三章血液
- 医学院大学--胃液与十二指肠引流液检验
- 2026-2030中国医疗仿真产品行业市场发展趋势与前景展望战略分析研究报告
- 2026年医院病案室招聘考试试题及答案
- 【江苏考区】2026年4月初级注册安全工程师《法律法规》考试真题
- 综合类专职安全员c3证考试题库及答案
- 肺康复知情同意书
- 【低空经济】无人机智能起降机柜设计方案
- 2026学年九年级化学上册第一单元核心考点第一次月考含答案及解析
- 基于智慧教育云平台的家校共育协同模式构建与评价体系研究-以某高中为例教学研究课题报告
- 零壹空间OS火箭战略竞争力分析市场调研报告
- GA 991-2025爆破作业项目管理要求
- 高考物理疑难题《多次碰撞》含答案
评论
0/150
提交评论