一种嵌入式软件安全性自动化验证系统及其验证方法技术方案

技术编号:14874605 阅读:93 留言:0更新日期:2017-03-23 22:17
本发明专利技术是一种嵌入式软件安全性自动化验证系统及其验证方法,该技术方案结合基于模型检测的形式化验证技术与基于模型的软件测试技术,实现了对软件安全性的双重验证。本发明专利技术实现的自动化验证系统包括四部分,分别是软件需求建模模块、安全性验证规则数据库、形式化验证模块、安全性测试模块。软件需求建模模块包含两个子模块,其中ICD建模模块描述软件外部交联环境,形式化建模模块描述软件内部行为。其次构建安全性验证规则数据库,用于存放安全性验证规则。然后构建形式化验证模块,该模块基于安全性验证规则和模型检测算法对软件需求进行模型验证。软件测试模块中包含两个模块,其中测试用例生成模块用于生成可执行的安全性用例。测试用例翻译模块对生成的用例进行格式转换。

【技术实现步骤摘要】

本专利技术是一种嵌入式软件安全性自动化验证系统及其验证方法,属于软件安全性分析领域。
技术介绍
嵌入式软件在航空航天等领域广泛应用,越来越多的功能采用软件实现。近年来,随着软件复杂性的提高,软件失效导致的故障频繁发生,因此保障嵌入式软件的安全性已成为近年来软件工程领域的研究热点。欧美成熟经验表明,开展软件安全性分析工作是提升软件质量的有效方法,主要工作包括嵌入式软件安全需求的提取与规约、面向标准的嵌入式软件开发、嵌入式软件安全需求验证三部分内容。嵌入式软件需求验证是安全性分析中的关键环节,形式化验证和软件测试是嵌入式软件安全需求验证的主要方法。这两种方法各有利弊,形式化验证能够在软件需求分析和设计的早期阶段发现模型漏洞,缩短研发周期,且通过形式化验证能够挖掘由多个控制功能之间的数据交互、时序约束、并发组合等复杂逻辑关系引发的软件需求缺陷。但是形式化方法本身的复杂性对工程人员提出了很高的要求,使得当前在国内普及使用非常困难。此外,形式化验证的分析对象是软件模型,无法发现软件模型与具体实现不一致而导致的软件缺陷。在国内,软件测试仍然是提高对软件安全性的最有效的手段,软件测试通常在研制的中后期开展,被测软件被安装在真实的硬件设备中运行,不仅能找出代码实现的局部方法错误等细枝末节问题,还能找出由于软件实现与模型在逻辑上的背离而导致的重大安全性问题。但软件测试过程中由于测试用例的覆盖率有限,难以穷尽对整个系统的测试,而安全苛求系统的运行通常与外部环境有关,其执行往往具有不确定性,测试极为困难,因此软件测试方法不能从根本上保证系统的安全性。目前,形式化验证方法由于理论性较强,在嵌入式软件研制过程中较少开展。而对于软件测试,虽然有部分测试平台出现,但普及程度较低。大多采用人工测试的方式,对于复杂的软件系统,测试效率低,并且无法发现多状态并发、多功能冲突等导致的软件问题。
技术实现思路
本专利技术正是针对上述现有
中存在的不足而设计提供了一种嵌入式软件安全性自动化验证系统及其验证方法,其目的是根据形式化验证和软件测试的特点和互补性,将这两种技术手段相融合,结合国内工程实际和研制要求,综合考虑分析要素和工程限制,提出一种符合国内研制现状的种嵌入式软件安全性自动化验证系统及其验证方法,提高国内嵌入式软件需求验证水平。本专利技术的目的是通过以下技术方案来实现的:本专利技术技术方案提出了一种嵌入式软件安全性自动化验证系统,其特征在于:该系统包括:A软件需求建模模块(1),其功能是根据待验证软件的ICD文件和需求规格说明对待验证软件进行形式化描述,形成软件需求模型文件,该软件需求建模模块(1)包括:ICD建模模块(2),其功能是描述待验证软件运行的外部交联环境,包括与外部设备之间的交联关系、总线类型及通信协议,形成ICD模型数据;软件形式化建模模块(3),其功能是在ICD模型数据的基础上,采用UML和OCL形式化语言描述待验证软件的内部行为,包括状态迁移及功能逻辑,最终形成软件需求模型文件;该软件需求建模模块(1)中,ICD建模模块(2)与软件形式化建模模块(3)连接,由ICD建模模块(2)向软件形式化建模模块(3)传输ICD模型数据;B安全性验证规则数据库(4),其功能是存储安全性验证规则,并提供查询、匹配、更新、维护的接口;C形式化验证模块(5),分别与软件需求建模模块(1)和安全性验证规则数据库(4)连接,由软件需求建模模块(1)向形式化验证模块(5)传输软件需求模型文件,由安全性验证规则数据库(4)向形式化验证模块(5)提供验证的依据,即安全性验证规则,该形式化验证模块(5)的功能是基于安全性验证规则数据库(4)中的安全性验证规则,对软件需求建模模块(1)形成的软件需求模型文件进行形式化验证,形成形式化验证结果;D安全性测试模块(6),分别与软件需求建模模块(1)、安全性验证规则数据库(4)和形式化验证模块(5)相连接,由软件需求建模模块(1)向安全性测试模块(6)提供软件需求模型文件,由安全性验证规则数据库(4)向安全性测试模块(6)提供安全性验证规则,由形式化验证模块(5)向安全性测试模块(6)提供形式化验证结果,该安全性测试模块(6)的功能是根据的软件需求模型文件和形式化验证结果以及安全性验证规则生成测试用例并通过翻译进行用例格式转换,以适应不同测试执行平台的需要,该安全性测试模块(6)包括:测试用例生成模块(7),其功能是生成XML格式的测试用例;测试用例翻译模块(8),其功能接收测试用例生成模块(7)生成的XML格式的测试用例,并将其翻译成其它格式的测试用例,其它格式包括自然语言格式、脚本语言格式。本专利技术技术方案还提出用于上述嵌入式软件安全性自动化验证系统的验证方法,其特征在于:该方法的步骤如下:步骤一、通过对待验证软件运行的外部交联环境,包括与外部设备之间的交联关系、总线类型及通信协议的描述,建立ICD模型数据;步骤二、在ICD模型数据的基础上,采用OCL形式化语言描述待验证软件的内部行为,包括状态迁移及功能逻辑,建立软件需求模型文件;步骤三、将已有的软件失效原因,归纳形成安全性验证规则,建立安全性验证规则数据库;步骤四、基于安全性验证规则数据库中的安全性验证规则,对软件需求模型文件进行形式化验证,获得形式化验证结果;步骤五、根据软件需求模型文件、形式化验证结果以及安全性验证规则,生成XML格式的安全性测试用例;步骤六、对XML格式的安全性测试用例进行格式转换,生成测试执行时所需要的用例格式。本专利技术的优点与积极效果在于:(1)采用本专利技术技术方案构建的安全性自动化验证系统,结合了形式化验证和软件测试两种方法,实现了在研制早期对软件需求模型进行形式化验证,在研制中后期,为软件测试提供了测试用例,弥补了现有单一方法的不足,增强了验证的充分性;(2)采用本专利技术技术方案构建的安全性自动化验证系统大大降低了用户的使用门槛,易于推广,软件需求建模模块中采用的UML和OCL形式化语言是相关领域从业人员普遍掌握的技术,验证系统的适用人员无需掌握复杂的形式化验证算法;(3)采用本专利技术技术方案构建的安全性自动化验证系统实现了形式化验证和安全性测试用例生成的自动化,用户只需构建软件需求模型文件和选择采用的安全性验证规则,验证工作由系统自动完成;(4)本专利技术技术方案构建的安全性自动化验证系统中安全性验证规则数据库的提出,为工程经验的积累及使用提供了切实可行的方法,有利于建立具有自主知识产权的领域失效数据库,通过经验数据的不断积累,对后期研制的指导作用不断增强;(5)本专利技术技术方案构建的安全性自动化验证系统降低了工程实施难度,对复杂的发控软件进行建模时取得良好效果;(6)本专利技术技术方案构建的安全性自动化验证系统基于安全性验证规则的形式化验证更有针对性,避免使用穷举遍历的方法导致的空间爆炸问题;(7)本专利技术技术方案构建的安全性自动化验证系统获得的形式化验证结果预置条件明确,输入数值精准,可操作、可实施,便于发现问题时人工复现及回放;(8)本专利技术技术方案构建的安全性自动化验证系统建模时采用标准的UML建模语言,符合相关国军标标准,构建的模型可以直接用于软件需求分析及设计中,避免了多次重复建模;(9)本专利技术技术方案构建的安全性自动化验证系本文档来自技高网
...
一种嵌入式软件安全性自动化验证系统及其验证方法

【技术保护点】
一种嵌入式软件安全性自动化验证系统,其特征在于:该系统包括:A软件需求建模模块(1),其功能是根据待验证软件的ICD文件和需求规格说明对待验证软件进行形式化描述,形成软件需求模型文件,该软件需求建模模块(1)包括:ICD建模模块(2),其功能是描述待验证软件运行的外部交联环境,包括与外部设备之间的交联关系、总线类型及通信协议,形成ICD模型数据;软件形式化建模模块(3),其功能是在ICD模型数据的基础上,采用OCL形式化语言描述待验证软件的内部行为,包括状态迁移及功能逻辑,最终形成软件需求模型文件;该软件需求建模模块(1)中,ICD建模模块(2)与软件形式化建模模块(3)连接,由ICD建模模块(2)向软件形式化建模模块(3)传输ICD模型数据;B安全性验证规则数据库(4),其功能是存储安全性验证规则,并提供查询、匹配、更新、维护的接口;C形式化验证模块(5),分别与软件需求建模模块(1)和安全性验证规则数据库(4)连接,由软件需求建模模块(1)向形式化验证模块(5)传输软件需求模型文件,由安全性验证规则数据库(4)向形式化验证模块(5)提供验证的依据,即安全性验证规则,该形式化验证模块(5)的功能是基于安全性验证规则数据库(4)中的安全性验证规则,对软件需求建模模块(1)形成的软件需求模型文件进行形式化验证,形成形式化验证结果;D安全性测试模块(6),分别与软件需求建模模块(1)、安全性验证规则数据库(4)和形式化验证模块(5)相连接,由软件需求建模模块(1)向安全性测试模块(6)提供软件需求模型文件,由安全性验证规则数据库(4)向安全性测试模块(6)提供安全性验证规则,由形式化验证模块(5)向安全性测试模块(6)提供形式化验证结果,该安全性测试模块(6)的功能是根据的软件需求模型文件和形式化验证结果以及安全性验证规则生成测试用例并通过翻译进行用例格式转换,以适应不同测试执行平台的需要,该安全性测试模块(6)包括:测试用例生成模块(7),其功能是生成XML格式的测试用例;测试用例翻译模块(8),其功能接收测试用例生成模块(7)生成的XML格式的测试用例,并将其翻译成其它格式的测试用例,其它格式包括自然语言格式、脚本语言格式。...

【技术特征摘要】
1.一种嵌入式软件安全性自动化验证系统,其特征在于:该系统包括:A软件需求建模模块(1),其功能是根据待验证软件的ICD文件和需求规格说明对待验证软件进行形式化描述,形成软件需求模型文件,该软件需求建模模块(1)包括:ICD建模模块(2),其功能是描述待验证软件运行的外部交联环境,包括与外部设备之间的交联关系、总线类型及通信协议,形成ICD模型数据;软件形式化建模模块(3),其功能是在ICD模型数据的基础上,采用OCL形式化语言描述待验证软件的内部行为,包括状态迁移及功能逻辑,最终形成软件需求模型文件;该软件需求建模模块(1)中,ICD建模模块(2)与软件形式化建模模块(3)连接,由ICD建模模块(2)向软件形式化建模模块(3)传输ICD模型数据;B安全性验证规则数据库(4),其功能是存储安全性验证规则,并提供查询、匹配、更新、维护的接口;C形式化验证模块(5),分别与软件需求建模模块(1)和安全性验证规则数据库(4)连接,由软件需求建模模块(1)向形式化验证模块(5)传输软件需求模型文件,由安全性验证规则数据库(4)向形式化验证模块(5)提供验证的依据,即安全性验证规则,该形式化验证模块(5)的功能是基于安全性验证规则数据库(4)中的安全性验证规则,对软件需求建模模块(1)形成的软件需求模型文件进行形式化验证,形成形式化验证结果;D安全性测试模块(6),分别与软件需求建模模块(1)、安全性验证规则数据库(4)和形式化验证模块(5)相连接,由软件需求建模模块(1...

【专利技术属性】
技术研发人员:周汉清黄燕冰江志炜
申请(专利权)人:中国航空综合技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1