第28章 可信软件验证技术

一、主要内容

1、可信软件概述
2、可信软件的验证技术

二、可信软件的概述

1、可信软件

  • NSTC
    • 1997年,美国科学与技术委员会认为,即使系统在存在错误、环境存在故障、系统遭受破坏的情况下,设计者、实现者、用户都能够极大地去保证系统不失效、或表现不好的系统就是可信的
  • NRC
    • 美国国家研究委员会认为系统在崩溃、人为操作失误、恶意攻击、系统存在设计或实现错误的情况下,也能够按照预期运行的系统是可靠的
  • 国家自然科学基金委
    • 2008年,国家自然科学基金委认为可信软件就是,客观的对诸多属性在人们心目中一个综合的反应;提出了系统的状态行为及其结果总是符合人的预期,并且在系统受到干扰的情况下,人能提供连续的服务的软件

2、可信软件的特征

  • 系统在运行过程中受到相关的干扰(木马攻击、病毒攻击、窃听、网络攻击等)还是能够满足预期,系统的质量特性还是满足要求的
  • 有一些具体的质量属性、例如正确性(软件是正确的)、容错性(能够在发生缺陷的时候继续工作)、易安装性(容易部署)
  • 对软件可信度的评估是主观与客观的结合(传统测试客观性比较强)

三、可信软件的验证技术

1、形式化方法

(1)形式化系统分析与验证分为以下几个步骤

  • 系统分析与验证的步骤通过数据流描述、变量关系描述和软件体系结构描述等图形符号,从形式化需求模型中抽取不同形态的分析模型。
  • 根据软件的特点划分为不同分析目标,为每个验证分析目标定义出相应技术。
  • 针对建立的性质集合,采用模型检测的方法自动地发现漏dong与验证软件是否满足高安全可靠性需求。
  • 自动生成测试用例,基于系统模型及需求自动生成关于软件实现的测试用例集,提高系统测试的效率和错误发现能力。
  • 将形式化模型进行仿真。仿真主要用于检测模型中人们所关心的系统行为在执行时是否存在错误,是一种类似于“运行”系统来暴露错误和缺陷的分析方法。

(2)形式化验证技术

  • 定理证明
    • 把软件系统是否满足性质归约的问题转化为定理的形式,然后通过数学逻辑公式和推导演绎规则进行验证。
  • 模型检查
    • 主要思想是用一个模型转换图对软件系统的程序状态和状态之间的迁移关系进行形象建模,用时态逻辑公式对性质归约进行刻画,然后来验证性质归约是否被满足。

2、形式化建模与方法

  • 能够帮助我们做软件可信度验证

3、可信软件验证工具

  • Spin
    • 开源的形式化软件验证工具,用来分析和验证并发系统的逻辑是否一致的一种辅助检验性工具
  • NuSMV
    • 开源的形式化软件验证工具
  • Atelier-B
    • 主要用于达到S2L3、S2L4功能安全复杂性的系统建模与验证

猜你喜欢

转载自blog.csdn.net/qq_46071165/article/details/127373654
今日推荐