CN114238084B - 基于SysML的嵌入式软件安全性分析方法及其分析*** - Google Patents
基于SysML的嵌入式软件安全性分析方法及其分析*** Download PDFInfo
- Publication number
- CN114238084B CN114238084B CN202111445946.5A CN202111445946A CN114238084B CN 114238084 B CN114238084 B CN 114238084B CN 202111445946 A CN202111445946 A CN 202111445946A CN 114238084 B CN114238084 B CN 114238084B
- Authority
- CN
- China
- Prior art keywords
- software
- function
- model
- analysis
- sysml
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 151
- 230000006870 function Effects 0.000 claims abstract description 246
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000012098 association analyses Methods 0.000 claims abstract description 14
- 230000006399 behavior Effects 0.000 claims abstract description 14
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 claims description 88
- 230000000694 effects Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 19
- 238000004132 cross linking Methods 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 14
- 238000004573 interface analysis Methods 0.000 claims description 12
- 239000010410 layer Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 10
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 6
- 238000000354 decomposition reaction Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 230000005284 excitation Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 2
- 239000002346 layers by function Substances 0.000 claims description 2
- 239000000463 material Substances 0.000 claims description 2
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000012351 Integrated analysis Methods 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于SysML的嵌入式软件安全性分析方法,该方法包括:扩展SysML语言的语义,基于扩展SysML语言创建软件模型,对软件静态结构和动态行为进行完整准确描述,通过构建安全性分析规则库,针对软件模型进行软件功能模型分析、功能层次模型分析、软件状态模型分析、SysML多模型图关联分析、***和软件关联影响分析,验证软件模型是否满足安全性规则,并基于此提出一种嵌入式软件安全性分析***。本发明解决了***分析和软件分析两张皮的问题,避免了重复建模,降低了软件建模的工作量,通用性好、易推广、可扩展性强。
Description
技术领域
本发明属于嵌入式软件安全性分析技术领域,特别是一种基于SysML的嵌入式软件安全性分析方法及其分析***。
背景技术
随着现代武器装备智能化、体系化、网络化的发展,装备研制的技术过程和管理过程日益复杂,采用***工程及基于模型的***工程理论方法来保证复杂装备的成功研制已经成为国内外武器装备研制领域内普遍达成的共识。SysML作为***工程的标准建模语言,在武器装备研制过程中,越来越多研究人员采用SysML对***进行形式化建模,开展***正向设计。在嵌入式软件安全性分析领域,基于模型的形式验证方面已经存在一系列比较成熟的工具,包括SMV、Spin、UPPAL、CBMC、BLAST和SLAM等,这些工具采用不同的建模方法和语言,虽然当前软件验证技术已经在工业界进行了部分应用,但是形式化方法和建模语言本身的复杂性也对工程人员提出了很高的要求,这对于当前软件验证技术的普及使用很困难。
当前,开展武器装备研制工作时,***研制人员和嵌入式软件安全性分析人员采用不同的建模工具和建模方法,***和软件的模型很难集成,最终导致***研制和嵌入式软件安全性分析“两张皮”的现象发生。由于模型不同,开展嵌入式软件安全性分析时,无法复用***设计过程中已经完成的***交联设计、功能清单、***危险等模型元素,只能进行重复建模,大大降低了整体研制效率。此外,嵌入式软件安全性分析的结果也无法有效反馈给***,***设计人员无法实时准确了解设计决策在软件中的反馈,无法实时获取嵌入式软件安全性分析传递给***的安全性需求,无法有效开展软硬件一体化分析。因此,为弥补***和软件的模型兼容性,寻求一种基于SysML的嵌入式软件安全性分析方法是十分迫切且必要的。
发明内容
本发明针对上述现有技术中的缺陷,提出一种基于SysML的嵌入式软件安全性分析方法。该方法包括扩展SysML语言的语义,基于扩展SysML语言创建软件模型,对软件静态结构和动态行为进行完整准确描述,通过构建安全性分析规则库,针对软件模型进行软件功能模型分析、功能层次模型分析、软件状态模型分析、SysML多模型图关联分析、***和软件关联影响分析,验证软件模型是否满足安全性规则,并基于此提出一种嵌入式软件安全性分析***。本发明解决了***分析和软件分析两张皮的问题,避免了重复建模,降低了软件建模的工作量,通用性好、易推广、可扩展性强。
本发明提供一种基于SysML的嵌入式软件安全性分析方法,所述方法包括以下步骤:
S1、扩展SysML语言的语义:针对软件建模和安全性分析的需要,对SysML语言进行语义扩展,扩展原有块定义图语义增加对分析对象选择的支持,扩展原有内部块图语义增加总线通信信息,扩展SysML语义增加软件功能层次图和软件功能模型图,扩展SysML语义增加建立软件功能模型图和软件状态图的关联关系;
S11、扩展SysML语言的分析对象选择功能,从块定义图中选取一个块,所述块中运行的软件为安全性分析的对象;
S12、扩展SysML语言的内部块图语义,为内部块图中连接器和对象类型流添加总线通信信息,所述总线通信信息包括通信协议和总线数据;
S13、扩展SysML语言添加软件功能层次图,所述软件功能层次图包括块和组合关联,所述块用于描述功能,每个所述块代表一个功能,所述组合关联在两个块之间连接用于描述功能的包含关系;
S14、扩展SysML语言添加软件功能模型图,针对所述软件功能层次图中每个功能,创建功能模型图,所述功能模型图包括功能输入、功能处理和功能输出三部分;
S15、扩展SysML语言增加构建状态与功能的关联关系,一个状态能关联多个功能;
S2、基于扩展SysML语言创建软件模型,对软件静态结构和动态行为进行完整准确描述;
S21、构建***总线交联模型:使用块定义图对***实体进行建模,使用内部块图对***内部模块属性间连接关系进行建模,在内部块图中增加总线通信信息;
S22、构建软件功能层次模型:基于***功能列表,对软件进行功能分解,使用扩展SysML语言构建软件功能层次模型;
S23、构建软件功能模型和软件活动模型:针对软件功能层次模型中功能分解得到的每个功能进行软件功能模型和软件活动模型的构建;
S24、构建软件状态模型:使用SysML语言的状态图描述软件运行的一系列状态以及事件触发时不同状态间的转换;
S25、构建软件功能模型与软件状态模型的关联关系:确定在指定状态时,***执行的功能处理流程;
S3、针对软件模型进行安全性分析:通过构建安全性分析规则库,对基于扩展SysML语言创建的软件模型进行模型检测,验证构建的软件模型是否满足安全性规则;
S31、进行软件功能模型分析:
S311、使用功能输入接口分析规则对功能的输入接口进行自动化分析,分析可能产生的失效以及其对功能处理、功能输出的影响,最终是否导致功能失效;
S312、使用活动图分析规则自动扫描软件功能处理过程中的异常行为,分析其行为是否对功能输出造成影响,最终是否导致功能失效;
S313、使用功能输出接口分析规则对功能输出接口进行自动化分析,找到是否存在功能输出接口自身失效导致功能失效的情况;
S32、进行功能层次模型分析:自动化检测底层多个功能是否会导致顶层功能失效,找到单个功能运行均正常,但多功能并发时冲突和不一致的情况;
S33、进行软件状态模型分析:使用SysML语言中的状态图分析规则对软件状态模型自动扫描,发现存在孤立状态和不可达状态在内的影响嵌入式软件安全性的异常行为;
S34、进行SysML多模型图关联分析:使用SysML多模型图关联分析规则检查多状态、多功能运行时数据交互、时序约束和并发组合在内的复杂逻辑关系引发的功能失效;
S35、进行***和软件关联影响分析:分析软件功能输出失效导致的硬件失效;***硬件执行部件失效导致的软件功能处理逻辑失效、硬件总线异常导致的软件功能输入接口失效与软件功能输出接口失效;分析软件功能失效对硬件造成的影响和***硬件失效对软件功能造成的影响。
进一步,所述步骤S21具体包括以下步骤:
S211、使用SysML语言中的块定义图对***实体进行建模,描述软件所运行的实体与其他实体之间的关系,每个所述块定义图中包括多个块,从块定义图中选择要分析的软件所在的块作为安全性分析对象;
S212、使用SysML语言中的内部块图对选定分析对象的内部模块属性之间的连接关系进行建模,使用连接器和对象类型流描述通过总线传输数据的连接关系;
S213、在内部块图中为连接器和对象类型流增加总线通信信息,配置通信协议和数据帧。
进一步,所述步骤S14中所述功能输入包括一个或多个内部块图中连接器或对象类型流,表示功能所需的各种输入激励;所述功能处理采用SysML活动图描述其流程,实现对软件功能输入转化为输出的过程描述,每个所述功能处理逻辑关联一个或多个活动图;所述功能输出包括一个或多个内部块图中连接器和对象类型流,表示功能处理完成后,对外部的输出激励;创建功能模型图时,需要构建功能模型图与其他模型图的关联关系,包括构建功能输入与内部块图中连接器或对象类型流的关联关系、构建功能处理与SysML活动图的关联关系和构建功能输出与内部块图中连接器或对象类型流的关联关系。
可优选的,所述步骤S211中对于实体,描述实体的结构特性和行为特性,所述结构特性包括值属性、组成属性、引用属性、约束属性和端口,所述行为特性包括操作和接收;对于实体之间的关系,构建实体间关联、泛化和依赖的关系,所述关联包括引用关联和组合关联;所述步骤S212对于只传输物质和能量的连接器和对象类型流此处无需描述,两个相互连接的属性可均为组成部分属性或引用属性或一样一个,若两个相互连接的属性拥有兼容的端口,可选择把连接器与兼容的端口连接,而不是直接与属性连接。
可优选的,所述步骤S22中所述***功能列表按照功能的从属关系画成图表,总功能分解为若干分功能,各分功能进一步分解为若干二级分功能,上级功能与下级功能使用组合关联进行连接,如此继续,直至各分功能被分解为功能单元为止。
可优选的,所述步骤S3中所述安全性分析规则库包括但不限于功能输入接口分析规则、SysML活动图分析规则、功能输出接口分析规则、SysML状态图分析规则和SysML多模型图关联分析规则。
可优选的,所述步骤S12中所述总线数据包括一个或多个数据帧,所述数据帧具有传输方向、传输周期和数据帧长度属性。
进一步,每个所述数据帧包括多个帧变量,所述帧变量具有变量类型和长度属性。
本发明的另一方面,提供一种利用前述的基于SysML的嵌入式软件安全性分析方法的嵌入式软件安全性分析***,其包括SysML语言扩展模块、软件建模模块、安全性分析规则模块和安全性分析模块,所述SysML语言扩展模块扩展SysML语言,所述软件建模模块对软件静态结构和动态行为进行完整准确描述并构建软件模型;所述安全性分析规则模块构建安全性分析规则库,所述安全性分析模块对所述软件建模模块构建的软件模型进行模型检测并验证是否满足安全性规则;所述软件建模模块包括***总线交联组件和软件关联组件,所述软件关联组件包括功能层次部分、功能部分、活动部分、状态部分和关联部分;所述***总线交联组件用于构建***总线交联模型,所述功能层次部分、功能部分、活动部分和状态部分分别用于构建软件功能层次模型、软件功能模型、软件活动模型和软件状态模型,所述关联部分用于构建软件功能模型与软件状态模型的关联关系;所述安全性分析模块包括软件功能模型分析组件、功能层次模型分析组件、软件状态模型分析组件、SysML多模型图关联分析组件和***与软件关联影响分析组件。
与现有技术相比,本发明的技术效果为:
1、本发明设计的基于SysML的嵌入式软件安全性分析方法及其分析***,***和软件建模均采用SysML,将建模语言统一,解决了***分析和软件分析彼此分开的问题,通过统一的建模语言打通了硬件和软件的故障逻辑传递关系,能够开展软硬件一体化分析;所使用的SysML建模语言容易学习掌握,而SPIN、NuSMV等常用的软件形式化验证工具,需要运用新的建模语言,操作复杂,能够大大降低使用难度,容易推广。
2、本发明设计的基于SysML的嵌入式软件安全性分析方法,使用扩展SysML对软件进行建模,可以充分复用***建模时创建的块定义图、内部块图等描述***交联关系的模型元素,避免了重复建模,降低了软件建模的工作量,模型复用也减少了模型不一致情况的发生;通过添加模型元素和关联关系,打通了SysML的静态模型和动态模型;使用扩展的SysML建模语言对软件进行建模,更容易找到软件多状态并发等复杂逻辑漏洞。
3、本发明设计的基于SysML的嵌入式软件安全性分析方法,基于通用性强的SysML建模语言构建的嵌入式软件安全性分析方法能够应用于各领域嵌入式嵌入式软件安全性验证中,具有很好的通用性;通过将嵌入式软件安全性分析规则施加到软件模型,通过模型检测实现对嵌入式软件安全性自动化分析,分析人员只需完成建模工作,安全性分析工作可由实现分析规则的软件***自动完成,大大降低了嵌入式软件安全性分析的工作量;安全性分析规则独立于软件模型,可扩展性强,可借鉴行业先进的模型检测工具的检测规则,也可通过工程经验不断积累,便于行业安全性分析规则数据库的积累和构建。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是本发明的基于SysML的嵌入式软件安全性分析方法的流程图;
图2是本发明的扩展的SysML模型图;
图3是本发明的飞机发动机控制装置的块定义图示例;
图4是本发明的飞机发动机控制软件的扩展的内部块图示例;
图5是本发明的飞机发动机控制软件的软件功能层次模型示例;
图6是本发明的飞机控制地面启动软件的软件功能模型示例;
图7是本发明的飞机控制地面启动软件的软件功能处理活动图示例;
图8是本发明的飞机控制启动软件的软件状态图示例。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的基于SysML的嵌入式软件安全性分析方法,该方法包括以下步骤:
S1、扩展SysML语言的语义:针对软件建模和安全性分析的需要,对SysML语言进行语义扩展,扩展原有块定义图语义增加对分析对象选择的支持,扩展原有内部块图语义增加总线通信信息,扩展SysML语义增加软件功能层次图和软件功能模型图,扩展SysML语义增加建立软件功能模型图和软件状态图的关联关系。
S11、扩展SysML语言的分析对象选择功能:***安全性分析的是整个***,关注块定义图中的所有块,而嵌入式软件安全性分析对象是单个软件,因此分析前需要从块定义图中选取一个块(Block),块中运行的软件为安全性分析的对象,扩展时在SysML中添加块的属性,用于存储用户选择的分析对象。
S12、扩展SysML语言的内部块图语义,为内部块图中连接器和对象类型流添加总线通信信息,总线通信信息包括通信协议和总线数据。在SysML中为连接器和对象类型流添加存储总线信息的属性,配置通信协议,包括总线名称、总线类型、总线通信所需的波特率、路由寻址、优先级和传输速率等。配置总线通信传输的总线数据,总线数据包括一个或多个数据帧,数据帧具有传输方向、传输周期和数据帧长度等属性。每个数据帧包括多个帧变量,帧变量具有变量类型(整型、浮点型和字符型等)和长度等属性。
S13、扩展SysML语言添加软件功能层次图,软件功能层次图包括块和组合关联,块用于描述功能,每个块代表一个功能,组合关联在两个块之间连接,用于描述功能的包含关系。
S14、扩展SysML语言添加软件功能模型图,针对软件功能层次图中每个功能,创建功能模型图,功能模型图包括功能输入、功能处理和功能输出三部分,功能输入包括一个或多个内部块图中连接器或对象类型流,表示功能所需的各种输入激励。功能处理采用SysML活动图描述其流程,实现对软件功能输入转化为输出的过程描述,由于同一个功能在不同的状态下可能执行不同的处理流程,每个处理流程用一个活动图描述。因此,一个功能处理可能对应多个活动图。创建功能模型图时,需要构建功能模型图与其他模型图的关联关系。具体地,构建功能模型图中功能输入与内部块图中连接器或对象类型流的关联关系;构建功能处理与SysML活动图的关联关系,每个功能处理逻辑关联一个或多个活动图;构建功能输出与内部块图中连接器或对象类型流的关联关系。功能输出包括一个或多个内部块图中连接器和对象类型流,表示功能处理完成后,对外部的输出激励。
S15、扩展SysML语言增加构建状态与功能的关联关系,一个状态能关联多个功能。通过此项扩展,构建了状态-功能模型-活动的关联,由于功能模型中的功能处理关联了活动,状态关联了功能模型,从而能够描述在特定状态下,每个功能的处理流程所需要执行的活动。功能模型的引入,打通原有SysML状态图和活动图的关联,使其能够完整准确描述软件的动态行为,是本发明的重要发明点之一。
S2、基于扩展SysML语言创建软件模型,对软件静态结构和动态行为进行完整准确描述,软件模型包括***总线交联模型、软件功能层次模型、软件功能模型和软件状态模型。
S21、构建***总线交联模型:使用块定义图对***实体进行建模,使用内部块图对***内部模块属性间连接关系进行建模,在内部块图中增加总线通信信息。
S211、使用SysML语言中的块定义图对***实体进行建模,描述软件所运行的实体与其他实体之间的关系。具体地,对于实体,描述实体的结构特性和行为特性,结构特性包括值属性、组成属性、引用属性、约束属性和端口,行为特性包括操作和接收。对于实体之间的关系,构建实体间关联、泛化和依赖的关系,其中关联包括引用关联和组合关联。如图2所示是一个块定义图示例。每个块定义图中包括多个块,从块定义图中选择要分析的软件所在的块作为安全性分析对象。在一个具体实施例中,选择飞机发动机控制装置作为安全性分析对象,如图3所示。
S212、使用SysML语言中的内部块图对选定分析对象的内部模块属性之间的连接关系进行建模,使用连接器和对象类型流描述通过总线传输数据的连接关系;对于只传输物质和能量的连接器和对象类型流此处无需描述,两个相互连接的属性可均为组成部分属性或引用属性或一样一个,若两个相互连接的属性拥有兼容的端口,可选择把连接器与兼容的端口连接,而不是直接与属性连接,这样意味着那些属性是在边界的特殊交互点处连接的。
S213、在内部块图中为连接器和对象类型流增加总线通信信息,配置通信协议和总线数据;具体地参照步骤S14。在一个具体实施例中,以飞机发动机控制软件为例,其扩展的内部块图如图4所示。
S22、构建软件功能层次模型:基于***功能列表,对软件进行功能分解,使用扩展SysML语言构建软件功能层次模型;***功能列表按照功能的从属关系画成图表,在一个具体实施例中,以飞机发动机控制软件为例,其***功能列表如图5所示,其中每一个框都称为一个功能模块,总功能分解为若干分功能,各分功能进一步分解为若干二级分功能,上级功能与下级功能使用组合关联进行连接,如此继续,直至各分功能被分解为功能单元为止。
S23、构建软件功能模型和软件活动模型:针对软件功能层次模型中功能分解得到的每个功能进行软件功能模型和软件活动模型的构建。在一个具体实施例中,飞机控制地面启动的软件功能模型示例如图6所示,其软件活动模型示例如图7所示。从内部块图中的连接器和对象类型流列表中选择,作为功能的输入和输出,最终确定为功能提供数据输入的连接器和对象类型流,为功能提供输出的连接器和对象类型流。使用SysML活动图描述软件功能内部的处理流程,实现软件功能输入转化为输出的过程的描述。
S24、构建软件状态模型:使用SysML语言的状态图描述软件运行的一系列状态以及事件触发时不同状态间的转换。在一个具体实施例中,飞机控制启动软件的软件状态模型如图8所示。
S25、构建软件功能模型与软件状态模型的关联关系:确定在指定状态时,***执行的功能处理流程,从而构建了多模型图关联,建立状态-功能-活动的关联,便于开展软件多模型关联分析,如表1所示,更容易找到软件多状态并发等复杂逻辑漏洞,是本发明的重要发明点之一。
表1
S3、针对软件模型进行安全性分析:通过构建安全性分析规则库,对基于扩展SysML语言创建的软件模型进行模型检测,验证构建的软件模型是否满足安全性规则。
S31、进行软件功能模型分析:针对单个功能进行分析,软件功能是外部输入到外部输出的“过滤器”,可以分解为“输入(Input)”-“处理过程(Process)”-“输出(Output)”(简称IPO)。软件功能面对输入接口的各种输入激励,将其处理为软件需求规定的数据输出,如果处理不当,就有可能导致软件故障甚至失效。因此软件故障的传递过程是:在软件使用过程中,由输入接口故障触发、经过软件功能处理、再通过输出接口的故障显现。
S311、使用功能输入接口分析规则对功能的输入接口进行自动化分析,分析可能产生的失效以及该失效对功能处理、功能输出的影响,最终是否对导致功能失效。
S312、使用活动图分析规则自动扫描软件功能处理过程中的异常行为,分析该行为是否对功能输出造成影响,最终是否导致功能失效。
S313、使用功能输出接口分析规则对功能输出接口进行自动化分析,找到是否存在功能输出接口自身失效导致功能失效的情况。
S32、进行功能层次模型分析:自动化检测底层多个功能是否会导致顶层功能失效,找到单个功能运行均正常,但多功能并发时冲突和不一致的情况。
S33、进行软件状态模型分析:使用SysML语言中的状态图分析规则对软件状态模型自动扫描,发现存在孤立状态和不可达状态在内的影响嵌入式软件安全性的异常行为。
S34、进行SysML多模型图关联分析:使用SysML多模型图关联分析规则检查多状态、多功能运行时数据交互、时序约束和并发组合在内的复杂逻辑关系引发的功能失效。
S35、进行***和软件关联影响分析:分析软件功能输出失效导致的硬件失效;***硬件执行部件失效导致的软件功能处理逻辑失效、硬件总线异常导致的软件功能输入接口失效与软件功能输出接口失效;分析软件功能失效对硬件造成的影响和***硬件失效对软件功能造成的影响。
安全性分析规则库包括但不限于功能输入接口分析规则、SysML活动图分析规则、功能输出接口分析规则、SysML状态图分析规则和SysML多模型图关联分析规则。部分规则示例如表2所示。对于有参数的规则,在分析前需要人工为参数指定具体数值,然后利用规则进行检测模型。安全性分析规则还可借鉴行业先进的模型检测工具的检测规则或通过工程经验不断积累进行补充。
表2
本发明的另一方面,提供一种利用前述的基于SysML的嵌入式软件安全性分析方法的嵌入式软件安全性分析***,其包括SysML语言扩展模块1、软件建模模块2、安全性分析规则模块3和安全性分析模块4,基于SysML语言扩展模块1扩展的SysML语言,软件建模模块2对软件静态结构和动态行为进行完整准确描述并构建软件模型;基于安全性分析规则模块3构建的安全性分析规则库,安全性分析模块4对软件建模模块2构建的软件模型进行模型检测并验证是否满足安全性规则;软件建模模块2包括***总线交联组件21和软件关联组件22,软件关联组件22包括功能层次部分221、功能部分222、活动部分223、状态部分224和关联部分225;***总线交联组件21用于构建***总线交联模型,功能层次部分221、功能部分222、活动部分223和状态部分224分别用于构建软件功能层次模型、软件功能模型、软件活动模型和软件状态模型,关联部分225用于构建软件功能模型与软件状态模型的关联关系;安全性分析模块4包括软件功能模型分析组件41、功能层次模型分析组件42、软件状态模型分析组件43、SysML多模型图关联分析组件44和***与软件关联影响分析组件45。
本发明设计的一种基于SysML的嵌入式软件安全性分析方法及其分析***,***和软件建模均采用SysML,将建模语言统一,解决了***分析和软件分析两张皮的问题,通过统一的建模语言打通了硬件和软件的故障逻辑传递关系,能够开展软硬件一体化分析;所使用的SysML建模语言容易学习掌握,而SPIN、NuSMV等常用的软件形式化验证工具,分析人员需要学习新的建模语言,使用门槛较高,能够大大降低使用难度,容易推广;使用扩展SysML对软件进行建模,可以充分复用***建模时创建的块定义图、内部块图等描述***交联关系的模型元素,避免了重复建模,降低了软件建模的工作量,模型复用也减少了模型不一致情况的发生;通过添加模型元素和关联关系,打通了SysML的静态模型和动态模型;使用扩展的SysML建模语言对软件进行建模,更容易找到软件多状态并发等复杂逻辑漏洞;基于通用性强的SysML建模语言构建的嵌入式软件安全性分析方法能够应用于各领域嵌入式嵌入式软件安全性验证中,具有很好的通用性;通过将嵌入式软件安全性分析规则施加到软件模型,通过模型检测实现对嵌入式软件安全性自动化分析,分析人员只需完成建模工作,安全性分析工作可由实现分析规则的软件***自动完成,大大降低了嵌入式软件安全性分析的工作量;安全性分析规则独立于软件模型,可扩展性强,可借鉴行业先进的模型检测工具的检测规则,也可通过工程经验不断积累,便于行业安全性分析规则数据库的积累和构建。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种基于SysML的嵌入式软件安全性分析方法,其特征在于,所述方法包括以下步骤:
S1、扩展SysML语言的语义:针对软件建模和安全性分析的需要,对SysML语言进行语义扩展,扩展原有块定义图语义增加对分析对象选择的支持,扩展原有内部块图语义增加总线通信信息,扩展SysML语义增加软件功能层次图和软件功能模型图,扩展SysML语义增加建立软件功能模型图和软件状态图的关联关系;
S11、扩展SysML语言的分析对象选择功能,从块定义图中选取一个块,所述块中运行的软件为安全性分析的对象;
S12、扩展SysML语言的内部块图语义,为内部块图中连接器和对象类型流添加总线通信信息,所述总线通信信息包括通信协议和总线数据;
S13、扩展SysML语言添加软件功能层次图,所述软件功能层次图包括块和组合关联,所述块用于描述功能,每个所述块代表一个功能,所述组合关联在两个块之间连接用于描述功能的包含关系;
S14、扩展SysML语言添加软件功能模型图,针对所述软件功能层次图中每个功能,创建功能模型图,所述功能模型图包括功能输入、功能处理和功能输出三部分;
S15、扩展SysML语言增加构建状态与功能的关联关系,一个状态能关联多个功能;
S2、基于扩展SysML语言创建软件模型,对软件静态结构和动态行为进行完整准确描述;
S21、构建***总线交联模型:使用块定义图对***实体进行建模,使用内部块图对***内部模块属性间连接关系进行建模,在内部块图中增加总线通信信息;
S22、构建软件功能层次模型:基于***功能列表,对软件进行功能分解,使用扩展SysML语言构建软件功能层次模型;
S23、构建软件功能模型和软件活动模型:针对软件功能层次模型中功能分解得到的每个功能进行软件功能模型和软件活动模型的构建;
S24、构建软件状态模型:使用SysML语言的状态图描述软件运行的一系列状态以及事件触发时不同状态间的转换;
S25、构建软件功能模型与软件状态模型的关联关系:确定在指定状态时,***执行的功能处理流程;
S3、针对软件模型进行安全性分析:通过构建安全性分析规则库,对基于扩展SysML语言创建的软件模型进行模型检测,验证构建的软件模型是否满足安全性规则;
S31、进行软件功能模型分析:
S311、使用功能输入接口分析规则对功能的输入接口进行自动化分析,分析可能产生的失效以及其对功能处理、功能输出的影响,最终是否导致功能失效;
S312、使用活动图分析规则自动扫描软件功能处理过程中的异常行为,分析其行为是否对功能输出造成影响,最终是否导致功能失效;
S313、使用功能输出接口分析规则对功能输出接口进行自动化分析,找到是否存在功能输出接口自身失效导致功能失效的情况;
S32、进行功能层次模型分析:自动化检测底层多个功能是否会导致顶层功能失效,找到单个功能运行均正常,但多功能并发时冲突和不一致的情况;
S33、进行软件状态模型分析:使用SysML语言中的状态图分析规则对软件状态模型自动扫描,发现存在孤立状态和不可达状态在内的影响嵌入式软件安全性的异常行为;
S34、进行SysML多模型图关联分析:使用SysML多模型图关联分析规则检查多状态、多功能运行时数据交互、时序约束和并发组合在内的复杂逻辑关系引发的功能失效;
S35、进行***和软件关联影响分析:分析软件功能输出失效导致的硬件失效;***硬件执行部件失效导致的软件功能处理逻辑失效、硬件总线异常导致的软件功能输入接口失效与软件功能输出接口失效;分析软件功能失效对硬件造成的影响和***硬件失效对软件功能造成的影响。
2.根据权利要求1所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S21具体包括以下步骤:
S211、使用SysML语言中的块定义图对***实体进行建模,描述软件所运行的实体与其他实体之间的关系,每个所述块定义图中包括多个块,从块定义图中选择要分析的软件所在的块作为安全性分析对象;
S212、使用SysML语言中的内部块图对选定分析对象的内部模块属性之间的连接关系进行建模,使用连接器和对象类型流描述通过总线传输数据的连接关系;
S213、在内部块图中为连接器和对象类型流增加总线通信信息,配置通信协议和数据帧。
3.根据权利要求1所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S14中所述功能输入包括一个或多个内部块图中连接器或对象类型流,表示功能所需的各种输入激励;所述功能处理采用SysML活动图描述其流程,实现对软件功能输入转化为输出的过程描述,每个所述功能处理逻辑关联一个或多个活动图;所述功能输出包括一个或多个内部块图中连接器和对象类型流,表示功能处理完成后,对外部的输出激励;创建功能模型图时,需要构建功能模型图与其他模型图的关联关系,包括构建功能输入与内部块图中连接器或对象类型流的关联关系、构建功能处理与SysML活动图的关联关系和构建功能输出与内部块图中连接器或对象类型流的关联关系。
4.根据权利要求2所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S211中对于实体,描述实体的结构特性和行为特性,所述结构特性包括值属性、组成属性、引用属性、约束属性和端口,所述行为特性包括操作和接收;对于实体之间的关系,构建实体间关联、泛化和依赖的关系,所述关联包括引用关联和组合关联;所述步骤S212对于只传输物质和能量的连接器和对象类型流此处无需描述,两个相互连接的属性可均为组成部分属性或引用属性或一样一个,若两个相互连接的属性拥有兼容的端口,选择把连接器与兼容的端口连接。
5.根据权利要求1所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S22中所述***功能列表按照功能的从属关系画成图表,总功能分解为若干分功能,各分功能进一步分解为若干二级分功能,上级功能与下级功能使用组合关联进行连接,如此继续,直至各分功能被分解为功能单元为止。
6.根据权利要求1所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S3中所述安全性分析规则库包括功能输入接口分析规则、SysML活动图分析规则、功能输出接口分析规则、SysML状态图分析规则和SysML多模型图关联分析规则。
7.根据权利要求1所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,所述步骤S12中所述总线数据包括一个或多个数据帧,所述数据帧具有传输方向、传输周期和数据帧长度属性。
8.根据权利要求7所述的基于SysML的嵌入式软件安全性分析方法,其特征在于,每个所述数据帧包括多个帧变量,所述帧变量具有变量类型和长度属性。
9.一种利用权利要求1至8之一所述的基于SysML的嵌入式软件安全性分析方法的嵌入式软件安全性分析***,其特征在于,其包括SysML语言扩展模块、软件建模模块、安全性分析规则模块和安全性分析模块,所述SysML语言扩展模块扩展SysML语言,所述软件建模模块对软件静态结构和动态行为进行完整准确描述并构建软件模型;所述安全性分析规则模块构建的安全性分析规则库,所述安全性分析模块对所述软件建模模块构建的软件模型进行模型检测并验证是否满足安全性规则;所述软件建模模块包括***总线交联组件和软件关联组件,所述软件关联组件包括功能层次部分、功能部分、活动部分、状态部分和关联部分;所述***总线交联组件用于构建***总线交联模型,所述功能层次部分、功能部分、活动部分和状态部分分别用于构建软件功能层次模型、软件功能模型、软件活动模型和软件状态模型,所述关联部分用于构建软件功能模型与软件状态模型的关联关系;所述安全性分析模块包括软件功能模型分析组件、功能层次模型分析组件、软件状态模型分析组件、SysML多模型图关联分析组件和***与软件关联影响分析组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445946.5A CN114238084B (zh) | 2021-11-30 | 2021-11-30 | 基于SysML的嵌入式软件安全性分析方法及其分析*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111445946.5A CN114238084B (zh) | 2021-11-30 | 2021-11-30 | 基于SysML的嵌入式软件安全性分析方法及其分析*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114238084A CN114238084A (zh) | 2022-03-25 |
CN114238084B true CN114238084B (zh) | 2024-04-12 |
Family
ID=80752277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111445946.5A Active CN114238084B (zh) | 2021-11-30 | 2021-11-30 | 基于SysML的嵌入式软件安全性分析方法及其分析*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238084B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115758789B (zh) * | 2022-12-01 | 2023-11-17 | 金航数码科技有限责任公司 | 一种复杂实时嵌入式***的软件架构设计与架构传递方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2012100128A4 (en) * | 2011-02-22 | 2012-03-08 | Zensar Technologies Ltd | A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom |
CN105677563A (zh) * | 2016-01-05 | 2016-06-15 | 南昌航空大学 | 一种基于SysML模块图的集成测试序列生成方法 |
CN106528407A (zh) * | 2016-10-19 | 2017-03-22 | 中国航空综合技术研究所 | 一种嵌入式软件安全性自动化验证***及其验证方法 |
CN109634600A (zh) * | 2018-10-30 | 2019-04-16 | 西安电子科技大学 | 一种基于安全扩展SysML和AADL模型的代码生成方法 |
CN111766846A (zh) * | 2020-05-25 | 2020-10-13 | 北京航空航天大学 | 一种基于stamp航空发动机控制***的安全性分析方法 |
CN113204409A (zh) * | 2021-05-13 | 2021-08-03 | 华东师范大学 | 一种基于s2ml的安全攸关***建模方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040154000A1 (en) * | 2003-02-03 | 2004-08-05 | Kasra Kasravi | System and method for semantic software analysis |
-
2021
- 2021-11-30 CN CN202111445946.5A patent/CN114238084B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2012100128A4 (en) * | 2011-02-22 | 2012-03-08 | Zensar Technologies Ltd | A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom |
CN105677563A (zh) * | 2016-01-05 | 2016-06-15 | 南昌航空大学 | 一种基于SysML模块图的集成测试序列生成方法 |
CN106528407A (zh) * | 2016-10-19 | 2017-03-22 | 中国航空综合技术研究所 | 一种嵌入式软件安全性自动化验证***及其验证方法 |
CN109634600A (zh) * | 2018-10-30 | 2019-04-16 | 西安电子科技大学 | 一种基于安全扩展SysML和AADL模型的代码生成方法 |
CN111766846A (zh) * | 2020-05-25 | 2020-10-13 | 北京航空航天大学 | 一种基于stamp航空发动机控制***的安全性分析方法 |
CN113204409A (zh) * | 2021-05-13 | 2021-08-03 | 华东师范大学 | 一种基于s2ml的安全攸关***建模方法 |
Non-Patent Citations (2)
Title |
---|
SysML对C~4ISR***建模的支持研究;张炜钟;王智学;朱卫星;陈剑;;南京理工大学学报;20110630(03);全文 * |
基于模式的软件安全性需求研究;李雪飞等;《航空标准化与质量》;20210228(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114238084A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rudie et al. | Minimal communication in a distributed discrete-event system | |
Denney et al. | A formal basis for safety case patterns | |
Pecheur et al. | Formal verification of diagnosability via symbolic model checking | |
Metodi et al. | A novel sat-based approach to model based diagnosis | |
Simmons et al. | Towards automatic verification of autonomous systems | |
Zhou et al. | Towards feature-oriented requirements validation for automotive systems | |
CN114238084B (zh) | 基于SysML的嵌入式软件安全性分析方法及其分析*** | |
Gnesi et al. | On the fly model checking of communicating UML State Machines | |
Teodorov et al. | Past‐Free [ze] reachability analysis: reaching further with DAG‐directed exhaustive state‐space analysis | |
Bernaerts et al. | Validating industrial requirements with a contract-based approach | |
Ratiu et al. | FASTEN: an extensible platform to experiment with rigorous modeling of safety-critical systems | |
Denney et al. | Explaining verification conditions | |
El-Hokayem et al. | A temporal configuration logic for dynamic reconfigurable systems | |
Esmaeilsabzali et al. | Prescriptive semantics for big-step modelling languages | |
CN106339553A (zh) | 一种空间飞行器的重构飞行控制方法及*** | |
CN113157562A (zh) | 一种基于扩展有限状态机模型的测试用例生成方法及平台 | |
Callahan et al. | Generating test oracles via model checking | |
Bucchiarone et al. | Dynamic software architectures verification using dynalloy | |
Singh et al. | Learning component interfaces with may and must abstractions | |
Nafz et al. | A universal self-organization mechanism for role-based Organic Computing systems | |
Berres et al. | Automatic generation of fault trees: A survey on methods and approaches | |
CN110286902A (zh) | SysML安全性扩展及其到AADL故障模型的自动转换方法 | |
Oliveira et al. | On the reconfiguration of software connectors | |
BELL et al. | Model-based mutation testing using pushdown automata | |
Park et al. | Static analysis to identify invariants in RSML specifications |
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 |