CN102193556B - 汽车电子器件中断安全隐患检测***及其检测方法 - Google Patents

汽车电子器件中断安全隐患检测***及其检测方法 Download PDF

Info

Publication number
CN102193556B
CN102193556B CN2011100967073A CN201110096707A CN102193556B CN 102193556 B CN102193556 B CN 102193556B CN 2011100967073 A CN2011100967073 A CN 2011100967073A CN 201110096707 A CN201110096707 A CN 201110096707A CN 102193556 B CN102193556 B CN 102193556B
Authority
CN
China
Prior art keywords
code
function
instruction
safety hazard
interruption
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.)
Expired - Fee Related
Application number
CN2011100967073A
Other languages
English (en)
Other versions
CN102193556A (zh
Inventor
何积丰
朱龙飞
史建琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN2011100967073A priority Critical patent/CN102193556B/zh
Publication of CN102193556A publication Critical patent/CN102193556A/zh
Application granted granted Critical
Publication of CN102193556B publication Critical patent/CN102193556B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

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

Claims (4)

1.一种汽车电子器件中断安全隐患检测***,其特征在于,包括: 
代码预处理模块,其对机器码进行代码切片,将源代码编译为机器码,提取信息获得全局变量和函数与其内存地址的对照符号表,通过分析函数对应的机器指令,将函数信息保留在数据结构中;其中,所述函数信息包括函数的名字、入口地址、切片后的机器指令、调用的函数、使用的全局变量;代码切片保留机器码中影响中断安全性的指令,包括读写指令、跳转指令、函数调用指令和中断开闭指令;所述代码预处理模块保留程序的控制结构,包括循环结构,分支结构,以及将对某个变量的内存地址的读写操作以及对验证函数中断安全性可能造成影响的跳转指令,函数调用指令和中断开闭指令;
模型生成模块,其通过建立函数路径表,对切片后的代码根据函数之间的变量依赖关系为可能存在数据冲突的函数建立抽象模型;
代码验证与分析模块,其通过在中断函数的抽象模型中的可中断点***中断代码,覆盖所有函数可能执行路径,利用模型检测工具检测所述抽象模型中是否存在中断安全隐患。
2.如权利要求1所述汽车电子器件中断安全隐患检测***的检测方法,其特征在于,包括如下步骤:
步骤一:在代码预处理模块中对机器码进行代码切片,将源代码编译为机器码,提取信息获得全局变量和函数与其内存地址的对照符号表,通过分析函数对应的机器指令,将函数信息保留在数据结构中,其中,所述函数信息包括函数的名字、入口地址、切片后的机器指令、调用的函数、使用的全局变量;代码切片保留机器码中影响中断安全性的指令,包括读写指令、跳转指令、函数调用指令和中断开闭指令;所述代码预处理模块保留程序的控制结构,包括循环结构,分支结构,以及将对某个变量的内存地址的读写操作以及对验证函数中断安全性可能造成影响的跳转指令,函数调用指令和中断开闭指令;
步骤二:在模型生成模块中,建立函数路径表,对步骤一所得切片后的代码根据函数之间的变量依赖关系为可能存在数据冲突的函数建立抽象模型;
步骤三:在代码验证与分析模块中,通过在中断函数的抽象模型中的可中断点***中断代码,覆盖所有函数可能执行路径,利用模型检测工具检测所述抽象模型中是否存在中断安全隐患;若存在中断安全隐患,输出缺陷报告;若不存在中断安全隐患,输出安全报告。
3.如权利要求2所述汽车电子器件中断安全隐患检测***的检测方法,其特征在于,所述步骤一中对机器码进行代码切片是指保留机器码中的指令包括:读写指令、跳转指令、函数调用指令和中断开闭指令。
4.如权利要求2所述汽车电子器件中断安全隐患检测***的检测方法,其特征在于,所述步骤三中的中断安全隐患是指代码中因中断发生导致执行错误的指令。
CN2011100967073A 2011-04-18 2011-04-18 汽车电子器件中断安全隐患检测***及其检测方法 Expired - Fee Related CN102193556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100967073A CN102193556B (zh) 2011-04-18 2011-04-18 汽车电子器件中断安全隐患检测***及其检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100967073A CN102193556B (zh) 2011-04-18 2011-04-18 汽车电子器件中断安全隐患检测***及其检测方法

Publications (2)

Publication Number Publication Date
CN102193556A CN102193556A (zh) 2011-09-21
CN102193556B true CN102193556B (zh) 2012-10-31

Family

ID=44601759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100967073A Expired - Fee Related CN102193556B (zh) 2011-04-18 2011-04-18 汽车电子器件中断安全隐患检测***及其检测方法

Country Status (1)

Country Link
CN (1) CN102193556B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183552A (zh) * 2015-09-25 2015-12-23 东华大学 操作***中断安全隐患定位***及其应用
CN109240902B (zh) * 2017-05-27 2021-03-19 腾讯科技(深圳)有限公司 一种获取电子设备的固件代码的方法和装置
CN108509336B (zh) * 2018-03-05 2021-05-25 华东师范大学 一种操作***规范形式化验证与测试方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162491A (zh) * 2007-08-14 2008-04-16 电子科技大学 基于代码切片的虚拟执行***与方法
US7620946B2 (en) * 2003-05-05 2009-11-17 Jeffry Thomas Russell Program slicing for codesign of embedded systems
CN101588363A (zh) * 2009-06-18 2009-11-25 天津大学 建立基于程序切片的Web服务安全分析模型的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050534A1 (en) * 2003-09-02 2005-03-03 Chi-Keung Luk Methods and apparatus to pre-execute instructions on a single thread

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620946B2 (en) * 2003-05-05 2009-11-17 Jeffry Thomas Russell Program slicing for codesign of embedded systems
CN101162491A (zh) * 2007-08-14 2008-04-16 电子科技大学 基于代码切片的虚拟执行***与方法
CN101588363A (zh) * 2009-06-18 2009-11-25 天津大学 建立基于程序切片的Web服务安全分析模型的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙继荣等.程序切片技术在软件测试中的应用.《计算机应用研究》.2007,第24卷(第5期), *

Also Published As

Publication number Publication date
CN102193556A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
US8943423B2 (en) User interface indicators for changed user interface elements
CN102804147B (zh) 执行abap源代码的代码检查的代码检查执行***
US10915422B2 (en) Automatic setting of multitasking configurations for a code-checking system
WO2019104917A1 (zh) 基金***测试用例的测试方法、装置、设备及存储介质
US20080276260A1 (en) Adaptive User Interface Verification
CN104899147A (zh) 一种面向安全检查的代码静态分析方法
CN102184138A (zh) 一种软件错误自动重现和定位的方法及***
CN103268375A (zh) 标准单元库版图设计规则检查验证方法
CN109871319A (zh) 项目代码扫描方法、装置、计算机设备及存储介质
JP3822044B2 (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
CN101183332A (zh) 一种根据程序内容自动生成测试数据集的方法和装置
CN102054100A (zh) 一种基于静态分析的rtl设计错误检测方法和***
CN103257919A (zh) 脚本程序检查方法和装置
CN113901745A (zh) 芯片测试方法、装置、电子设备及计算机可读存储介质
CN102193556B (zh) 汽车电子器件中断安全隐患检测***及其检测方法
CN103365772B (zh) 软件测试自动评价装置以及方法
WO2013124703A1 (en) Method and apparatus for performing integrated circuit layout verification
CN114579972A (zh) 嵌入式开发程序的漏洞识别方法及***
CN111679964B (zh) 基于边界模型检测技术的微内核操作***接口的形式化验证方法
US20120124428A1 (en) Method and system for testing software on programmable devices
CN102169458A (zh) 汽车电控部件的软件正确性验证***及其验证方法
KR20220073151A (ko) 고장형태 영향분석 기반 고장 분석의 고장 모드 추천 시스템
CN107291622A (zh) C25汇编代码静态分析方法
CN112559359B (zh) 一种基于s2ml的安全攸关***分析与验证方法
CN115795489A (zh) 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121031

Termination date: 20180418

CF01 Termination of patent right due to non-payment of annual fee