机动车电子器件中断安全隐患检测系统及其检测方法技术方案

技术编号:14349309 阅读:93 留言:0更新日期:2017-01-04 19:57
本发明专利技术提供一种机动车电子器件中断安全隐患检测系统,包括:代码预处理模块,其对汽车电子器件机器码进行代码切片;模型生成模块,其为切片后的代码建立抽象模型;代码验证与分析模块,其检测所述抽象模型是否存在中断安全隐患。本发明专利技术还提供机动车电子器件中断安全隐患检测系统的检测方法,从机器码层面上进行错误检测,避免使用编译器编译高级语言可能带来的错误,对机器码切片,截取机器码局部有用的代码,很好地避免模型检查时的状态爆炸问题,并在原有正确性的基础上对汽车操作系统提出更高层次的要求。

【技术实现步骤摘要】

本专利技术涉及操作系统软件
,具体涉及一种机动车电子器件中断安全隐患检测系统及其检测方法
技术介绍
由于中断具有很多非确定性特点,导致在处理的过程中常会遇到一系列的问题而难于对其有一个比较好的计算机制。在操作系统中,中断提供了一种快速的基于事件的服务程序处理机制,但同时也给操作系统的运行带来了很多的不确定因素,正是由于这些不确定的因素与不同事件处理程序的处理方法的不同,使得原来确定的操作系统行为变得非常不确定。中断引发的问题主要有两种:第一种是溢出类问题,无论是堆栈的溢出还是引发的全局变量内容的溢出,都将会使进入非正常的状态之中。第二种是数据操作错误,由于中断程序的特殊调用过程与调用的时间的不确定性,造成了原有的数据操作的事务性特征无法得到比较好的保持,从而产生了数据操作错误。这种错误又可以分为数据误读错误与数据脏读错误。从这两类安全隐患中,可以分别概括出中断的调用性安全性质与数据操作性安全性质。安全性质主要包括三部分内容:(1)中断只被允许存在于指定上限的嵌套调用。在处理中断的过程中,应该允许指定上限的嵌套中断处理,过多的中断处理将如上面描述的那样产生堆栈溢出与其它判断条件与保护机制的失效。此类错误同时可能会产生除中断嵌套层数变量与堆栈指针溢出以外的问题,与中断嵌套变量及堆栈指针有关的其它逻辑判断变量值都有可能会产生错误的结果。(2)中断程序不可修改被打断任务访问的数据环境。在中断的处理程序中,不许可操作(修改)被中断的任务的数据环境。例如在被中断程序P中,在中断点后使用了全局变量v1,在中断处理程序INTP中,将不能许可对v1进行写操作。否则将会产生中断数据误读的错误。(3)中断程序不可访问事务性任务操作的数据环境。在中断的处理程序中,不许可访问(读取)被中断的事务性任务将操作的数据环境。例如在被中断的事务性任务P中,在中断点后操作(修改)了全局变量v1,在中断处理程序INTP中,将不能许可对v1进行读操作。否则将有可能产生中断数据脏读的错误。根据以上的安全性质,本专利技术克服了现有技术存在的缺陷,比如传统测试工具很难做到路径全覆盖,无法对中断错误进行完全检测,本专利技术提供了一种机动车电子器件中断安全隐患检测系统及其检测方法,具有路径全覆盖、检测自动化的有益效果。
技术实现思路
本专利技术提供一种机动车电子器件中断安全隐患检测系统,包括:代码预处理模块,其对器件机器码进行代码切片;模型生成模块,其为切片后的代码建立抽象模型;代码验证与分析模块,其检测抽象模型中是否存在中断安全隐患。本专利技术还提供一种机动车电子器件中断安全隐患检测系统的检测方法,包括如下步骤:步骤一:在代码预处理模块中对机器码进行代码切片;步骤二:在模型生成模块中,为步骤一所得切片后的代码建立抽象模型;步骤三:在代码验证与分析模块中,检测抽象模型中是否存在中断安全隐患;若存在中断安全隐患,输出缺陷报告;若不存在中断安全隐患,输出安全报告。其中,步骤一中对机器码进行代码切片,是指保留机器码中的指令包括:读写指令、跳转指令、函数调用指令和中断开闭指令。步骤三中的中断安全隐患是指代码中因中断发生导致执行错误的指令。其中,步骤三中断安全隐患的检测是将自动机模型插入机器码中的可中断点,覆盖所有函数可能执行路径,利用模型检测工具进行检测。其中,模型检测工具包括SPINmodelchecker、NuSMV、UPPAAL等。本专利技术中为了避免编译器的可能引发的错误,从机器码级别用模型检测的方法保证程序的中断安全性。检测是否存在中断安全隐患需要对中断安全隐患满足的条件进行形式化的性质描述,在形式化的性质描述的过程中可以结合自动机模型,本专利技术使用时态逻辑进行描述。本专利技术克服现有技术存在的缺陷,其有益效果包括:可以从机器码层面上开始进行错误检测,从而避免因编译器可能带来的错误;其次,通过检测系统的中断安全隐患有助于在原有正确性的基础上对汽车操作系统提出更高层次的要求;同时,通过对机器码进行切片并选择性地截取机器码局部有用的代码,可以有效地避免模型检查时的状态爆炸问题。附图说明图1是本专利技术机动车电子器件中断安全隐患检测系统的模块示意图;图2是本专利技术机动车电子器件中断安全隐患检测系统的检测方法的工作流程图。具体实施方式以下结合附图和实施例进一步详细阐述本专利技术,但实施例并不是对本专利技术的限制。在不背离专利技术构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本专利技术中。参考图1,是本专利技术机动车电子器件中断安全隐患检测系统的模块示意图。本实施例中机动车电子器件中断安全隐患检测系统应用于检测OSEKOS2.2.3标准的一个操作系统实例。本实施例机动车电子器件中断安全隐患检测系统包括:代码预处理模块1,模型生成模块2,代码验证与分析模块3。其中,代码预处理模块1是对机器码4进行代码切片;模型生成模块2为切片后的代码5建立抽象模型6;代码验证与分析模块3检测抽象模型6中是否存在中断安全隐患。参考图2,本实施例机动车电子器件中断安全隐患检测系统的检测方法具体步骤如下:步骤一S1:在代码预处理模块1中对机器码4进行代码切片。在代码预处理过程中,先将源代码编译为机器码4,并且在机器码4上提取信息,获得全局变量和函数与其内存地址的对照符号表。然后,通过分析函数对应的机器指令,将函数信息保存在数据结构中,这些信息可以包括函数的名字、入口地址、切片后的机器指令、调用的函数、使用的全局变量等。代码切片保留机器码4中影响中断安全性的指令,包括读写指令、跳转指令、函数调用指令和中断开闭指令。保留程序的控制结构,如循环结构,分支结构等,以及将对某个变量的内存地址的读写操作以及对验证函数中断安全性可能造成影响的跳转指令,函数调用指令和中断开闭指令。步骤二S2:在模型生成模块2中为步骤一S1中切片后的代码5建立抽象模型6。在模型生成过程中,建立函数路径表,根据函数之间的变量依赖关系为可能存在数据冲突的函数建立抽象模型6。本专利技术中的抽象模型6就是函数路径表和函数信息表的建立,抽象模型6覆盖代码所有执行路径。步骤三S3:在代码验证与分析模块3中检测抽象模型6中是否存在中断安全隐患;若存在中断安全隐患,输出缺陷报告,给出缺陷路径;若不存在中断安全隐患,输出安全报告。中断安全隐患是指代码中因中断发生导致执行不应执行的指令。在步骤三S3的代码验证与分析过程中,依次在中断函数的抽象模型6中的可中断点插入中断代码(中断代码是指被检查函数本身),对所有函数可能执行路径进行全覆盖,利用模型检测工具,例如:SPINmodelchecker、NuSMV、UPPAAL。检查函数之间是否存在误读、脏读的安全隐患。如果发现存在这样的安全隐患,通过机器指令与源代码的关系,将可能出现的数据竞争的源代码以文件形式输出。得到缺陷报告后,可根据缺陷报告查出造成中断安全隐患的代码,修补对应的漏洞,从而有助于建立具备中断安全性的系统。本专利技术主要检测两种中断安全隐患的情况:第一种是溢出类问题,无论是堆栈的溢出还是引发的全局变量内容的溢出,都将会使进入非正常的状态之中。第二种是数据操作错误,由于中断程序的特殊调用过程与调用的时间的不确定性,造成了原有的数据操作的事务性特征无法得到比较好的保持,从而产生了数据操作错误;这种错误又可本文档来自技高网
...
机动车电子器件中断安全隐患检测系统及其检测方法

【技术保护点】
一种机动车电子器件中断安全隐患检测系统,其特征在于,包括:代码预处理模块,其对机器码进行代码切片;模型生成模块,其为切片后的所述代码建立抽象模型;代码验证与分析模块,其检测所述抽象模型中是否存在中断安全隐患。

【技术特征摘要】
1.一种机动车电子器件中断安全隐患检测系统,其特征在于,包括:代码预处理模块,其对机器码进行代码切片;模型生成模块,其为切片后的所述代码建立抽象模型;代码验证与分析模块,其检测所述抽象模型中是否存在中断安全隐患。2.如权利要求1所述机动车电子器件中断安全隐患检测系统的检测方法,其特征在于,包括如下步骤:步骤一:在代码预处理模块中对机器码进行代码切片;步骤二:在模型生成模块中,为步骤一所得切片后的所述代码建立抽象模型;步骤三:在代码验证与分析模块中,检测所述抽象模型中是否存在中断安全隐患;若存在中断安全隐患,...

【专利技术属性】
技术研发人员:王亮
申请(专利权)人:桐城市祥瑞机动车辆检测有限公司
类型:发明
国别省市:安徽;34

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

1