CN112597446B - 一种安全关键软件建模语言安全子集的筛选方法 - Google Patents
一种安全关键软件建模语言安全子集的筛选方法 Download PDFInfo
- Publication number
- CN112597446B CN112597446B CN202011465637.XA CN202011465637A CN112597446B CN 112597446 B CN112597446 B CN 112597446B CN 202011465637 A CN202011465637 A CN 202011465637A CN 112597446 B CN112597446 B CN 112597446B
- Authority
- CN
- China
- Prior art keywords
- safety
- subset
- elements
- modeling
- modeling language
- 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
- 238000012216 screening Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000006870 function Effects 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims abstract description 6
- 230000003068 static effect Effects 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 5
- 230000005284 excitation Effects 0.000 claims description 3
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安全关键软件建模语言安全子集的筛选方法,该方法包括以下步骤:(1)建立建模语言的完整词汇集;(2)从完整词汇集剔除不安全元素,建立安全子集初筛版本;(3)建立目标领域编程元素集合;(4)安全子集的充分性分析;(5)安全子集的安全性验证。本发明所述的方法确保了安全子集的充分性、必要性和安全性,使得安全子集既能满足安全关键软件开发的需要,又规避了因安全子集中的元素功能重复带来的问题,从而生成安全性极高的建模语言。
Description
技术领域
本发明属于软件开发领域,特别是一种安全关键软件建模语言安全子集的筛选方法。
背景技术
航空航天等领域对能导致灾难性风险的软件的安全性提出了严格的要求,这些软件被称为安全关键软件。软件开发需要使用编程语言,每种编程语言都对其使用的词汇和语法做出限定,形成相应的词汇集和语法集。为避免编程语言本身的问题引入设计缺陷,安全关键软件开发必须对选用的编程语言的词汇和语法做出进一步的限制,从而建立编程语言的安全子集,再以此为基础开展软件产品的研发。
基于模型的软件设计使用图形化的建模语言建立模型并自动生成代码。建模语言中,词汇集通常以库的形式,独立于语法规则而存在。因此,要对建模语言的词汇集做出进一步限制,可以在原词汇集的基础上进行筛选,形成安全子集,对语法集的限制,则称为建模规范。安全子集对于安全关键软件建模起着重要作用,但却容易缺乏充分性、必要性和安全性。当充分性不足时,安全子集无法满足安全关键软件开发的需要;当必要性不足时,安全子集会存在功能重复或相近的元素,功能重复的元素将导致相同的逻辑可能产生不同的选择和设计出不同的结果,而功能相近的元素容易引起使用的错误;当安全性不足时,安全子集的元素无法生成代码或生成的代码存在安全风险,安全子集的元素不具有明确的功能、接口及良好的图形显示,使得模型设计人员由于误解而产生错误。
发明内容
发明目的:本发明的目的是提供一种能够确保安全子集的充分性、必要性、安全性的安全关键软件建模语言安全子集的筛选方法。
技术方案:从充分性角度考虑,安全子集应能满足安全关键软件开发的需要,即常见的建模元素在安全子集中要有相应的模型元素与之对应,如分支选择结构、算术运算、逻辑运算等;从必要性角度考虑,安全子集中的元素应避免功能的重复;从安全性角度考虑,一方面,安全子集的元素应能生成代码且生成的代码应不存在安全风险;另一方面,安全子集的元素应具有明确的功能、接口及良好的图形显示,从而避免模型设计人员由于误解而产生错误。
本发明所述的安全关键软件建模语言安全子集的筛选方法,包括以下步骤:
(1)根据原建模语言的指导手册建立建模语言的完整词汇集;
(2)对建模语言完整词汇集开展必要性分析,从完整词汇集剔除不安全元素,建立安全子集初筛版本;
(3)根据使用领域的要求,建立目标领域编程元素集合,作为充分性分析的依据;
(4)安全子集的充分性分析;
(5)安全子集的安全性验证。
所述步骤(2)包括步骤(2.1):遍历建模语言完整词汇集,剔除不能够生成代码的元素。
所述步骤(2)包括步骤(2.2):遍历建模语言完整词汇集,分析建模元素的图标、输入输出接口、使用方法,剔除易引起软件设计人员误解的元素,剔除使用时操作过于复杂的元素。
所述步骤(2)包括步骤(2.3):遍历建模语言完整词汇集,对建模元素实现的功能进行比较,剔除功能重复的元素。
所述步骤(5)包括步骤(5.1):使用安全子集的建模元素搭建模型。
所述步骤(5)包括步骤(5.2):将搭建模型的模型生成代码。
所述步骤(5)包括步骤(5.3):对生成代码开展审查,确定生成代码能够正确实现模型的设计意图。
所述步骤(5)包括步骤(5.4):使用静态分析工具对生成代码开展静态分析,检查生成代码的不安全因素及对编码规范的符合性。
所述步骤(5)包括步骤(5.5):将建模元素与其生成的代码置于同一仿真环境下,构建仿真环境,并将相同的激励信号输入给建模元素与其生成的代码,比较两者的输出信号,若有差异则应做进一步分析,若无差异则验证通过。
有益效果:与现有技术相比,本发明具有如下优点:1、确保了安全子集的充分性,使得安全子集能够满足安全关键软件开发的需要;2、确保了安全子集的必要性,规避因安全子集中的元素功能重复或相近带来的问题;3、确保了安全子集的安全性,安全子集的元素能够生成代码且生成的代码不存在安全风险,同时,安全子集的元素具有明确的功能、接口及良好的图形显示,避免模型设计人员由于误解而产生错误。
附图说明
图1为本方法的步骤流程图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
本发明所述的一种安全关键软件建模语言安全子集的筛选方法包括如图1所示的步骤,具体为:
(1)根据原建模语言的指导手册建立建模语言的完整词汇集;
(2)对建模语言完整词汇集开展必要性分析,从完整词汇集剔除不安全元素,建立安全子集初筛版本;
(2.1)遍历建模语言完整词汇集,剔除不能够生成代码的元素;
(2.2)遍历建模语言完整词汇集,分析建模元素的图标、输入输出接口、使用方法,剔除易引起软件设计人员误解的元素,剔除使用时操作过于复杂的元素;
(2.3)遍历建模语言完整词汇集,对建模元素实现的功能进行比较,剔除功能重复的元素;
(3)根据使用领域的要求,建立目标领域编程元素集合,作为充分性分析的依据;
(4)安全子集的充分性分析,遍历目标领域编程元素集合中的元素,检查在安全子集的初筛版本中是否有相对应的元素,若初筛版本安全子集中缺少部分元素,则分析原因并从原词汇集中挑选相应元素进行补充;若初筛版本安全子集能够包含目标领域编程元素集合,则形成安全子集的充分版本;
(5)对安全子集的充分版本开展安全性验证,安全性验证的方法包括生成代码的审查、静态分析、建模元素与其生成代码的对比验证;
(5.1)使用安全子集的建模元素搭建模型;
(5.2)将搭建模型的模型生成代码;
(5.3)对生成代码开展审查,确定生成代码能够正确实现模型的设计意图;
(5.4)使用静态分析工具对生成代码开展静态分析,检查生成代码的不安全因素及对编码规范的符合性;
(5.5)将建模元素与其生成的代码置于同一仿真环境下,构建仿真环境,并将相同的激励信号输入给建模元素与其生成的代码,比较两者的输出信号,若有差异则应做进一步分析,若无差异则验证通过。
Claims (4)
1.一种安全关键软件建模语言安全子集的筛选方法,其特征在于,包括以下步骤:
(1)根据原建模语言的指导手册建立建模语言的完整词汇集;
(2)对建模语言完整词汇集开展必要性分析,从完整词汇集剔除不安全元素,建立安全子集初筛版本;
(3)根据使用领域的要求,建立目标领域编程元素集合,作为充分性分析的依据;
(4)安全子集的充分性分析;遍历目标领域编程元素集合中的元素,检查在安全子集的初筛版本中是否有相对应的元素,若初筛版本安全子集中缺少部分元素,则分析原因并从原词汇集中挑选相应元素进行补充;若初筛版本安全子集能够包含目标领域编程元素集合,则形成安全子集的充分版本;
(5)安全子集的安全性验证;
(5.1)使用安全子集的建模元素搭建模型;
(5.2)将搭建模型的模型生成代码;
(5.3)对生成代码开展审查,确定生成代码能够正确实现模型的设计意图;
(5.4)使用静态分析工具对生成代码开展静态分析,检查生成代码的不安全因素及对编码规范的符合性;
(5.5)将建模元素与其生成的代码置于同一仿真环境下,构建仿真环境,并将相同的激励信号输入给建模元素与其生成的代码,比较两者的输出信号,若有差异则应做进一步分析,若无差异则验证通过。
2.根据权利要求1所述的安全关键软件建模语言安全子集的筛选方法,其特征在于,所述步骤(2)包括步骤(2.1):遍历建模语言完整词汇集,剔除不能够生成代码的元素。
3.根据权利要求1所述的安全关键软件建模语言安全子集的筛选方法,其特征在于,所述步骤(2)包括步骤(2.2):遍历建模语言完整词汇集,分析建模元素的图标、输入输出接口和使用方法,剔除易引起软件设计人员误解的元素,剔除使用时操作过于复杂的元素。
4.根据权利要求1所述的安全关键软件建模语言安全子集的筛选方法,其特征在于,所述步骤(2)包括步骤(2.3):遍历建模语言完整词汇集,对建模元素实现的功能进行比较,剔除功能重复的元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011465637.XA CN112597446B (zh) | 2020-12-14 | 2020-12-14 | 一种安全关键软件建模语言安全子集的筛选方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011465637.XA CN112597446B (zh) | 2020-12-14 | 2020-12-14 | 一种安全关键软件建模语言安全子集的筛选方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597446A CN112597446A (zh) | 2021-04-02 |
CN112597446B true CN112597446B (zh) | 2023-07-25 |
Family
ID=75192742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011465637.XA Active CN112597446B (zh) | 2020-12-14 | 2020-12-14 | 一种安全关键软件建模语言安全子集的筛选方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597446B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1402354A2 (en) * | 2001-06-08 | 2004-03-31 | The Secretary Of State For Defence | Automatic development of software codes |
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
CN106528970A (zh) * | 2016-10-31 | 2017-03-22 | 耿生玲 | 一种基于可能性时空混成自动机的cps建模与属性验证方法 |
WO2017063178A1 (en) * | 2015-10-15 | 2017-04-20 | Accenture Global Services Limited | System and method for selecting controllable parameters for equipment operation safety |
US10108400B1 (en) * | 2015-01-06 | 2018-10-23 | Rockwell Collins, Inc. | Rapid avionics development environment |
WO2019071354A1 (en) * | 2017-10-13 | 2019-04-18 | 2509757 Ontario Inc. | IDENTIFYING SECURITY RISKS IN A SECURE SOFTWARE LIFE CYCLE |
CN110674473A (zh) * | 2019-09-12 | 2020-01-10 | 中国民航大学 | 一种基于stpa的安全关键软件安全性验证方法 |
CN111966598A (zh) * | 2020-08-19 | 2020-11-20 | 江南机电设计研究所 | 一种C++Test定制化方法及航天型号软件代码单元静态分析方法 |
CN112596721A (zh) * | 2020-12-14 | 2021-04-02 | 中国航发控制系统研究所 | 一种安全关键软件建模语言安全子集的管理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030159070A1 (en) * | 2001-05-28 | 2003-08-21 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US7243374B2 (en) * | 2001-08-08 | 2007-07-10 | Microsoft Corporation | Rapid application security threat analysis |
US8925076B2 (en) * | 2012-12-11 | 2014-12-30 | Kaspersky Lab Zao | Application-specific re-adjustment of computer security settings |
-
2020
- 2020-12-14 CN CN202011465637.XA patent/CN112597446B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1402354A2 (en) * | 2001-06-08 | 2004-03-31 | The Secretary Of State For Defence | Automatic development of software codes |
CN101017458A (zh) * | 2007-03-02 | 2007-08-15 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
US10108400B1 (en) * | 2015-01-06 | 2018-10-23 | Rockwell Collins, Inc. | Rapid avionics development environment |
WO2017063178A1 (en) * | 2015-10-15 | 2017-04-20 | Accenture Global Services Limited | System and method for selecting controllable parameters for equipment operation safety |
CN106528970A (zh) * | 2016-10-31 | 2017-03-22 | 耿生玲 | 一种基于可能性时空混成自动机的cps建模与属性验证方法 |
WO2019071354A1 (en) * | 2017-10-13 | 2019-04-18 | 2509757 Ontario Inc. | IDENTIFYING SECURITY RISKS IN A SECURE SOFTWARE LIFE CYCLE |
CN110674473A (zh) * | 2019-09-12 | 2020-01-10 | 中国民航大学 | 一种基于stpa的安全关键软件安全性验证方法 |
CN111966598A (zh) * | 2020-08-19 | 2020-11-20 | 江南机电设计研究所 | 一种C++Test定制化方法及航天型号软件代码单元静态分析方法 |
CN112596721A (zh) * | 2020-12-14 | 2021-04-02 | 中国航发控制系统研究所 | 一种安全关键软件建模语言安全子集的管理方法 |
Non-Patent Citations (5)
Title |
---|
一种面向安全关键软件的程序证明方法研究;曲长亮;中国优秀硕士学位论文全文数据库 信息科技辑(第1期);I138-119 * |
基于SCADE的航空发动机FADEC软件开发;周彰毅;黄浩;方伟;朱理化;;测控技术(第01期);110-115 * |
基于XML的软件安全静态检测方法研究;周宽久;郑红波;赖晓晨;刘春燕;迟宗正;;计算机工程与应用(第28期);64-69 * |
基于模糊决策的云计算安全模型;陈静;;现代电子技术(第23期);89-92+96 * |
面向龙芯处理器的编译检测技术研究;赖策;李明东;刘茜;李艳梅;;西华师范大学学报(自然科学版)(第04期);462-466 * |
Also Published As
Publication number | Publication date |
---|---|
CN112597446A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thompson et al. | Specification-based prototyping for embedded systems | |
US9754059B2 (en) | Graphical design verification environment generator | |
WO2012032890A1 (ja) | ソースコード変換方法およびソースコード変換プログラム | |
US7228524B2 (en) | Method and system for analysis of software requirements | |
EP1672547A1 (en) | Event-driven model generated from an ordered natural language interface | |
WO2007001108A1 (en) | System for providing feature-oriented software product line engineering environment | |
US7577928B2 (en) | Verification of an extracted timing model file | |
KR20080055913A (ko) | 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 | |
CN112597446B (zh) | 一种安全关键软件建模语言安全子集的筛选方法 | |
Burnard et al. | Verifying and validating automatically generated code | |
Manolios et al. | A model-based framework for analyzing the safety of system architectures | |
Erkkinen et al. | Model-based design for DO-178B with qualified tools | |
US8751988B1 (en) | Computer-implemented methods and systems for automatic generation of layout versus schematic (LVS) rule files and regression test data suites | |
Marcil et al. | Realizing DO-178C's value by using new technology: OOT, MBDV, TQC & FM | |
JP5001190B2 (ja) | Lsi設計検証システム、lsi設計検証方法およびそのプログラム | |
CN115398358A (zh) | 用于分析可编程逻辑控制器程序的方法 | |
US20070186198A1 (en) | Generation of an extracted timing model file | |
KR101601741B1 (ko) | 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치 | |
Stürmer et al. | Modeling Guidelines and Model Analysis Tools in Embedded Automotive Software Development. | |
Ermel et al. | Behavior-preserving simulation-to-animation model and rule transformations | |
CN118034661B (zh) | 大语言模型智能任务应用系统 | |
Sarkis et al. | Recommendations for the usage of design models in aviation software | |
da Cruz et al. | Ambers: Improving requirements specification through assertive models and scade/doors integration | |
Lecomte | Atelier B | |
Bowen et al. | Formal Requirements Specification. |
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 |